1. 14 Jul, 2005 1 commit
  2. 13 Jul, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#9379 (collation of a parameter marker is · 346dfa00
      unknown authored
      binary).
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#9379)
      mysql-test/t/ps.test:
        A test case for Bug#9379 (collation of a parameter marker is binary)
      sql/item.cc:
        - set Item_param::collation to str_value collation, if Item_param
        is assigned a string. Reset it to default in Item_param::reset() (on 
        the next execution it can be assigned a number).
      sql/item_func.cc:
        - now that item collation can change between executions
        (if this item is Item_param), we need to register the change
        of the execution tree in the rollback list.
      346dfa00
  3. 05 Jun, 2005 1 commit
  4. 03 Jun, 2005 1 commit
    • unknown's avatar
      Move USE_PRAGMA_IMPLEMENTATION to proper place · 90931c2e
      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 {}
      90931c2e
  5. 02 Jun, 2005 2 commits
    • unknown's avatar
      item_func.cc: · 2bf8c6c9
      unknown authored
      set_var.cc:
      variables.result
      variables.test
      
        Bug #10904 Illegal mix of collations between a system variable and a constant
        Changing coercibility of system variables to SYSCONST,
        to be the same with USER(), DATABASE(), etc.
      
      
      sql/item_func.cc:
        Bug #10904 Illegal mix of collations between a system variable and a constant
        Changing coercibility of system variables to SYSCONST
        To be the same with USER(), DATABASE(), etc.
      2bf8c6c9
    • unknown's avatar
      tztime.cc: · 504d71aa
      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
      504d71aa
  6. 01 Jun, 2005 1 commit
  7. 26 May, 2005 1 commit
    • unknown's avatar
      Add ifdefs to control when "#pragma implementation" should be used · 50dfbb61
      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/it...
      50dfbb61
  8. 14 May, 2005 1 commit
    • unknown's avatar
      After merge fixes · 2fc28a36
      unknown authored
      BitKeeper/deleted/.del-outfile2.result~fb702ee2518d8e6d:
        Delete: mysql-test/r/outfile2.result
      libmysql/libmysql.c:
        Fix indentation for new function mysql_set_character_set()
      mysql-test/r/alter_table.result:
        Fix test to be in same order as in 4.0
      mysql-test/r/innodb.result:
        After merge fix
      mysql-test/r/insert_update.result:
        Add extra test for insert into ... on duplicate key upate
      mysql-test/r/outfile.result:
        After merge fix
      mysql-test/t/alter_table.test:
        Fix test to be in same order as in 4.0
      mysql-test/t/insert_update.test:
        Add extra test for insert into ... on duplicate key upate
      mysql-test/t/outfile.test:
        After merge fix
      sql/item_func.cc:
        After merge fix
      sql/sql_table.cc:
        After merge fix
      2fc28a36
  9. 07 May, 2005 1 commit
    • unknown's avatar
      BUG#7709 fix - Boolean fulltext query against unsupported engines does not · 45fbee53
      unknown authored
      fail.
      
      
      mysql-test/r/innodb.result:
        Test case for BUG#7709 - Boolean fulltext query against
        unsupported engines does not fail added.
      mysql-test/t/innodb.test:
        Test case for BUG#7709 - Boolean fulltext query against
        unsupported engines does not fail added.
      sql/item_func.cc:
        Check if table supports fulltext.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      45fbee53
  10. 03 May, 2005 1 commit
    • unknown's avatar
      A fix and test case for Bug#9096 "select doesn't return all matched · eb9e992b
      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.
      eb9e992b
  11. 30 Apr, 2005 1 commit
    • unknown's avatar
      Fix for Bug #9913 "udf_deinit is not called after execution of PS" · af46002c
      unknown authored
      (aka "deinit is not called when calling udf from trigger").
      
      We should call udf_deinit() function during cleanup phase after prepared
      (or ordinary) statement execution instead of calling it from Item's
      desctructor.
      
      No test case is provided since it is hard to test UDF's from our test
      suite.
      
      
      sql/item_func.cc:
        udf_handler:
         Moved all functionality from udf_handler::~udf_handler() to 
         udf_handler::cleanup() method which will be called after
         each PS execution, thus allowing udf_deinit() to be executed
         symetrically with udf_init() (which is executed for each
         execution of PS).
        Added Item_udf_func::cleanup() which performs proper cleanup after
        execution of PS with UDF function.
      sql/item_func.h:
        Added Item_udf_func::cleanup() method to perform cleanup properly after
        execution of PS with UDF function.
      sql/item_sum.cc:
        Added Item_udf_sum::cleanup() method to perform cleanup properly after
        execution of PS with aggregate UDF function.
      sql/item_sum.h:
        Added Item_udf_sum::cleanup() method to perform cleanup properly after
        execution of PS with aggregate UDF function.
      sql/sql_udf.h:
        Added udf_handler::cleanup() method declaration which is responsible
        for cleaning up UDF execution context at the end of execution of
        statement (using ~udf_handler() for this purprose did not worked for PS).
      af46002c
  12. 29 Apr, 2005 1 commit
    • unknown's avatar
      CAST(string_argument AS UNSIGNED) didn't work for big integers above the signed range. (Bug #7036) · f301f8f2
      unknown authored
      Produce warnings of wrong cast of strings to signed/unsigned.
      Don't block not resolved IP's if DNS server is down (Bug #8467)
      Fix compiler problems with MinGW (Bug #8872)
      
      
      configure.in:
        Fix compiler problems with MinGW (Bug #8872)
      include/config-win.h:
        Fix compiler problems with MinGW (Bug #8872)
      include/my_global.h:
        Fix compiler problems with MinGW (Bug #8872)
      mysql-test/r/cast.result:
        Test for cast to signed/unsigned outside of range (Bug #7036)
      mysql-test/t/cast.test:
        Test for cast to signed/unsigned outside of range (Bug #7036)
      mysys/default.c:
        Cleanup (combine identical code). 
        Done mainly by Jani
      sql/field.h:
        Added cast_to_int_type() to ensure that enums are casted as numbers
      sql/hostname.cc:
        Don't block not resolved IP's if DNS server is down (Bug #8467)
      sql/item.h:
        Added cast_to_int_type() to ensure that enums are casted as numbers
      sql/item_func.cc:
        CAST(string_argument AS UNSIGNED) didn't work for big integers above the
        signed range. (Bug #7036)
        Produce warnings of wrong cast of strings to signed/unsigned
      sql/item_func.h:
        CAST(string_argument AS UNSIGNED) didn't work for big integers above the
        signed range. (Bug #7036)
      f301f8f2
  13. 19 Apr, 2005 1 commit
  14. 28 Mar, 2005 1 commit
  15. 16 Mar, 2005 1 commit
    • unknown's avatar
      Bugs#9129: CHARSET(), COLLATION(), COERCIBILITY() · 7a4f68e7
      unknown authored
      not always correct for NULL values.
      Now they always result a non NULL value even
      the argument is NULL. It is more usefull for 
      debugging purposes.
      
      
      mysql-test/r/func_str.result:
        Bugs#9129: CHARSET(), COLLATION(), COERCIBILITY()
        not always correct for NULL values.
        
        Also, a mistake in EXPORT_SET was fixed.
      mysql-test/t/func_str.test:
        Bugs#9129: CHARSET(), COLLATION(), COERCIBILITY()
        not always correct for NULL values.
      sql/item_func.cc:
        Bugs#9129: CHARSET(), COLLATION(), COERCIBILITY()
        not always correct for NULL values.
      sql/item_strfunc.cc:
        Bugs#9129: CHARSET(), COLLATION(), COERCIBILITY()
        not always correct for NULL values.
        
        A minor mistake in EXPORT_SET() was fixed.
      7a4f68e7
  16. 04 Mar, 2005 1 commit
    • unknown's avatar
      type_blob.result, func_system.result, func_str.result, ctype_collate.result: · 4b06e5a4
      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 intro...
      4b06e5a4
  17. 22 Feb, 2005 1 commit
    • unknown's avatar
      A user variable are now always have IMPLICIT coercibility, · aa91a063
      unknown authored
      independently from the expression it is initialized from.
      In other words, this change treats a user variable like
      a table with one column and one record. Discussed with 
      PeterG, Serg and Lars. This change also simplifies replication
      allowing not to replicate variables' coercibility.
      
      
      mysql-test/r/user_var.result:
        Test changes accordintly
      mysql-test/t/user_var.test:
        Test changes accordintly
      aa91a063
  18. 08 Feb, 2005 1 commit
    • unknown's avatar
      Better bugfix for "HAVING when refering to RAND()" (Bug #8216) · 8bbefca5
      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.
      8bbefca5
  19. 07 Feb, 2005 1 commit
    • unknown's avatar
      Fixed bug in HAVING when refering to RAND() through alias · 9d01e93c
      unknown authored
      (BUG 8216)
      
      
      mysql-test/r/group_by.result:
        New test case
      mysql-test/r/user_var.result:
        Test changed (to be more correct) with bug fix
      mysql-test/t/group_by.test:
        Added test for HAVING bug
      sql/item_cmpfunc.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/item_func.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/item_row.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/item_strfunc.cc:
        Fixed bug in HAVING when refering to RAND()
      sql/unireg.h:
        Added PSEUDO_TABLES_BITS for easy testing of real table reference
      9d01e93c
  20. 04 Feb, 2005 1 commit
    • unknown's avatar
      indexless boolean fulltext search was depending on default_charset_info - Bug#8159 · 1d866688
      unknown authored
      ftbw->off wasn't cleared on reinit - Bug#8234
      
      
      include/ft_global.h:
        get rid of default_charset_info in indexless fulltext searches
      myisam/ft_boolean_search.c:
        get rid of default_charset_info in indexless fulltext searches
        clear ftbw->off on reinits
      myisam/ft_static.c:
        get rid of default_charset_info in indexless fulltext searches
      myisam/ftdefs.h:
        get rid of default_charset_info in indexless fulltext searches
      sql/ha_myisam.h:
        get rid of default_charset_info in indexless fulltext searches
      sql/handler.h:
        get rid of default_charset_info in indexless fulltext searches
      sql/item_func.cc:
        get rid of default_charset_info in indexless fulltext searches
      1d866688
  21. 03 Feb, 2005 1 commit
    • unknown's avatar
      Bug#8057 · db8ff6b2
      unknown authored
        Fix crash with LAST_INSERT_ID() in UPDATE,
        Tests included,
      
      
      mysql-test/r/update.result:
        Bug#8057
          Test for bug
      mysql-test/t/update.test:
        Bug#8057
          Test for bug
      sql/item_func.cc:
        Bug#8057
          Don't create new Item in val_int()
      db8ff6b2
  22. 24 Jan, 2005 1 commit
    • unknown's avatar
      fixed column number fetchinmg for subqueries. (BUG#8020) · 357c1c58
      unknown authored
      fixed cols() method call (it have to be called only after fix_fields())
      
      
      mysql-test/r/subselect.result:
        Comparison subquery with * and row
      mysql-test/t/subselect.test:
        Comparison subquery with * and row
      sql/item_cmpfunc.h:
        initialization allowed_arg_cols for autodetection
      sql/item_func.cc:
        support of allowed_arg_cols autodetection by first argument
      sql/item_func.h:
        commant
      sql/item_subselect.cc:
        correct column number fetching for subqueries
      sql/sql_lex.h:
        method to check that UNION is prepared
      357c1c58
  23. 20 Dec, 2004 1 commit
  24. 17 Dec, 2004 1 commit
    • unknown's avatar
      Fix for BUG#6825: When calculating Item_func_neg::max_length, add 1 for '-'. · 0aebc17c
      unknown authored
      For numeric constants we only need to add, since the parser doesn't produce 
      negative numbers. 
      For strings we only add (we actually could substract 1 if given string is a constant 
      and it has '-number' form but we're not doing that because 
       * we set max_length bigger then necessary in other cases as well.  
       * the current solution is simpler and safer (bigger max_length is better then cutting out)
      
      
      mysql-test/r/func_concat.result:
        Test for BUG#6825
      mysql-test/r/metadata.result:
        Ajusted results according to fix of bug BUG#6825:length(-1) = 2 , not 1
      mysql-test/t/func_concat.test:
        Test for BUG#6825
      0aebc17c
  25. 14 Dec, 2004 1 commit
    • unknown's avatar
      * Added comments and one assert · 0e5537ec
      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()
      0e5537ec
  26. 13 Dec, 2004 2 commits
    • unknown's avatar
      Merge of fix for BUG#6976 continued: pulling in some Item_ref changes from 5.0 · b650644b
      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
      b650644b
    • unknown's avatar
      Merging fix for BUG#6976 from 4.0 to 4.1 · 74a8fdd9
      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
      74a8fdd9
  27. 03 Dec, 2004 1 commit
    • unknown's avatar
      Bug#6391 (binlog-do-db rules ignored) · 7980920b
      unknown authored
        CREATE DATABASE statement used the current database instead of the
        database created when checking conditions for replication.
        CREATE/DROP/ALTER DATABASE statements are now replicated based on
        the manipulated database.
      
      
      mysql-test/t/rpl_until.test:
        Longer sleep to allow slave to stop.
      mysql-test/t/rpl_charset.test:
        Position change in binary file.
      mysql-test/r/drop_temp_table.result:
        Position change in binlog.
      mysql-test/r/rpl_loaddata_rule_m.result:
        Position change in binlog.
      mysql-test/r/rpl_charset.result:
        Position change in binlog.
      sql/log_event.h:
        Added new flag and parameter to suppress generation of
        USE statements.
      sql/log_event.cc:
        Added parameter and code to suppress generation of
        USE statements.
      sql/sql_db.cc:
        Suppress generation of USE before CREATE/ALTER/DROP DATABASE
        statements.
      sql/log.cc:
        Query_log_event have new extra parameter.
      sql/sql_table.cc:
        Query_log_event have new extra parameter.
      sql/sql_base.cc:
        Query_log_event have new extra parameter.
      sql/sql_update.cc:
        Query_log_event have new extra parameter.
      sql/sql_insert.cc:
        Query_log_event have new extra parameter.
      sql/sql_rename.cc:
        Query_log_event have new extra parameter.
      sql/sql_delete.cc:
        Query_log_event have new extra parameter.
      sql/sql_acl.cc:
        Query_log_event have new extra parameter.
      sql/handler.cc:
        Query_log_event have new extra parameter.
      sql/item_func.cc:
        Query_log_event have new extra parameter.
      sql/sql_parse.cc:
        Query_log_event have new extra parameter.
      7980920b
  28. 02 Dec, 2004 1 commit
  29. 19 Nov, 2004 1 commit
    • unknown's avatar
      Bug #6658 MAX(column) returns incorrect coercibility · 3bd5db89
      unknown authored
      Also, Item_sum_hybrid->charset was removed as redundant,
      and switched to use collation.collation instead.
      
      
      mysql-test/r/func_group.result:
        Bug #6658 MAX(column) returns incorrect coercibility
      mysql-test/r/func_str.result:
        Bug #6658 MAX(column) returns incorrect coercibility
      mysql-test/t/func_group.test:
        Bug #6658 MAX(column) returns incorrect coercibility
      sql/item_func.cc:
        Bug #6658 MAX(column) returns incorrect coercibility
      sql/item_sum.cc:
        Bug #6658 MAX(column) returns incorrect coercibility
      sql/item_sum.h:
        Bug #6658 MAX(column) returns incorrect coercibility
      3bd5db89
  30. 16 Nov, 2004 1 commit
    • unknown's avatar
      Fix comment. · b0f26d2c
      unknown authored
      sql/item_func.cc:
        Fix comment (used_table_cache is completely different from 
        used_tables_cache :)
      b0f26d2c
  31. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · dda7a6a9
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      dda7a6a9
  32. 06 Nov, 2004 1 commit
    • unknown's avatar
      A fix (bug #6441: Aggregate UDF in multi-table query crashes MySQL when returning multiple rows). · e19427d3
      unknown authored
      sql/item_func.cc:
        A fix (bug #6441: Aggregate UDF in multi-table query crashes MySQL when returning multiple rows).
        Do nothing in the udf_handler destructor if not_original flag is set.
      sql/item_sum.h:
        A fix (bug #6441: Aggregate UDF in multi-table query crashes MySQL when returning multiple rows).
        Set udf.not_original flag if we create an Item from the existent one.
      sql/sql_udf.h:
        A fix (bug #6441: Aggregate UDF in multi-table query crashes MySQL when returning multiple rows).
        not_original flag added.
      e19427d3
  33. 05 Nov, 2004 1 commit
    • unknown's avatar
      As it is wrong and confusing to associate any · 94957119
      unknown authored
      character set with NULL, @A should be latin2
      after this query sequence:
      
         SET @A=_latin2'string';
         SET @A=NULL;
      
      I.e. the second query should not change the charset
      to the current default value, but should keep the
      original value assigned during the first query.
      In order to do it, we don't copy charset
      from the argument if the argument is NULL
      and the variable has previously been initialized.
      
      
      mysql-test/r/ps_6bdb.result:
        t
      mysql-test/r/ps_5merge.result:
        t
      mysql-test/r/ps_3innodb.result:
        t
      mysql-test/r/ps_7ndb.result:
        t
      mysql-test/r/ps_4heap.result:
        t
      mysql-test/r/ps_2myisam.result:
        t
      sql/item_func.cc:
        t
      94957119
  34. 02 Nov, 2004 1 commit
    • unknown's avatar
      Many files: · 469889f5
      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.
      469889f5
  35. 29 Oct, 2004 2 commits
    • unknown's avatar
      A fix according to Monty's request: · 08809ca1
      unknown authored
      "uint *errors" is now a non-optional parameter in String:copy()
      and copy_and_convert().
      
      08809ca1
    • unknown's avatar
      Allow to convert to non-Unicode charset when mixing a string · 312fc6da
      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.
      312fc6da
  36. 28 Oct, 2004 1 commit
  37. 21 Oct, 2004 1 commit