An error occurred fetching the project authors.
  1. 28 Apr, 2006 1 commit
    • unknown's avatar
      BUG#19145: mysqld crashes if you set the default value of an enum field to NULL · dd68976a
      unknown authored
      Now test for NULLness the pointers returned from objects created from the
      default value. Pushing patch on behalf of cmiller.
      
      
      mysql-test/r/null.result:
        Add test case
      mysql-test/t/null.test:
        Add test case
      sql/sql_table.cc:
        No longer blindly dereference pointer of the string representation of the
        values, where "NULL" is NUL. Raise INVALID DEFAULT error messages where
        appropriate.
        
        Note that the -O1 optimization flag made debugging this extremely tricky, with
        misleading results, and that removing it from the Makefile during debugging can
        be invaluable.
      dd68976a
  2. 25 Apr, 2006 1 commit
  3. 29 Mar, 2006 2 commits
    • unknown's avatar
      Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries · b2531546
      unknown authored
      The GROUP_CONCAT uses its own temporary table. When ROLLUP is present
      it creates the second copy of Item_func_group_concat. This copy receives the
      same list of arguments that original group_concat does. When the copy is
      set up the result_fields of functions from the argument list are reset to the
      temporary table of this copy.
      As a result of this action data from functions flow directly to the ROLLUP copy
      and the original group_concat functions shows wrong result.
      Since queries with COUNT(DISTINCT ...) use temporary tables to store
      the results the COUNT function they are also affected by this bug.
      
      The idea of the fix is to copy content of the result_field for the function
      under GROUP_CONCAT/COUNT from  the first temporary table to the second one,
      rather than setting result_field to point to the second temporary table.
      To achieve this goal force_copy_fields flag is added to Item_func_group_concat
      and Item_sum_count_distinct classes. This flag is initialized to 0 and set to 1
      into the make_unique() member function of both classes.
      To the TMP_TABLE_PARAM structure is modified to include the similar flag as
      well.
      The create_tmp_table() function passes that flag to create_tmp_field().
      When the flag is set the create_tmp_field() function will set result_field
      as a source field and will not reset that result field to newly created 
      field for Item_func_result_field and its descendants. Due to this there
      will be created copy func to copy data from old result_field to newly 
      created field.
      
      
      mysql-test/t/func_gconcat.test:
        Added test for bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
      mysql-test/r/func_gconcat.result:
        Added test for bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
      sql/sql_table.cc:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added 0 as a last parameter to create_tmp_field()  to force old behaviour.
      sql/sql_select.cc:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        
        Added the flag 'make_copy_field' to create_tmp_field(), so that for Item_result_field descendants create_tmp_field() sets the item's result field as a source field and deny resetting that result field to a new value.
      sql/sql_class.h:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added the flag 'force_copy_fields' to the structure TMP_TABLE_PARAM in order to make create_tmp_field() force the creation of 'copy_field' objects.
      sql/mysql_priv.h:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added the bool parameter 'make_copy_field' to create_tmp_field().
      sql/item_sum.cc:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added initialization of the force_copy_fields flag and passing it to create_tmp_table() through TMP_TBLE_PARAM in the Item_func_group_concat and Item_sum_count_distinct member functions.
      sql/item_sum.h:
        Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
        Added the flag 'force_copy_fields' to the Item_func_group_concat and Item_sum_count_distinct classes.
      b2531546
    • unknown's avatar
      Fix for bug#15316 SET value having comma not correctly handled · 4af4e1e7
      unknown authored
       disallow the use of comma in SET members
      
      
      mysql-test/r/create.result:
        Fix for bug#15316 SET value having comma not correctly handled
         test case
      mysql-test/t/create.test:
        Fix for bug#15316 SET value having comma not correctly handled
         test case
      4af4e1e7
  4. 21 Feb, 2006 1 commit
    • unknown's avatar
      A fix and a test case for Bug#13134 "Length of VARCHAR() utf8 · 9cf3f255
      unknown authored
      column is increasing when table is recreated with PS/SP":
      make use of create_field::char_length more consistent in the code.
      Reinit create_field::length from create_field::char_length
      for every execution of a prepared statement (actually fixes the 
      bug).
      
      
      mysql-test/r/ps.result:
        Test results fixed (Bug#13134)
      mysql-test/t/ps.test:
        A test case for Bug#13134 "Length of VARCHAR() utf8 column is 
        increasing when table is recreated with PS/SP"
      sql/field.cc:
        Move initialization of create_field::char_length to the constructor
        of create_field.
      sql/field.h:
        Rename chars_length to char_length (to be consistent with
        how this term is used throughout the rest of the code).
      sql/sql_parse.cc:
        Initialize char_length in add_field_to_list. This function
        effectively works as another create_field constructor.
      sql/sql_table.cc:
        Reinit length from char_length for every field in 
        mysql_prepare_table. This is not needed if we're executing
        a statement for the first time, however, at subsequent executions
        length contains the number of bytes, not characters (as it's expected 
        to).
      9cf3f255
  5. 10 Dec, 2005 1 commit
    • unknown's avatar
      Fix for bug #15225 (ANALYZE temporary has no effect) · 48450d8a
      unknown authored
      mysql-test/r/analyze.result:
        test result fixed
      mysql-test/t/analyze.test:
        test case added
      sql/sql_table.cc:
        we don't need to remove temporary table from the cache,
        but we need to reload it's info
      48450d8a
  6. 25 Nov, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#14410 "Crash in Enum or Set type in · 2a1ae3a5
      unknown authored
      CREATE TABLE and PS/SP": make sure that 'typelib' object for
      ENUM values and 'Item_string' object for DEFAULT clause are 
      created in the statement memory root.
      
      
      mysql-test/r/ps.result:
        Test results has been fixed (Bug#14410)
      mysql-test/t/ps.test:
        A test case for Bug#14410 "Crash in Enum or Set type in CREATE 
        TABLE and PS/SP"
      sql/mysql_priv.h:
        typelib() function declaration has been changed.
      sql/sql_table.cc:
        Supply the statement memory root to use in typelib() and
        safe_charset_converter() functions to ensure that objects 
        created during the first execution of CREATE TABLE statement
        are allocated in persistent memory of the statement.
      sql/table.cc:
        Change typelib() function to require MEM_ROOT.
      2a1ae3a5
  7. 09 Nov, 2005 1 commit
  8. 07 Nov, 2005 1 commit
    • unknown's avatar
      BUG#14480, attempt2: In CREATE ... SELECT ..., don't count the same field twice · 467deb4c
      unknown authored
      when calculating table->null_fields.
      
      
      mysql-test/r/create.result:
        Testcase for BUG#14480
      mysql-test/t/create.test:
        Testcase for BUG#14480
      sql/sql_table.cc:
        BUG#14480: For CREATE ... SELECT ... a field list passed to mysql_prepare_table() contains
        instances of create_field for both create-list and select-list. mysql_prepare_table() 
        matches elements that refer to the same field, and joins them together. When the "join"  
        is performed, both of create_field structures has already been counted in "null_fields". 
        
        This fix makes sure that "null_fields" contains the correct value after two create_field 
        structures have been joined.
      467deb4c
  9. 03 Nov, 2005 1 commit
    • unknown's avatar
      Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash · 7d183320
      unknown authored
      Version for 4.0.
      It fixes two problems:
      1. The cause of the bug was that we did not check the table version for
         the HANDLER ... READ commands. We did not notice when a table was
         replaced by a new one. This can happen during ALTER TABLE, REPAIR
         TABLE, and OPTIMIZE TABLE (there might be more cases). I call the fix
         for this problem "the primary bug fix".
      2. mysql_ha_flush() was not always called with a locked LOCK_open.
         Though the function comment clearly said it must.
         I changed the code so that the locking is done when required. I call
         the fix for this problem "the secondary fix".
      
      
      mysql-test/r/handler.result:
        Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        The test result.
      mysql-test/t/handler.test:
        Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        The test case.
      sql/mysql_priv.h:
        Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        Changed a definition for the secondary fix.
      sql/sql_base.cc:
        Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        Changed function calls for the secondary fix.
      sql/sql_class.cc:
        Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        Changed a function call for the secondary fix.
      sql/sql_handler.cc:
        Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        The first two diffs make the primary bug fix.
        The rest is for the secondary fix.
      sql/sql_table.cc:
        Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
        Changed function calls for the secondary fix.
      7d183320
  10. 25 Oct, 2005 1 commit
    • unknown's avatar
      BUG#14139: When handling "CREATE TABLE(field_X type_spec,...) SELECT smth AS field_X, ...." · 115bf436
      unknown authored
      avoid multiplying length of field_X by charset->mbmaxlen twice when calculating space 
      required for field_X in the new table.
      
      
      mysql-test/r/create.result:
        Testcase for BUG#14139
      mysql-test/t/create.test:
        Testcase for BUG#14139
      sql/field.cc:
        BUG#14139: Make create_length_to_internal_length() save length-in-characters in 
        create_field::chars_length.
      sql/field.h:
        BUG#14139: Add create_length::chars_length where we save length-in-characters, added comments.
      sql/sql_table.cc:
        BUG#14139: When handling "CREATE TABLE(field_X type_spec,...) SELECT smth AS field_X, ...."
        we get two instances of create_field: (1) is occurence of field_X in create list, and (2) is
        in select list. If we figure they both refer to the same field, we "join" them according to
        some rule that is not explicitly specified anywhere.
        When we do this "join", create_field::length already contains length-in-bytes for both, so
        when we transfer field length (in characters) from (1) to (2), use length-in-characters that
        we have saved in create_length::chars_length.
      115bf436
  11. 12 Sep, 2005 1 commit
    • unknown's avatar
      Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS · 63080dc2
      unknown authored
        produce warning for 'create database if not exists' if database exists
        do not update database options in this case  
        produce warning for 'create table if not exists' if table exists
      
      
      
      mysql-test/r/create.result:
        Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
          updated test case result
      mysql-test/r/temp_table.result:
        Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
          updated test case result
      mysql-test/r/warnings.result:
        Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
          updated test case result
      mysql-test/t/create.test:
        Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
          test case
      sql/sql_db.cc:
        Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
          produce warning for 'create database if not exists' if database exists
          do not update database options in this case
      sql/sql_table.cc:
        Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
          produce warning for 'create table if not exists' if table exists
      63080dc2
  12. 31 Aug, 2005 1 commit
    • unknown's avatar
      fix for bug#12913 · 11bd1f87
      unknown authored
      (Simple SQL can crash server or connection)
      (not initialized member leads to server crash)
      
      
      mysql-test/r/create.result:
        result of test for bug #12913
      mysql-test/t/create.test:
        test for bug#12913
        (Simple SQL can crash server or connection)
      sql/sql_table.cc:
        copy the interval pointer too or a bit later
        dereferencing of this pointer being 0x0 will crash the server
        (see bug #12913)
      11bd1f87
  13. 30 Aug, 2005 1 commit
  14. 29 Aug, 2005 1 commit
    • unknown's avatar
      Bug#12296 - CHECKSUM TABLE reports 0 for the table · ea363750
      unknown authored
      Skipping deleted records instead of breaking the loop
      during checksum calculation.
      
      
      mysql-test/r/myisam.result:
        Bug#12296 - CHECKSUM TABLE reports 0 for the table
        The test result.
      mysql-test/t/myisam.test:
        Bug#12296 - CHECKSUM TABLE reports 0 for the table
        The test case.
      ea363750
  15. 22 Aug, 2005 1 commit
    • unknown's avatar
      after pull cleanup · e2c29343
      unknown authored
      configure.in:
        don't be too restrictive
      mysql-test/r/rpl_drop_db.result:
        test case cleanup
      mysql-test/t/rpl_drop_db.test:
        test case cleanup
      e2c29343
  16. 19 Aug, 2005 1 commit
    • unknown's avatar
      updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication). · 4652c6b0
      unknown authored
      We binlog the DROP TABLE for each table that was actually dropped. Per Sergei's 
      suggestion a fixed buffer for the DROP TABLE query is pre-allocated from THD pool, and 
      logging now is done in batches - new batch is started if the buffer becomes full.
      Reduced memory usage by reusing the table list instead of accumulating a list of 
      dropped table names. Also fixed the problem if the table was not actually dropped, eg
      due to permissions. Extended the test case to make sure batched query 
      logging does work.  
      
      
      mysql-test/r/rpl_drop_db.result:
        test for query buffer overrun
      mysql-test/t/rpl_drop_db.test:
        test for query buffer overrun
      sql/mysql_priv.h:
        updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
      BitKeeper/etc/ignore:
        Added support-files/MacOSX/postflight support-files/MacOSX/preflight to the ignore list
      sql/sql_db.cc:
        updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
      sql/sql_table.cc:
        updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
      sql/table.h:
        updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
      4652c6b0
  17. 04 Aug, 2005 1 commit
  18. 27 Jul, 2005 1 commit
    • unknown's avatar
      Review of new code: · 34b340c4
      unknown authored
      Change argument order to be database, tablename for some functions
      
      
      sql/lock.cc:
        Remove not needed block
      sql/mysql_priv.h:
        Change argument order to be database, tablename (like in most other functions)
      sql/sql_table.cc:
        Change argument order to be database, tablename (like in most other functions)
        Make 'flags' inline
      sql/table.cc:
        Change argument order to be database, tablename (like in most other functions)
      sql/unireg.cc:
        Change argument order to be database, tablename (like in most other functions)
      34b340c4
  19. 22 Jul, 2005 1 commit
    • unknown's avatar
      Fix error message generated when trying to create a table in a · 41984105
      unknown authored
      non-existent database. (Bug #10407)
      
      
      mysql-test/r/create.result:
        Update results
      mysql-test/t/create.test:
        Update error numbers
      sql/mysql_priv.h:
        Adjust some other function signature so table and db information
        is passed down into create_frm().
      sql/sql_table.cc:
        Check for database not existing after hitting an error when
        copying the .frm file for 'CREATE TABLE ... LIKE ...', and
        pass table and db name into rea_create_table().
      sql/table.cc:
        Generate specific error message when .frm creation fails because
        the database does not exist.
      sql/unireg.cc:
        Pass database and table name down into create_frm().
      41984105
  20. 21 Jul, 2005 1 commit
  21. 20 Jul, 2005 1 commit
    • unknown's avatar
      Bug #10600 After review fixes · af1dfb61
      unknown authored
      sql/lock.cc:
        Used flags immediately in call
      sql/mysql_priv.h:
        Added RTFC (short for remove_table_from_cache)
        for constants and used hex syntax to clarify it is bits
        in the flags
      sql/sql_base.cc:
        Use flags parameter immediately and use flags immediately in call
        Change to other variant of eternal loop variant
      sql/sql_table.cc:
        Use flags immediately in call
      af1dfb61
  22. 18 Jul, 2005 1 commit
    • unknown's avatar
      Bug #10600 · 6d29b23b
      unknown authored
      remove_table_from_cache fails to signal other thread and gets
      blocked when other thread also gets blocked
      
      
      include/thr_lock.h:
        Report if any threads was signalled
      mysys/thr_lock.c:
        Report if any threads was signalled
      sql/lock.cc:
        Report if any threads was signalled
        Use new interface for remove_table_from_cache
      sql/mysql_priv.h:
        New interface for remove_table_from_cache
        + mysql_lock_abort_for_thread
      sql/sql_base.cc:
        Use new interface of remove_table_cache
        Rewrote remove_table_from_cache to fix bug
      sql/sql_table.cc:
        Use new interface of remove_table_from_cache
      6d29b23b
  23. 13 Jul, 2005 1 commit
    • unknown's avatar
      ctype_utf8.result: · 4a2af29f
      unknown authored
        adding test case
      sql_table.cc:
        sql_table.cc:
        - do not create a new item when charsets are the same
        - return ER_INVALID_DEFAULT if default value cannot
          be converted into the column character set.
      item.cc:
        - Allow conversion not only to Unicode,
          but also to and from "binary".
        - Adding safe_charset_converter() for Item_num
          and Item_varbinary, returning a fixed const Item.
      
      
      sql/item.cc:
        - Allow conversion not only to Unicode,
          but also to and from "binary".
        - Adding safe_charset_converter() for Item_num
          and Item_varbinary, returning a fixed const Item.
      sql/sql_table.cc:
        sql_table.cc:
        - do not create a new item when charsets are the same
        - return ER_INVALID_DEFAULT if default value cannot
          be converted into the column character set.
      mysql-test/r/ctype_utf8.result:
        adding test case
      4a2af29f
  24. 27 Jun, 2005 1 commit
    • unknown's avatar
      Portability fixes · 76d444fc
      unknown authored
      Fixes while reviewing new pushed code
      NULL as argument to encrypt/decrypt should return NULL without a warning
      
      
      client/mysqldump.c:
        Cleanup
        Ensure we free allocated memory
        Portability fixes
      client/mysqltest.c:
        Cleanup of code during review
        Portability fixes (Don't use 'bool')
      mysql-test/r/func_encrypt.result:
        NULL as argument to encrypt/decrypt should return NULL without a warning
      mysql-test/r/func_encrypt_nossl.result:
        Added test of NULL argument
      mysql-test/t/func_encrypt_nossl.test:
        Added test of NULL argument
      sql/handler.cc:
        Cleanup during code review
      sql/item_strfunc.cc:
        NULL as argument to encrypt/decrypt should return NULL without a warning
      sql/sql_parse.cc:
        Fix wrong merge (fix was not needed as the previous code was reverted)
      sql/sql_table.cc:
        Removed extra new line
      76d444fc
  25. 21 Jun, 2005 1 commit
  26. 09 Jun, 2005 1 commit
    • unknown's avatar
      Bug#11028 Crash on create table like · c995109b
      unknown authored
        Report error instead of crashing
      
      
      mysql-test/r/create.result:
        Test for bug 11028
      mysql-test/t/create.test:
        Test for bug 11028
      sql/sql_table.cc:
        fix for null db name
      c995109b
  27. 08 Jun, 2005 1 commit
    • unknown's avatar
      BUG#10365 Cluster handler uses non-standard error codes · 09944efd
      unknown authored
       - Added better error messages when trying to open a table that can't be discovered or unpacked. The most likely cause of this is that it does not have any frm data, probably since it has been created from NdbApi or is a NDB system table.
       - Separated functionality that was in ha_create_table_from_engine into two functions. One that checks if the table exists and another one that tries to create the table from the engine.
      
      
      mysql-test/r/ndb_autodiscover.result:
        Add tests for reading from a table that can't be discovered(SYSTAB_0)
        Discovery is not performed during create table anymore.
      mysql-test/t/ndb_autodiscover.test:
        Add tests for reading from a table that can't be discovered(SYSTAB_0)
        Discovery is not performed during create table anymore.
      ndb/test/ndbapi/create_tab.cpp:
        Set connectstring before creating Ndb object.
      sql/ha_ndbcluster.cc:
        Rename and use the function ndbcluster_table_exists_in_engine.
        Correct return valu from ndbcluster_discover
        Remove old code "ndb_discover_tables"
      sql/ha_ndbcluster.h:
        Rename function ndbcluster_table_exists to ndb ndbcluster_table_exists_in_engine
      sql/handler.cc:
        Update comment of ha_create_table_from_engine
        Remove parameter create_if_found from ha_create_table_from_engine, the function ha_table_exists_in_engine is now used toi check if table is found in engine.
        Cleanup return codes from ha_create_table_from_engine.
        Change name of ha_table_exists to ha_table_exists_in_engine, update comment and returne codes.
      sql/handler.h:
        Remove paramter create_if_cound from  ha_create_table_from_engine
        Rename ha_table_exists to ha_table_exists_in_engine
      sql/sql_base.cc:
        Use the function ha_table_exists_in_engine to detect if table exists in enegine. 
        If it exists, call function ha_create_table_from_engine to try and create it.
        If create of table fails, set correct error message.
      sql/sql_table.cc:
        Add comments, remove parameter create_if_found to ha_create_table_from_engine.
        When dropping a table, try to discover it from engine. If discover fails, use same error message as if the table didn't exists. 
        Maybe another message should be displayed here, ex: "Table could not be dropped, unpack failed"
        
        When creating a new table, use ha_table_exists_in_engine to check if a table with the given name already exists.
      09944efd
  28. 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
  29. 01 Jun, 2005 1 commit
  30. 31 May, 2005 1 commit
    • unknown's avatar
      Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement. · cf2188ca
      unknown authored
      1.) Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
      Used the new option in create_table_from_items().
      It is necessary to prevent the SELECT table from being reopend.
      It would get new storage assigned for its fields, while the
      SELECT part of the command would still use the old (freed) storage.
      2.) Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
      against a global read lock. This prevents a deadlock in
      CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
      and avoids the creation of new tables during a global read lock.
      3.) Replaced set_protect_against_global_read_lock() and
      unset_protect_against_global_read_lock() by
      wait_if_global_read_lock() and start_waiting_global_read_lock()
      in the INSERT DELAYED handling.
      
      
      mysql-test/r/create.result:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Added test results.
      mysql-test/t/create.test:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Added tests which do not require concurrency.
      sql/lock.cc:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Added a new option to mysql_lock_tables() for ignoring FLUSH TABLES.
        Changed the parameter list.
        Removed two unnecessary functions. Their functionality is included in
        wait_if_global_read_lock() and start_waiting_global_read_lock().
      sql/mysql_priv.h:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Changed the declaration of mysql_lock_tables().
        Added definitions for the new options.
      sql/sql_acl.cc:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Adjusted mysql_lock_tables() calls to the new argument list.
      sql/sql_base.cc:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Adjusted mysql_lock_tables() calls to the new argument list.
      sql/sql_handler.cc:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Adjusted mysql_lock_tables() calls to the new argument list.
      sql/sql_insert.cc:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Replaced set_protect_against_global_read_lock() and
        unset_protect_against_global_read_lock() by
        wait_if_global_read_lock() and start_waiting_global_read_lock()
        in the INSERT DELAYED handling.
        Adjusted mysql_lock_tables() calls to the new argument list.
      sql/sql_parse.cc:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Protected the CREATE TABLE and CREATE TABLE ... SELECT commands
        against a global read lock. This prevents a deadlock in
        CREATE TABLE ... SELECT in conjunction with FLUSH TABLES WITH READ LOCK
        and avoids the creation of new tables during a global read lock.
      sql/sql_table.cc:
        Bug#10224 - ANALYZE TABLE crashing with simultaneous CREATE ... SELECT statement.
        Adjusted mysql_lock_tables() calls to the new argument list.
        Used the new option in create_table_from_items().
      cf2188ca
  31. 26 May, 2005 2 commits
    • unknown's avatar
      Cleanups to patch for bug #9660 after review by Monty. · e547fbea
      unknown authored
      sql/sql_table.cc:
        Make return value of build_table_path() useful
        Eliminate some unnecessary casts
      e547fbea
    • unknown's avatar
      Fix table renaming to not lowercase table names for all storage · 8ac75806
      unknown authored
      engines when lower_case_table_names == 2, as it did previously
      for InnoDB and MEMORY. (Bug #9660)
      
      
      mysql-test/r/lowercase_table2.result:
        Fix results
      sql/sql_table.cc:
        Add build_table_path() function to construct the path to
        a table, and use it to replace nearly all of the places
        where this was done with similar code.
        
        Fix mysql_rename_table() to not lowercase the .frm file
        name when lower_case_table_names == 2 and the storage
        engine does not set the HA_FILE_BASED flag (such as InnoDB).
      8ac75806
  32. 24 May, 2005 1 commit
  33. 14 May, 2005 1 commit
    • unknown's avatar
      After merge fixes · 2059908b
      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
      2059908b
  34. 13 May, 2005 1 commit
    • unknown's avatar
      Change create_field->offset to store offset from start of fields, independent of null bits. · 7c441dd1
      unknown authored
      Count null_bits separately from field offsets and adjust them in case of primary key parts.
      (Previously a CREATE TABLE with a lot of null fields that was part of a primary key caused MySQL to wrongly count the number of bytes needed to store null bits)
      This is a more complete bug fix for #6236
      
      
      mysql-test/r/alter_table.result:
        More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
      mysql-test/t/alter_table.test:
        More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
      sql/handler.h:
        Add counter for null fields
      sql/sql_table.cc:
        Change create_field->offset to store offset from start of fields, independent of null bits.
        Count null_bits separately from field offsets and adjust them in case of primary key parts.
      sql/unireg.cc:
        Change create_field->offset to store offset from start of fields, independent of null bits.
        Count null_bits separately from field offsets and adjust them in case of primary key parts.
      7c441dd1
  35. 08 May, 2005 1 commit
    • unknown's avatar
      Bug#6236 · 3e1dad41
      unknown authored
        Incomplete ALTER TABLE breaks MERGE compatibility
        Fix implicit NOT NULL not set on ALTER of PK columns
      
      
      mysql-test/r/alter_table.result:
        Test for Bug#6236
      mysql-test/t/alter_table.test:
        Test for Bug#6236
      sql/sql_table.cc:
        Implicit NOT NULL not set on ALTER of PK columns
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      3e1dad41
  36. 28 Apr, 2005 1 commit
    • unknown's avatar
      Fix 'CREATE TABLE ... LIKE ...' when lower_case_table_names · ef3e9e1c
      unknown authored
      is set on case-sensitive file systems and the source table
      was specified in something other than lowercase. (Bug #9761)
      
      
      mysql-test/r/lowercase_table.result:
        Add results
      mysql-test/t/lowercase_table.test:
        Regression test for Bug #9761
      sql/sql_table.cc:
        When lower_case_table_names is set, make sure to look for
        the source table using a lowercase filename.
      ef3e9e1c
  37. 11 Apr, 2005 1 commit
    • unknown's avatar
      Fix for BUG#9149 "OPTIMIZE TABLE statement on InnoDB table is logged twice in the binary log" · 30a82dfb
      unknown authored
      if we fall back to mysql_alter_table() (for InnoDB), don't do binlogging in mysql_alter_table(), as mysql_admin_table()
      is not supposed to do any binlogging (it is done by the caller).
      
      
      sql/sql_table.cc:
        When optimizing a table, if we fall back to mysql_alter_table()
        (for InnoDB), don't do binlogging in mysql_alter_table(), as mysql_admin_table()
        is not supposed to do any binlogging (it is done by the caller).
      30a82dfb
  38. 07 Apr, 2005 1 commit
    • unknown's avatar
      InnoDB: Prevent ALTER TABLE ... ENGINE=... · f7356d73
      unknown authored
      if there are foreign key constraints on the table. (Bug #5574)
      
      
      sql/ha_innodb.cc:
        Add method can_switch_engines()
      sql/ha_innodb.h:
        Add method can_switch_engines()
      sql/handler.h:
        Add method can_switch_engines()
      sql/sql_table.cc:
        Check handler::can_switch_engines() before switching storage engines
      f7356d73