An error occurred fetching the project authors.
  1. 12 Jul, 2005 1 commit
    • unknown's avatar
      Bug #7142 Show Fields from fails using Borland's dbExpress interface · 831e2c7f
      unknown authored
      The problem here is that columns that have an especially long type 
      such as an enum type with many options would be longer than 40 chars
      but the type column returned from show columns always was defined
      as varchar(40).
      
      This is fixed in 5.0 using info schema.
      
      
      mysql-test/r/ps_1general.result:
        update columns which will now be reported as blobs
      mysql-test/r/ps_2myisam.result:
        update columns which will now be reported as blobs
      mysql-test/r/ps_3innodb.result:
        update columns which will now be reported as blobs
      mysql-test/r/ps_4heap.result:
        update columns which will now be reported as blobs
      mysql-test/r/ps_5merge.result:
        update columns which will now be reported as blobs
      sql/item.cc:
        report a column as a particular blob type if it's size warrants
      sql/sql_show.cc:
        Add function to iterate over all the fields of a table and determine 
        the longest type name.
        
        We call this function at the top of our show fields code.  We pass in 
        either 40 or max_len whichever is longer to the ctor of
        Item_empty_string.
      tests/mysql_client_test.c:
        update columns which will now be reported as blobs
      831e2c7f
  2. 27 Jun, 2005 1 commit
    • unknown's avatar
      Better bug fix for: · d10877ce
      unknown authored
      #9728  'Decreased functionality in "on duplicate key update
      #8147  'a column proclaimed ambigous in INSERT ... SELECT .. ON DUPLICATE'
      
      This ensures fields are uniquely qualified and also that one can't update other tables in the ON DUPLICATE KEY UPDATE part
      
      
      mysql-test/r/insert_select.result:
        More tests for bug #9728 and #8147
      mysql-test/r/insert_update.result:
        Updated tests after changing how INSERT ... SELECT .. ON DUPLICATE KEY works
      mysql-test/t/insert_select.test:
        More tests for bug #9728 and #8147
      mysql-test/t/insert_update.test:
        Updated tests after changing how INSERT ... SELECT .. ON DUPLICATE KEY works
      mysys/my_access.c:
        Cleanup (shorter loop variable names)
      sql/ha_ndbcluster.cc:
        Indentation fixes
      sql/item.cc:
        Remove item_flags
      sql/item.h:
        Remove item_flags
      sql/mysql_priv.h:
        New arguments to mysql_prepare_insert
      sql/sql_base.cc:
        Remove old fix for bug #8147
      sql/sql_insert.cc:
        Extend mysql_prepare_insert() with new field list for tables that can be used in the values port of ON DUPLICATE KEY UPDATE
      sql/sql_parse.cc:
        Revert fix for #9728
        Allow one to use other tables in ON DUPLICATE_KEY for INSERT ... SELECT if there is no GROUP BY clause
      sql/sql_prepare.cc:
        New arguments to mysql_prepare_insert
      sql/sql_yacc.yy:
        Revert bug fix for #9728
      d10877ce
  3. 22 Jun, 2005 1 commit
    • unknown's avatar
      Fix bug #9728 decreased functionality in "on duplicate key update" · a6c7fb45
      unknown authored
      Remove changes made by bug fix #8147. They strips list of insert_table_list to
      only insert table, which results in error reported in bug #9728.
      Added flag to Item to resolve ambigous fields reported in bug #8147.
      
      
      sql/item.h:
        Fix bug#9728  decreased functionality in "on duplicate key update".
      sql/item.cc:
        Fix bug#9728  decreased functionality in "on duplicate key update"
      sql/sql_parse.cc:
        Fix bug#9728  decreased functionality in "on duplicate key update"
      sql/sql_base.cc:
        Fix bug#9728  decreased functionality in "on duplicate key update".
      sql/sql_yacc.yy:
        Fix bug#9728  decreased functionality in "on duplicate key update"
      mysql-test/t/insert_select.test:
        Test case for bug#9728 Decreased functionality in "on duplicate key update".
      mysql-test/r/insert_select.result:
        Test case for bug#9728 Decreased functionality in "on duplicate key update".
      a6c7fb45
  4. 05 Jun, 2005 1 commit
  5. 03 Jun, 2005 1 commit
    • unknown's avatar
      Move USE_PRAGMA_IMPLEMENTATION to proper place · 72dd44b9
      unknown authored
      Ensure that 'null_value' is not accessed before val() is called in FIELD() functions
      Fixed initialization of key maps. This fixes some problems with keys when you have more than 64 keys
      Fixed that ROLLUP don't always create a temporary table. This fix ensures that func_gconcat.test results are now predictable
      
      
      mysql-test/r/func_gconcat.result:
        Move innodb specific test to innodb.test
        Changed table name r2 -> t2
        More test to see how ROLLUP was optimized
      mysql-test/r/innodb.result:
        Moved test here form func_gconcat
      mysql-test/r/olap.result:
        New test results after optimization
      mysql-test/t/func_gconcat.test:
        Move innodb specific test to innodb.test
        Changed table name r2 -> t2
        More test to see how ROLLUP was optimized
      mysql-test/t/innodb.test:
        Moved test here form func_gconcat
      sql/field.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_berkeley.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_blackhole.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_heap.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_innodb.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_isam.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_isammrg.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_myisam.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_myisammrg.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/ha_ndbcluster.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/handler.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/hash_filo.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item_cmpfunc.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item_func.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
        Ensure that 'null_value' is not accessed before val() is called
      sql/item_geofunc.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item_strfunc.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item_subselect.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item_sum.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item_timefunc.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/item_uniq.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/log_event.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/mysql_priv.h:
        Change key_map_full to not be const as we are giving it a proper value on startup
      sql/mysqld.cc:
        Move key_map variables here and initialize key_map_full properly
      sql/opt_range.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/opt_range.h:
        Fix that test_quick_select() works with any ammount of keys
      sql/procedure.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/protocol.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/protocol_cursor.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/set_var.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_analyse.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_class.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_crypt.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_insert.cc:
        Fixed that max_rows is ulong
      sql/sql_list.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_map.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_olap.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_select.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
        Fixed that ROLLUP don't have to always create a temporary table
        Added new argument to remove_const() to make above possible
        Fixed some errors that creapt up when we don't always do a temporary table for ROLLUP
      sql/sql_string.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_table.cc:
        Simple optimizations
        Fixed wrong checking of build_table_path() in undef-ed code
      sql/sql_udf.cc:
        Move USE_PRAGMA_IMPLEMENTATION to proper place
      sql/sql_yacc.yy:
        removed extra {}
      72dd44b9
  6. 02 Jun, 2005 1 commit
    • unknown's avatar
      tztime.cc: · cee10f97
      unknown authored
        Set #pragma implementation" earlier
      Many files:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      
      
      client/sql_string.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      mysys/raid.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/field.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_berkeley.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_blackhole.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_heap.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_innodb.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_isam.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_isammrg.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_myisam.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_myisammrg.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/ha_ndbcluster.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/handler.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/hash_filo.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_cmpfunc.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_func.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_geofunc.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_strfunc.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_subselect.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_sum.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_timefunc.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/item_uniq.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/log_event.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/opt_range.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/procedure.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/protocol.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/protocol_cursor.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/set_var.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_analyse.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_class.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_crypt.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_list.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_map.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_olap.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/examples/ha_archive.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_select.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_string.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/sql_udf.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/examples/ha_example.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/examples/ha_tina.cc:
        Need to include <my_global.h> before #ifdef USE_PRAGMA_IMPLEMENTATION
      sql/tztime.cc:
        Set #pragma implementation" earlier
      cee10f97
  7. 26 May, 2005 2 commits
    • unknown's avatar
      fixed problem with long string results of expressions in UNIONS (BUG#10025) · 80b0baa7
      unknown authored
      mysql-test/r/union.result:
        test for Bug #10025
      mysql-test/t/union.test:
        test for Bug #10025
      sql/item.cc:
        set HA_OPTION_PACK_RECORD and change type to MYSQL_TYPE_STRING, to allow correct field creation in case of length more then 255 (creation STRING field with length more then 255)
      80b0baa7
    • unknown's avatar
      Add ifdefs to control when "#pragma implementation" should be used · 22944a95
      unknown authored
      Added some more ifdefs for "#pragma interface"
      
      
      client/sql_string.cc:
        USE_PRAGMA_IMPLEMENTATION
      client/sql_string.h:
        USE_PRAGMA_INTERFACE
      include/my_global.h:
        Use pragma implementation for gcc pre version 3
      mysys/raid.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/field.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_berkeley.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_blackhole.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_heap.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_innodb.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_isam.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_isammrg.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_myisam.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_myisammrg.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_ndbcluster.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/handler.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/hash_filo.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_cmpfunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_func.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_geofunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_strfunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_subselect.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_sum.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_timefunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_uniq.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_uniq.h:
        USE_PRAGMA_INTERFACE
      sql/log_event.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/log_event.h:
        USE_PRAGMA_INTERFACE
      sql/opt_range.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/procedure.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/protocol.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/protocol_cursor.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/set_var.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_analyse.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_analyse.h:
        USE_PRAGMA_INTERFACE
      sql/sql_class.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_crypt.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_crypt.h:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_list.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_map.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_map.h:
        USE_PRAGMA_INTERFACE
      sql/sql_olap.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_select.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_string.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_udf.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/tztime.cc:
        USE_PRAGMA_IMPLEMENTATION
      22944a95
  8. 24 May, 2005 1 commit
  9. 16 May, 2005 1 commit
  10. 06 May, 2005 1 commit
  11. 05 May, 2005 1 commit
    • unknown's avatar
      A fix and test case for Bug#9777 " Empty set returned by Prepared Statement when it · c758512a
      unknown authored
       should return a non empty one"
      (see comments for the changed files for details).
      
      
      mysql-test/r/ps.result:
        A test case for Bug#9777: tests results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#9777
      sql/item.cc:
        A fix for Bug#9777: when creating a constant item from within 
        Item_int_with_ref::new_item, create the item by value, not by name.
        This should work with prepared statements placeholders.
        Item_int_with_ref is a special optimization case used
         when we compare datetime constants with datetime value.
        Converting the item to integer early is OK as it is in line
        with the purpose of Item_int_with_ref - to speed up comparison by 
        using integers.
        Minor cleanups.
      sql/item.h:
        Declaration for Item_int_with_ref::new_item
      c758512a
  12. 03 May, 2005 1 commit
    • unknown's avatar
      A fix and test case for Bug#9096 "select doesn't return all matched · 9fcda7fc
      unknown authored
      records if prepared statements is used".
      This fix changes equality evaluation method of basic constants from
      by-name to by-value, thus effectively enabling use of parameter markers
      in some optimizations (constants propagation, evaluation of possible
      keys for query).
      
      
      mysql-test/r/ps.result:
        Test results for the test case for Bug#9096
      mysql-test/t/ps.test:
        A short test case for Bug#9096 "select doesn't return all matched records if
         prepared statements is used". The is enough to reproduce the
        glitch in update_ref_and_keys causing the bug to occur.
      sql/item.cc:
        Implement by-value equality evaluation of basic constants.
        This is needed to work with Item_param values. Until now
        Item_param was compared with other items by its name, which is always "?".
        The bug at hand showed up when an integer
        constant was created from one parameter marker (with value 200887 and
         name "?") and then compared by-name with another parameter marker
        (with value 860 and name "?"). True returned by this comparison resulted
        in a wrong table access method used to evaluate the query.
        Implement Item_param methods needed to emulate "basic constant" mode at 
        full.
      sql/item.h:
        Change declaration of basic_const_item(): now it also widens its 
        argument from const Item * to Item * if the argument is a basic constant.
        Declare eq() for all basic constatns, as long as now they 
        are compared by value, not by name. Each constant needs its own
        comparison method.
        Declarations of Item_param methods needed to fully emulate 
        a basic constant when parameter value is set.
      sql/item_func.cc:
        Fix wrong casts.
      9fcda7fc
  13. 10 Apr, 2005 1 commit
    • unknown's avatar
      ctype_collate.result, ctype_collate.test, union.result, union.test: · ebdf2c01
      unknown authored
        fixing tests accordingly
      item.cc:
        Allow mixing non-binary collation and binary collation
        even if coercibility is the same. 
        For easier 4.0 -> 4.1 migrating.
      
      
      sql/item.cc:
        Allow mixing non-binary collation and binary collation
        even if coercibility is the same. 
        For easier 4.0 -> 4.1 migrating.
      mysql-test/t/union.test:
        fixing tests accordingly
      mysql-test/r/union.result:
        fixing tests accordingly
      mysql-test/t/ctype_collate.test:
        fixing tests accordingly
      mysql-test/r/ctype_collate.result:
        fixing tests accordingly
      ebdf2c01
  14. 30 Mar, 2005 2 commits
    • unknown's avatar
      postmerge fixes · 56b2de98
      unknown authored
      mysql-test/r/metadata.result:
        postmerge change
      sql/item.cc:
        work around about varchar in 4.1
      56b2de98
    • unknown's avatar
      BUG#8807 Select crash server · af2ab040
      unknown authored
       - Add function Item_param::fix_fields which will update any subselect they are part of and indicate that the subsleect is not const during prepare phase, and thus should not be executed during prepare.
      
      
      mysql-test/include/ps_query.inc:
        Adde new test case
      mysql-test/r/ps_2myisam.result:
        Update test result
      mysql-test/r/ps_3innodb.result:
        Update test result
      mysql-test/r/ps_4heap.result:
        Update test result
      mysql-test/r/ps_5merge.result:
        Update test result
      mysql-test/r/ps_6bdb.result:
        Update test result
      mysql-test/r/ps_7ndb.result:
        Update test result
      sql/item.cc:
        Add function Item_param::fix_fields, which will mark any subselects they are part of as not being a constant expression unless the param value is specified, ie. it will be not be constant during prepare phase.
      sql/item.h:
        Adde Item_param::fix_fields
      sql/item_subselect.h:
        Make Item_param::fix_field friend of Item_subselect
      af2ab040
  15. 23 Mar, 2005 1 commit
    • unknown's avatar
      fixed union types merging and table related metadata (BUG#8824) · 5a425250
      unknown authored
      mysql-test/r/func_group.result:
        new result
      mysql-test/r/metadata.result:
        new result
        test of metadata of variables, unions and derived tables
      mysql-test/r/union.result:
        new results
        test of union of enum
      mysql-test/t/metadata.test:
        test of metadata of variables, unions and derived tables
      mysql-test/t/union.test:
        test of union of enum
      sql/field.cc:
        Field type merging rules added
        Fixed table name/alias returting for field made from temporary tables
      sql/field.h:
        removed unned field type reporting
      sql/item.cc:
        fixed bug in NEW_DATE type field creartion
        replaced mechanism of merging types of UNION
      sql/item.h:
        replaced mechanism of merging types of UNION
      sql/item_func.h:
        new item type to make correct field type detection possible
      sql/item_subselect.cc:
        added table name parameter to prepare() to show right table alias for derived tables
      sql/sql_derived.cc:
        added table name parameter to prepare() to show right table alias for derived tables
      sql/sql_lex.h:
        added table name parameter to prepare() to show right table alias for derived tables
      sql/sql_parse.cc:
        made function for enum/set pack length calculation
      sql/sql_prepare.cc:
        added table name parameter to prepare() to show right table alias for derived tables
      sql/sql_select.cc:
        new temporary table field creation by Item_type_holder
        fixed table alias for temporary table
      sql/sql_union.cc:
        added table name parameter to prepare() to show right table alias for derived tables
      5a425250
  16. 15 Mar, 2005 1 commit
    • unknown's avatar
      # Bug#8785 Problem with nested concats and · c7039545
      unknown authored
      character set conversion of a string constant.
      
      
      mysql-test/r/ctype_utf8.result:
        Adding test
      mysql-test/t/ctype_utf8.test:
        Addign test
      sql/item_strfunc.cc:
        Remove previous fix: it was not 100% correct.
        A non const_item() can return a constant String.
      sql/sql_string.h:
        A new method to cut Alloced_length to str_length for
        string constants, to avoid reusing them as a buffer
        in things like CONCAT().
      c7039545
  17. 09 Mar, 2005 1 commit
    • unknown's avatar
      Fix for BUG#7425. · 146df30f
      unknown authored
      The reported problems were due to two completely unrelated omissions.
      1) The file sort procedure didn't correctly create the sort key in
         make_sortkey when the sortkey was an unsigned integer.
      2) The name resolution procedure for column references inside a HAVING
         clause did not propagate the unsigned_flag of the resolved references.
      This patch corrects both problems.
      
      
      mysql-test/r/select.result:
        Added test result for BUG#7425.
      mysql-test/t/select.test:
        Added test for BUG#7425.
      sql/filesort.cc:
        Take into account whether 'item' represents a signed or an unsigned integer.
      sql/item.cc:
        Once an Item_ref is resolved, propagate the unsigned_flag to the resolved item.
      146df30f
  18. 04 Mar, 2005 1 commit
    • unknown's avatar
      type_blob.result, func_system.result, func_str.result, ctype_collate.result: · c56d0283
      unknown authored
        fixing test results accordingly.
      func_system.test:
        New test that illegal mix of collations does not happen anymore.
      item_strfunc.h:
          safe_charset_converter() was added for system constants.
      item_strfunc.cc:
        safe_charset_converter() was added for system constants.
      item_func.cc, item.h, item.cc:
        Bug#8291: Illegal collation mix with USER() function.
        After discussion with PeterG and Serge, a new coercibility
        level for "system constants" was introduced, between
        COERRIBLE and IMPLICIT. Thus:
        SELECT col1 = USER() FROM t1; - is done according to col1 collation.
        SELECT 'string' = USER(); - is done according to USER() collation.
        At the same time, "nagg" and "strong" members were removed as unused.
      item_create.cc:
        Version is a system constant too.
      
      
      sql/item.cc:
        Bug#8291: Illegal collation mix with USER() function.
        After discussion with PeterG and Serge, a new coercibility
        level for "system constants" was introduced, between
        COERRIBLE and IMPLICIT. Thus:
        SELECT col1 = USER() FROM t1; - is done according to col1 collation.
        SELECT 'string' = USER(); - is done according to USER() collation.
        At the same time, "nagg" and "strong" members were removed as unused.
      sql/item.h:
        Bug#8291: Illegal collation mix with USER() function.
        After discussion with PeterG and Serge, a new coercibility
        level for "system constants" was introduced, between
        COERRIBLE and IMPLICIT. Thus:
        SELECT col1 = USER() FROM t1; - is done according to col1 collation.
        SELECT 'string' = USER(); - is done according to USER() collation.
        At the same time, "nagg" and "strong" members were removed as unused.
      sql/item_create.cc:
        Version is a system constant too.
      sql/item_func.cc:
        Bug#8291: Illegal collation mix with USER() function.
        After discussion with PeterG and Serge, a new coercibility
        level for "system constants" was introduced, between
        COERRIBLE and IMPLICIT. Thus:
        SELECT col1 = USER() FROM t1; - is done according to col1 collation.
        SELECT 'string' = USER(); - is done according to USER() collation.
        At the same time, "nagg" and "strong" members were removed as unused.
      sql/item_strfunc.cc:
        safe_charset_converter() was added for system constants.
      sql/item_strfunc.h:
          safe_charset_converter() was added for system constants.
      mysql-test/t/func_system.test:
        New test that illegal mix of collations does not happen anymore.
      mysql-test/r/ctype_collate.result:
        fixing test results accordingly.
      mysql-test/r/func_str.result:
        fixing test results accordingly.
      mysql-test/r/func_system.result:
        fixing test results accordingly.
      mysql-test/r/type_blob.result:
        fixing test results accordingly.
      c56d0283
  19. 22 Feb, 2005 1 commit
    • unknown's avatar
      Backport my_strntod() from 5.0 · cb8d9c3a
      unknown authored
      Change string->float conversion to delay division as long as possible.
      This gives us more exact integer->float conversion for numbers of type '123.45E+02' (Bug #7740)
      
      
      
      
      client/mysql.cc:
        Fix wront usage of charset (found during review of pushed code)
      include/m_string.h:
        Backported my_strtod() from 5.0
      mysql-test/mysql-test-run.sh:
        Run also mysql_client_test with --debug
      mysql-test/r/ps_1general.result:
        Safety fix (if mysql_client_test.test fails)
      mysql-test/r/type_float.result:
        More test
      mysql-test/t/mysql_client_test.test:
        Comments for what to do if this test fails
      mysql-test/t/ps_1general.test:
        Safety fix (if mysql_client_test.test fails)
      mysql-test/t/type_float.test:
        More test to better test new strtod() function
        Test also bug #7740 (wrong comparsion between integer and float-in-integer-range)
      sql/field.cc:
        Backport my_strntod() from 5.0
      sql/item.cc:
        Backport my_strntod() from 5.0
      sql/item.h:
        Backport my_strntod() from 5.0
      sql/item_func.h:
        Backport my_strntod() from 5.0
      sql/item_strfunc.cc:
        Backport my_strntod() from 5.0
      sql/item_sum.cc:
        Backport my_strntod() from 5.0
      sql/item_sum.h:
        Backport my_strntod() from 5.0
      sql/procedure.h:
        Backport my_strntod() from 5.0
      strings/ctype-simple.c:
        Backport my_strntod() from 5.0
      strings/ctype-ucs2.c:
        Backport my_strntod() from 5.0
      strings/strtod.c:
        Backport my_strntod() from 5.0
        Change conversion to delay division as long as possible.
        This gives us more exact integer-> float conversion for numbers of type '123.45E+02'
      cb8d9c3a
  20. 11 Feb, 2005 1 commit
  21. 08 Feb, 2005 1 commit
    • unknown's avatar
      Better bugfix for "HAVING when refering to RAND()" (Bug #8216) · 63982db9
      unknown authored
      Ensure that references in HAVING, ORDER BY or GROUP BY are calculated after fields in SELECT.
      This will ensure that any reference to these has a valid value.
      Generalized the code for split_sum_func()
      
      
      BitKeeper/etc/ignore:
        added support-files/ndb-config-2-node.ini
      mysql-test/r/group_by.result:
        More complicated test to assure that rand() is only calulated once
      mysql-test/r/user_var.result:
        Back to old results :(  (ok but not perfect)
      mysql-test/t/group_by.test:
        More complicated test to assure that rand() is only calulated once
      sql/item.cc:
        Better bugfix for "HAVING when refering to RAND()"
        This will ensure that when refering to things like RAND() in HAVING through an alias we will not recalculate that rand() value in the HAVING part but use the value in the row
        Generalize split_sum_func()
      sql/item.h:
        Better bugfix for "HAVING when refering to RAND()"
        T
      sql/item_cmpfunc.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/item_func.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/item_row.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/item_strfunc.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Use generalized split_sum_func2() function
      sql/sql_list.h:
        Add functions to concatenate lists
      sql/sql_select.cc:
        Better bugfix for "HAVING when refering to RAND()"
        Ensure that references in HAVING, ORDER BY or GROUP BY are calculated after fields in SELECT.
        This will ensure that any reference to these has a valid value.
      63982db9
  22. 04 Feb, 2005 1 commit
    • unknown's avatar
      A fix: bug#6931: Date Type column problem when using UNION-Table · 66eb71f3
      unknown authored
             bug#7833:  Wrong datatype of aggregate column is returned
      
      
      mysql-test/r/func_group.result:
        Test case for bug 7833:  Wrong datatype of aggregate column is returned
      mysql-test/r/union.result:
        Test case for bug 6931: Date Type column problem when using UNION-Table.
      mysql-test/t/func_group.test:
        Test case for bug 7833:  Wrong datatype of aggregate column is returned
      mysql-test/t/union.test:
        Test case for bug 6931: Date Type column problem when using UNION-Table.
      66eb71f3
  23. 24 Jan, 2005 2 commits
  24. 18 Jan, 2005 1 commit
    • unknown's avatar
      1. Item now uses my_charset_bin by default, · cd89ed9a
      unknown authored
      not default_charset_into. It fixes the
      problem that in some cases numbers where
      treated as CHAR(N), not as BINARY(N), e.g.
      wrong 'charsetnr' when sent to the client side.
      2. IFNULL didn't aggregate argument charsets
      and collations, so IFNULL(1,'a') produced
      a CHAR(N). Now produces a BINARY(N).
      3. SELECT PROCEDURE ANALIZE now returns
      BINARY columns, which is much better than it worked
      previously: CHAR with the default character set.
      But in the future it's worth to fix the fields
      'Field_name' and 'Optimal_fieldtype' to use UTF8,
      and 'Min_value' and 'Max_value' to inherit their charsets
      from the original items. But it is not important,
      and BINARY(N) is OK for now.
      4. Tests were fixed accordingly. No new tests were
      made, as the old onces cover everything.
      
      
      mysql-test/r/analyse.result:
        SELECT PROCEDURE ANALIZE now returns
        BINARY columns, which is much better than it worked
        previously: CHAR with the default character set.
        But in the future it's worth to fix the fields
        'Field_name' and 'Optimal_fieldtype' to use UTF8,
        and 'Min_value' and 'Max_value' to inherit their charsets
        from the original items. But it is not important,
        and BINARY(N) is OK for now.
      mysql-test/r/case.result:
        Test fix according to the changes
      mysql-test/r/metadata.result:
        Test fix according to the changes
      mysql-test/r/ps_1general.result:
        Test fix according to the changes
      mysql-test/r/ps_2myisam.result:
        Test fix according to the changes
      mysql-test/r/ps_3innodb.result:
        Test fix according to the changes
      mysql-test/r/ps_4heap.result:
        Test fix according to the changes
      mysql-test/r/ps_5merge.result:
        Test fix according to the changes
      mysql-test/r/ps_6bdb.result:
        Test fix according to the changes
      mysql-test/r/ps_7ndb.result:
        Test fix according to the changes
      mysql-test/r/union.result:
        Test fix according to the changes
      sql/item.cc:
        Item is now BINARY by default
      sql/item_cmpfunc.cc:
        IFNULL now collects arguments collations/charsets
        like other functions do.
      cd89ed9a
  25. 14 Dec, 2004 1 commit
    • unknown's avatar
      * Added comments and one assert · 8322eb0a
      unknown authored
       * Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      
      
      sql/item.cc:
         * More comments
         * Backport of safety measures from 5.0: make numeorous replaces:
            s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item.h:
        Assert added
      sql/item_cmpfunc.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_func.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_strfunc.h:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_subselect.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/item_sum.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/set_var.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_base.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_handler.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_help.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      sql/sql_select.cc:
        Backport of safety measures from 5.0: make numeorous replaces:
          s/item->fix_fields()/if (!item->fixed) item->fix_fields()
      8322eb0a
  26. 13 Dec, 2004 3 commits
    • unknown's avatar
      Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0 · 0e486852
      unknown authored
       * Added Item_ref::set_properties 
       * Item_ref::Item_ref now expects to get in *item either
           NULL - then fix_fields() will be called later  or 
           ptr to Item it will refer to - then an equivalent of fix_fields() call is performed
      
      
      sql/item.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item.h:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Item_ref::Item_ref now expects to get in *item either
             NULL - then fix_fields() will be called later or
             ptr to Item it will refer to - then an equivalent of fix_fields() call is performed
      sql/item_cmpfunc.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item_func.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item_row.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      sql/item_strfunc.cc:
        Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0
         * Added Item_ref::set_properties 
         * Adjusted Item_ref::Item_ref calls to match new calling convention
      0e486852
    • unknown's avatar
      Merging fix for BUG#6976 from 4.0 to 4.1 · 6d7fe852
      unknown authored
      The problem in 4.1 was the same as in 4.0 - fix_fields() not called for created Item_ref. 
      The fix is similar too - initialize Item_refs in ctor (but don't interfere with cases when 
      Item_ref is used by subselects). 
      
      
      sql/item.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_cmpfunc.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_func.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_row.cc:
        Fix for BUG#6976 ported from 4.0
      sql/item_strfunc.cc:
        Fix for BUG#6976 ported from 4.0
      6d7fe852
    • unknown's avatar
      initialize variables (addition for BUG#7079) · 1e314961
      unknown authored
      sql/item.cc:
        initialize variables
      1e314961
  27. 11 Dec, 2004 2 commits
    • unknown's avatar
      Fix for BUG#6976: · b5c119e7
      unknown authored
      In Item_ref::Item_ref set maybe_null (and other fields fix_fields sets) to be the 
      same as in (*ref), because Item_ref::fix_fields() will not be called.  Previously 
      maybe_null was 0 always and this produced a bogus state where 
      maybe_null==0 && is_null() == true 
      which broke evaluation for some upper-level Items, like AND and OR.
      
      
      mysql-test/r/group_by.result:
        Test for BUG#6976
      mysql-test/t/group_by.test:
        Test for BUG#6976
      sql/item.cc:
        Comment added
      sql/item.h:
        Fix for BUG#6976:
          in Item_ref::Item_ref(Item**...) fix all fields because fix_fields() will not be called.
      b5c119e7
    • unknown's avatar
      new reference which refer to current value not to result used for resolving outer · 3ce0df59
      unknown authored
      refernces if subqueri is not in HAVING clause (BUG#7079)
        and the same used for subquery transformetion
      
      
      mysql-test/r/subselect.result:
        reference on changable fields from subquery
      mysql-test/t/subselect.test:
        reference on changable fields from subquery
      sql/item.cc:
        new reference which refer to current value not to result used
      sql/item.h:
        new reference which refer to current value not to result used
      sql/item_subselect.cc:
        new reference which refer to current value not to result used
      3ce0df59
  28. 15 Nov, 2004 1 commit
    • unknown's avatar
      Fix for bug #6266 "Invalid DATETIME value is not handled properly". · 5d9f7edd
      unknown authored
      In server we assume that datetime values stored in MYSQL_TIME struct
      are normalized (and year is not greater than 9999), so we should 
      perform range checks in all places then we convert something to
      MYSQL_TIME. 
      
      
      include/my_time.h:
        Added one more argument to set_zero_time() function to make it more 
        convinient.
        Added comment clarifying why MAX_DATE_STRING_REP_LENGTH value is 30.
      include/mysql_time.h:
        Documented MySQL's internal assumptions for members of MYSQL_TIME
        structure.
      libmysql/libmysql.c:
        It does not make sense to set MYSQL_TIME::time_type twice in case of 
        errors.
      mysql-test/r/type_datetime.result:
        Added test for bug #6266 "Invalid DATETIME value not handled properly".
      mysql-test/t/type_datetime.test:
        Added test for bug #6266 "Invalid DATETIME value not handled properly".
      sql-common/my_time.c:
        str_to_datetime(): Added missing check for too big year values.
        set_zero_time(): added time_type argument, since MYSQL_TIMESTAMP_NONE
          is not the value that we want in most cases.
      sql/field.cc:
        Field_datetime::store_time():
          clarified why we don't perform any range checks here.
      sql/item.cc:
        Item_param::set_time():
         Added comment describing this method and range checking for TIME
         values.
      sql/sql_prepare.cc:
        Removed comments about range checking for TIME values in prepared 
        statements, which are no longer true.
        set_zero_time() has one more argument now.
      tests/client_test.c:
        Added test for bug #6266 "Invalid DATETIME value not handled properly"
      5d9f7edd
  29. 10 Nov, 2004 1 commit
    • unknown's avatar
      1. When mixing NULL to a character string, · c5e6941e
      unknown authored
      the result takes its charset/collation
      attributes from the character string,
      e.g.  SELECT func(NULL, _latin2'string')
      now returns a latin2 result. This is
      done by introducing a new derivation
      (aka coercibility) level DERIVATION_IGNORABLE,
      which is used with Item_null.
      2. 'Pure' NULL is now BINARY(0), not CHAR(0).
      I.e. NULL is now more typeless.
      
      
      mysql-test/r/metadata.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/null.result:
        Testing mixing NULL with a character string with a number of functions.
      mysql-test/r/ps_2myisam.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_3innodb.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_4heap.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_5merge.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_6bdb.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/r/ps_7ndb.result:
        Fixing test results:
        CHAR(0) -> BINARY(0) for NULLs
      mysql-test/t/null.test:
        Testing mixing NULL with a character string with a number of functions.
      sql/item.cc:
        New derivation level.
      sql/item.h:
        New derivation level.
      c5e6941e
  30. 05 Nov, 2004 1 commit
    • unknown's avatar
      A fix and test case for the bug reported by Reggie: if character set · b3d84df1
      unknown authored
      of client equals to character set of connection, possibly required
      conversion to character set of column is not performed
      (prepared statements, data is supplied using placeholders).
      
      
      sql/item.cc:
        Fix for the bug reported by Reggie: if character_set_connection
        is equal to character_set_client, placeholder's value is not converted
        furhter to character set of column when it's different.
        This is because the original implementation left placeholder's character
        set intact (binary) if there were no need for client->connection conversion.
      tests/client_test.c:
        A test case for the conversion bug.
      b3d84df1
  31. 02 Nov, 2004 1 commit
    • unknown's avatar
      Many files: · fc04692c
      unknown authored
        Allow mixing of different character sets for more SQL functions.
      item_func.h:
        Allow mixing of different character sets for more SQL functions..
      
      
      sql/item_cmpfunc.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item_func.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item_func.h:
        Allow mixing of different character sets for more SQL functions..
      sql/item_strfunc.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item.cc:
        Allow mixing of different character sets for more SQL functions.
      sql/item.h:
        Allow mixing of different character sets for more SQL functions.
      mysql-test/t/ctype_recoding.test:
        Allow mixing of different character sets for more SQL functions.
      mysql-test/r/ctype_recoding.result:
        Allow mixing of different character sets for more SQL functions.
      fc04692c
  32. 29 Oct, 2004 2 commits
    • unknown's avatar
      A fix according to Monty's request: · 6e781e11
      unknown authored
      "uint *errors" is now a non-optional parameter in String:copy()
      and copy_and_convert().
      
      
      6e781e11
    • unknown's avatar
      Allow to convert to non-Unicode charset when mixing a string · a739f2d6
      unknown authored
      constant with a column. The string is converted into the column
      character set. It conversion doesn't lose data, then operation
      is possible. Otherwise, give an error, as it was earlier.
      
      
      sql/item.h:
        Change bool argument to uint flags:
        we have now two different flags.
      a739f2d6
  33. 22 Oct, 2004 1 commit
    • unknown's avatar
      Followup to fix for bug#6050: fix valgrind warnings. · 1cd249e0
      unknown authored
      sql/item.cc:
        Fix valgrind errors: we need Item::name to point to PS memory
        as well.
      sql/item.h:
        set_field no longer can be reused as is for PS purposes.
      sql/sql_union.cc:
        Item_field::set_field -> Item_field::reset_field.
      1cd249e0