An error occurred fetching the project authors.
  1. 11 Apr, 2006 1 commit
  2. 31 Mar, 2006 1 commit
    • unknown's avatar
      cleaned up a few method comments · e2e57c88
      unknown authored
      moved several functions from sql_partition to be member functions
      
      
      sql/partition_info.h:
        move these funcs from sql_partition to this class
      sql/sql_partition.cc:
        move these funcs from sql_partition to this class
      sql/sql_table.cc:
        calling the member func now instead
      e2e57c88
  3. 30 Mar, 2006 2 commits
    • unknown's avatar
      Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE · 2f3be0a6
      unknown authored
      InnoDB requires a full table rebuild for foreign key changes.
      It was not possible in compare_tables() to detect such changes.
      
      On Heikkis proposal I added a new flag to the syntax parser
      where foreign key definition changes are done. I test for
      this flag in compare_tables() now.
      
      
      mysql-test/r/innodb.result:
        Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
        Fixed an old test result.
        Added the new test result.
      mysql-test/t/innodb.test:
        Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
        Added the new test case.
      sql/sql_lex.h:
        Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
        Added a flag for foreign key definition changes.
      sql/sql_table.cc:
        Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
        Check for foreign key definition changes in 
        compare_tables(). If present, a table rebuild is required.
      sql/sql_yacc.yy:
        Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
        Marked foreign key definitions with the new flag.
        This flag is tested in ALTER TABLE only. It is
        ignored otherwise.
      2f3be0a6
    • unknown's avatar
      post-merge fix · 4e6fd6a7
      unknown authored
      4e6fd6a7
  4. 29 Mar, 2006 3 commits
    • unknown's avatar
      Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries · 8d5277a7
      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.
      8d5277a7
    • unknown's avatar
      Fix for bug#15316 SET value having comma not correctly handled · 2aeb4206
      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
      2aeb4206
    • unknown's avatar
      Fixed compiler and valgrind warnings · eda5d729
      unknown authored
      Added missing DBUG_xxx_RETURN statements
      Fixed some usage of not initialized variables (as found by valgrind)
      Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
      This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
      This will allow Tomas to continue with his work to use namelocks to syncronize things.
      
      Note: valgrind still produces a lot of warnings about using not initialized code and shows memory loss errors when running the ndb tests
      
      
      BitKeeper/etc/ignore:
        added mysql-test/r/*.log
      client/mysqltest.c:
        Change type of variables to get rid of compiler warnings
        More debugging
        Fix memory leak
      mysql-test/mysql-test-run.sh:
        Collect warnings about missing DBUG_RETURN statements
      mysql-test/r/lock_multi.result:
        Add test of new code
      mysql-test/r/ndb_condition_pushdown.result:
        Drop used tables before test
      mysql-test/t/lock_multi.test:
        Add test of new code
      mysql-test/t/ndb_condition_pushdown.test:
        Drop used tables before test
      mysql-test/valgrind.supp:
        Ignore 'safe' warnings from libz (when used with archive)
      sql/event.cc:
        More comments
        Simplify code
        Fixed memory leak found by valgrind
      sql/ha_archive.cc:
        Remove compiler warnings (Wrong handlerton structure and signed/unsigned comparison)
      sql/ha_berkeley.cc:
        Fixed compiler warning
      sql/ha_blackhole.cc:
        Fixed compiler warning
      sql/ha_federated.cc:
        Fixed compiler warning
      sql/ha_heap.cc:
        Fixed compiler warning
      sql/ha_myisam.cc:
        Fixed compiler warning
      sql/ha_myisammrg.cc:
        Fixed compiler warning
      sql/ha_ndbcluster.cc:
        Fixed compiler warnings
      sql/ha_partition.cc:
        Fixed compiler warning
        Fixed error noticed by valgrind in ha_partition::rnd_init()
      sql/handler.cc:
        Fixed compiler warning
      sql/handler.h:
        Fixed compiler warning
      sql/item.cc:
        Fixed compiler warning
      sql/item_xmlfunc.cc:
        Fixed warning from valgrind when calling memcpy with wrong address
      sql/lock.cc:
        More debugging
      sql/log.cc:
        Fixed compiler warning
        Indentation fixes
      sql/log.h:
        Fixed compiler warning
      sql/mysql_priv.h:
        Changed prototype for 'drop_locked_tables'
      sql/opt_range.cc:
        Indentation fix
      sql/password.c:
        Removed compiler warnings
      sql/set_var.cc:
        Fixed compiler warning
      sql/slave.cc:
        Fixed compiler warning
      sql/sp_head.cc:
        Fixed compiler warning
      sql/sql_acl.cc:
        Fixed compiler warning
      sql/sql_analyse.cc:
        Added missing DBUG_RETURN statements
      sql/sql_base.cc:
        Removed de-reference of not initialized pointer
        More comments
        drop_locked_tables() changed to not delete tables used for name locking
        Fixed compiler warnings
      sql/sql_delete.cc:
        Fixed usage of not initialized variable
        (deleted could be referenced in some not common error conditions)
      sql/sql_parse.cc:
        Added missing DBUG_VOID_RETURN
        Simplify code
      sql/sql_partition.cc:
        Fixed usage of wrong variable (noticed by valgrind)
      sql/sql_plugin.cc:
        Removed compiler warning
      sql/sql_show.cc:
        Removed compiler warning
      sql/sql_table.cc:
        Ensure that we don't remove locked tables used as name locks from open table cache until unlock_table_names() are called.
        This was fixed by having drop_locked_name() returning any table used as a name lock so that we can free it in unlock_table_names()
        This will allow Tomas to continue with his work to use namelocks to syncronize things.
        
        Fixed wrong test of 'table_type' (path_length could otherwise be accessed uninitialized)
        
        Remove compile warnings about not initialized variables.
      sql/sql_yacc.yy:
        Ensure that no_write_to_binlog is properly initialized
        (Was accessed uninitialized by partition code)
      sql/table.cc:
        Removed valgrind warnings (not fatal)
        Removed compiler warnings
      sql/tztime.cc:
        Removed valgrind warning
      storage/ndb/include/ndbapi/NdbIndexStat.hpp:
        Removed compiler warning
      eda5d729
  5. 24 Mar, 2006 3 commits
    • unknown's avatar
      BUG#16806: ALTER TABLE with new field in before position fails · fb1d0319
      unknown authored
      Review fixes
      
      
      sql/sql_partition.cc:
        Review fixes
      sql/sql_table.cc:
        Review fixes
      fb1d0319
    • unknown's avatar
      Follow-up for the fix for bug #18153 "ALTER/OPTIMIZE/REPAIR on transactional · 025563c8
      unknown authored
      tables corrupt triggers".
      
      It turned out that we also have relied at certain places that
      (new_table != table_name) were always true on Windows and for transactional
      tables. Since our fix for the bug brakes this assumption we have to add new
      flag to pass this information around.
      This code needs to be refactored but I dare not to do this in 5.0.
      
      
      sql/sql_table.cc:
        mysql_alter_table():
          Follow-up for the fix for bug #18153 "ALTER/OPTIMIZE/REPAIR on
          transactional tables corrupt triggers". It turned out that we also have
          relied at certain places that (new_table != table_name) were always true
          on Windows and for transactional tables. Since our fix for the bug brakes
          this assumption we have to add new flag to pass this information around.
          This code needs to be refactored but I dare not to do this in 5.0.
      025563c8
    • unknown's avatar
      Fix for bug #18153 "ALTER/OPTIMIZE/REPAIR on transactional tables corrupt · 2ccaf115
      unknown authored
      triggers".
      
      Applying ALTER/OPTIMIZE/REPAIR TABLE statements to transactional table or to
      table of any type on Windows caused disappearance of its triggers.
      Bug was introduced in 5.0.19 by my fix for bug #13525 "Rename table does not
      keep info of triggers" (see comment for sql_table.cc for more info).
      .
      
      
      mysql-test/r/trigger.result:
        Added test-case covering handling of triggers when one does ALTER TABLE which
        should move table to different database.
      mysql-test/t/trigger.test:
        Added test-case covering handling of triggers when one does ALTER TABLE which
        should move table to different database.
      sql/sql_table.cc:
        mysql_alter_table():
          Removal of strdup() which is no longer necessary allows us to preserve
          nice assumption that "(new_db != db || new_table != table_name) indicates
          that table will be renamed. So now we really can use this condition to
          avoid updating trigger definitions when table is not renamed.
          Note that we can't use (alter_info->flags & ALTER_RENAME) condition instead
          since it can be also true when we do "ALTER TABLE t1 RENAME TO t1".
      sql/sql_trigger.cc:
        Table_triggers_list::change_table_name():
          Mentioned assumption that subject table is not renamed to itself in method
          description. Added DBUG_ASSERT() to catch wrong usage of this method.
      mysql-test/r/trigger-trans.result:
        New BitKeeper file ``mysql-test/r/trigger-trans.result''
      mysql-test/t/trigger-trans.test:
        New BitKeeper file ``mysql-test/t/trigger-trans.test''
      2ccaf115
  6. 23 Mar, 2006 1 commit
    • unknown's avatar
      BUG #16806: ALTER TABLE fails when creating new field not last in table · 6ff64cb8
      unknown authored
      Moved some code to else path to avoid delete, create, delete, create scenarios.
      Fixed up the partition info object for some cases where we move from default
      partitioning in NDB to default partitioning using partitioning.
      
      
      sql/sql_partition.cc:
        Added a new parameter for partition default handling
        This is to avoid calling get_no_parts on tables not yet
        created.
        Ensure that we don't reuse the old part_info object for
        any other operation than CREATE TABLE after reading up
        the frm file.
      sql/sql_table.cc:
        Moved some code to else path to avoid delete, create, delete, create scenarios.
        Fixed up the partition info object for some cases where we move from default
        partitioning in NDB to default partitioning using partitioning.
      6ff64cb8
  7. 20 Mar, 2006 2 commits
    • unknown's avatar
      BUG#17754 · 653468b7
      unknown authored
      Added new syntax ALTER TABLE t1 REMOVE PARTITIONING,
      changed semantics of ALTER TABLE t1 ENGINE=X; to not remove partitioning
      Fix a number of mix engine bugs in partitioning
      
      
      mysql-test/r/ndb_partition_key.result:
        Added a number of new test cases
      mysql-test/r/partition.result:
        Added a number of new test cases
      mysql-test/t/ndb_partition_key.test:
        Added a number of new test cases
      mysql-test/t/partition.test:
        Added a number of new test cases
      sql/lex.h:
        REMOVE and PARTITIONING added as keywords in parser
      sql/sql_lex.h:
        Added flag to alter_info flag
      sql/sql_partition.cc:
        Fixes for the new syntax, changes of the current semantics of the syntax.
        Fixes for errors in handling mixes of table handlers in partitioning syntax
        for ALTER TABLE
      sql/sql_table.cc:
        Bug fix
      sql/sql_yacc.yy:
        New syntax for REMOVE PARTITIONING
      653468b7
    • unknown's avatar
      bug #17290 (sp with delete, create and rollback causes MySQLD core) · 049d2b3d
      unknown authored
      additional fixes
      
      
      mysql-test/r/partition.result:
        result fixed
      mysql-test/t/partition.test:
        testcase
      sql/sql_parse.cc:
        part_info cloning moved here
      sql/sql_partition.cc:
        fixes
      sql/sql_table.cc:
        part_info cloning removed
      049d2b3d
  8. 18 Mar, 2006 1 commit
    • unknown's avatar
      bug 17290 and bug 14350 · c64493df
      unknown authored
      added THD::work_part_info member where we now store modified
      partition_info structure.
      It allows no solve problem when different parts of the part_info get
      into different mem_roots
      
      
      sql/partition_info.cc:
        get_clone implementation
      sql/partition_info.h:
        get_clone() declared
      sql/sql_class.h:
        THD::work_part_info added
      sql/sql_partition.cc:
        thd->work_part_info instead of lex->part_info
      sql/sql_table.cc:
        thd->work_part_info instad of lex->part_info
      sql/unireg.cc:
        thd->work_part_info instad of lex->part_info
      c64493df
  9. 08 Mar, 2006 1 commit
    • unknown's avatar
      Bug #17497: Partitions: crash if add partition on temporary table · 18d143af
      unknown authored
        Temporary tables are no longer allowed to be partitioned.
      
      
      mysql-test/r/partition.result:
        Add result
      mysql-test/t/partition.test:
        Add new regression test
      sql/share/errmsg.txt:
        Add new error message
      sql/sql_table.cc:
        Don't allow creating temporary table with partitions
      18d143af
  10. 06 Mar, 2006 1 commit
  11. 28 Feb, 2006 1 commit
  12. 27 Feb, 2006 1 commit
  13. 25 Feb, 2006 2 commits
    • unknown's avatar
      WL#2977 and WL#2712 global and session-level variable to set the binlog format (row/statement), · 55d8e31e
      unknown authored
      and new binlog format called "mixed" (which is statement-based except if only row-based is correct,
      in this cset it means if UDF or UUID is used; more cases could be added in later 5.1 release):
      SET GLOBAL|SESSION BINLOG_FORMAT=row|statement|mixed|default;
      the global default is statement unless cluster is enabled (then it's row) as in 5.1-alpha.
      It's not possible to use SET on this variable if a session is currently in row-based mode and has open temporary tables (because CREATE
      TEMPORARY TABLE was not binlogged so temp table is not known on slave),  or if NDB is enabled (because
      NDB does not support such change on-the-fly, though it will later), of if in a stored function (see below).
      The added tests test the possibility or impossibility to SET, their effects, and the mixed mode,
      including in prepared statements and in stored procedures and functions.
      Caveats:
      a) The mixed mode will not work for stored functions: in mixed mode, a stored function will
      always be binlogged as one call and in a statement-based way (e.g. INSERT VALUES(myfunc()) or SELECT myfunc()).
      b) for the same reason, changing the thread's binlog format inside a stored function is
      refused with an error message.
      c) the same problems apply to triggers; implementing b) for triggers will be done later (will ask
      Dmitri).
      Additionally, as the binlog format is now changeable by each user for his session, I remove the implication
      which was done at startup, where row-based automatically set log-bin-trust-routine-creators to 1
      (not possible anymore as a user can now switch to stmt-based and do nasty things again), and automatically
      set --innodb-locks-unsafe-for-binlog to 1 (was anyway theoretically incorrect as it disabled
      phantom protection).
      Plus fixes for compiler warnings.
      
      
      mysql-test/r/rpl_row_4_bytes.result:
        update
      mysql-test/t/rpl_row_4_bytes.test:
        don't influence next tests
      sql/ha_archive.cc:
        please pay attention to this structure when you change it...
      sql/ha_berkeley.cc:
        please pay attention to this structure when you change it...
      sql/ha_blackhole.cc:
        please pay attention to this structure when you change it...
      sql/ha_federated.cc:
        please pay attention to this structure when you change it...
      sql/ha_heap.cc:
        please pay attention to this structure when you change it...
      sql/ha_innodb.cc:
        please pay attention to this structure when you change it...
      sql/ha_myisam.cc:
        please pay attention to this structure when you change it...
      sql/ha_myisammrg.cc:
        please pay attention to this structure when you change it...
      sql/ha_ndbcluster_binlog.cc:
        no more global 'binlog_row_based'
      sql/ha_partition.cc:
        please pay attention to this structure when you change it...
      sql/handler.cc:
        please pay attention to this structure when you change it...
      sql/handler.h:
        it's good to initialize statically (to get no compiler warning) even if to a null value.
      sql/item_func.cc:
        UDFs require row-based if this is the "mixed" binlog format.
      sql/item_strfunc.cc:
        UUID() requires row-based binlogging if this is the "mixed" binlog format
      sql/log.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/log.h:
        the enum enum_binlog_format moves to log.h from mysqld.cc as we need it in several places.
      sql/log_event.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/log_event.h:
        this global variable not used anymore
      sql/mysql_priv.h:
        these global variables not used anymore
      sql/mysqld.cc:
        simplification in the handling of --binlog-format (but with no user-visible change), thanks to
        the new global system variable.
        RBR does not anymore turn on --log-bin-trust-function-creators and --innodb-locks-unsafe-for-binlog
        as these are global options and RBR is now settable per session.
      sql/partition_info.cc:
        compiler warnings
      sql/set_var.cc:
        new class of thread's variable, to handle the binlog_format (like sys_var_thd_enum except
        that is_readonly() is overriden for more checks before update).
        compiler warnings (ok'd by Serg)
      sql/set_var.h:
        new class for the thread's binlog_format (see set_var.cc)
      sql/share/errmsg.txt:
        some messages for when one can't toggle from one binlog format to another
      sql/sp_head.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_base.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_class.cc:
        When a THD is initialized, we set its current_stmt_binlog_row_based
      sql/sql_class.h:
        new THD::variables.binlog_format (the value of the session variable set by SET
        or inherited from the global value), and THD::current_stmt_binlog_row_based which tells if the
        current statement does row-based or statement-based binlogging. Both members are needed
        as the 2nd one cannot be derived only from the first one (the statement's type plays a role too),
        and the 1st one is needed to reset the 2nd one.
      sql/sql_delete.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_insert.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_load.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based.
      sql/sql_parse.cc:
        when we are done with a statement, we reset the current_stmt_binlog_row_based to the value
        derived from THD::variables.binlog_format.
      sql/sql_partition.cc:
        compiler warning
      sql/sql_show.cc:
        compiler warning
      sql/sql_table.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      tests/mysql_client_test.c:
        compiler warning
      mysql-test/r/ndb_binlog_basic2.result:
        new result
      mysql-test/r/rpl_switch_stm_row_mixed.result:
        new result
      mysql-test/t/ndb_binlog_basic2.test:
        new test to verify that if cluster is enabled, can't change binlog format on the fly.
      mysql-test/t/rpl_switch_stm_row_mixed.test:
        test to see if one can switch between SBR, RBR, and "mixed" mode, and when one cannot,
        and test to see if the switching, and the mixed mode, work properly (using UUID() to test,
        as using UDFs is not possible in the testsuite for portability reasons).
      55d8e31e
    • unknown's avatar
      drop-on-restart.inc: · 5cd0717b
      unknown authored
        Drop 'mysqlslap'
        Added database name 'ndbsynctest'
      sql_table.cc, create.test, create.result:
        Patch for bug#17530 done by evgen, extracted from 5.0
      
      
      mysql-test/r/create.result:
        Patch for bug#17530 done by evgen, extracted from 5.0
      mysql-test/t/create.test:
        Patch for bug#17530 done by evgen, extracted from 5.0
      sql/sql_table.cc:
        Patch for bug#17530 done by evgen, extracted from 5.0
      mysql-test/include/drop-on-restart.inc:
        Drop 'mysqlslap'
      5cd0717b
  14. 24 Feb, 2006 1 commit
    • unknown's avatar
      Fix for bug #13525 "Rename table does not keep info of triggers". · 925d168a
      unknown authored
      Let us transfer triggers associated with table when we rename it (but only if
      we are not changing database to which table belongs, in the latter case we will
      emit error).
      
      
      mysql-test/r/trigger.result:
        Added test for bug #13525 "Rename table does not keep info of triggers".
      mysql-test/t/trigger.test:
        Added test for bug #13525 "Rename table does not keep info of triggers".
      sql/sql_rename.cc:
        rename_tables():
          Now after renaming table's .FRM file and updating handler data we call
          Table_triggers_list::change_table_name() which is reponsible for
          updating .TRG and .TRN files.
      sql/sql_table.cc:
        mysql_alter_table():
          Now in case when ALTER should rename table we call
          Table_triggers_list::change_table_name() which is responsible
          for updating .TRG and .TRN files after renaming table.
      sql/sql_trigger.cc:
        Added Table_triggers_list::change_table_name() method and
        change_table_name_in_triggers()/trignames() methods responsible for updating
        .TRG and .TRN files for table during its renaming.
        
        Two small cleanups - removed versioning for .TRG files (since it was not working
        before anyway) and emphasized that type of lock specified in tables list is
        unimportant for DROP TABLE (since this statement uses name-locking).
      sql/sql_trigger.h:
        Table_triggers_list:
          Added on_table_names_list member to store pointers and lenghts of
          "ON table_name" parts in triggers' definitions to be able easily
          change them during RENAME TABLE.
          Added change_table_name() method and change_table_name_in_trignames/triggers()
          helper methods responsible for updating .TRG and .TRN files.
      sql/sql_yacc.yy:
        trigger_tail:
          To be able properly update triggers' definitions with new table names
          when renaming tables we need to know where in CREATE TRIGGER statement
          "ON db_name.table_name" part resides.
          Small cleanup - let us emphasize that for CREATE TRIGGER statement 
          lock type which is specified in table list is unimportant since
          name-locking is used.
      925d168a
  15. 21 Feb, 2006 2 commits
    • unknown's avatar
      A fix and a test case for Bug#13134 "Length of VARCHAR() utf8 · d0ad6d90
      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).
      d0ad6d90
    • unknown's avatar
      Fixed bug#17530: Incorrect key truncation on table creation caused server crash. · bd5fdc57
      unknown authored
      When a too long field is used for a key, only a prefix part of the field is 
      used. Length is reduced to the max key length allowed for storage. But if the
      field have a multibyte charset it is possible to break multibyte char
      sequence. This leads to the failed assertion in the innodb code and 
      server crash when a record is inserted.
      
      The make_prepare_table() now aligns truncated key length to the boundary of
      multibyte char.
      
      
      mysql-test/t/create.test:
        Added test case for bug#17530: Incorrect key truncation on table creation caused server crash.
      mysql-test/r/create.result:
        Added test case for bug#17530: Incorrect key truncation on table creation caused server crash.
      sql/sql_table.cc:
        Fixed bug#17530: Incorrect key truncation on table creation caused server crash.
        The make_prepare_table() now aligns truncated key length to the boundary of
        multibyte char.
      bd5fdc57
  16. 17 Feb, 2006 2 commits
    • unknown's avatar
      Bug #17210 Create temp table call to ha_ndbcluster::create_handler_files caused core · bf1dab24
      unknown authored
        - do not try to create ndb temp tables even if default storage is ndb
      
      
      mysql-test/r/ndb_temporary.result:
        New BitKeeper file ``mysql-test/r/ndb_temporary.result''
      mysql-test/t/ndb_temporary.test:
        New BitKeeper file ``mysql-test/t/ndb_temporary.test''
      bf1dab24
    • unknown's avatar
      WL#2645 (CHECK TABLE FOR UPGRADE) · 437afc71
      unknown authored
      necessary implementation in the server
      mysql_upgrade script added
      
      
      client/mysqlcheck.c:
        --check-upgrade option added
      include/my_base.h:
        errcode added
      include/myisam.h:
        option added
      scripts/Makefile.am:
        mysql_upgrade script added
      sql/handler.cc:
        checks for old types/bugs added
      sql/handler.h:
        declarations regarding checks for upgrade
      sql/lex.h:
        sym added
      sql/share/errmsg.txt:
        error message added
      sql/slave.cc:
        now ha_repair is for public use
      sql/sql_table.cc:
        upgrade in ha_repair implemented
      sql/sql_yacc.yy:
        CHECK ... FOR UPGRADE added to syntax
      437afc71
  17. 16 Feb, 2006 2 commits
    • unknown's avatar
      Bug #17169: Partitions: out of memory if add partition and unique. · 950cd6af
      unknown authored
      When creating a new partition, a bogus memory allocation problem was
      reported.
      
      
      mysql-test/r/partition.result:
        Add new results
      mysql-test/t/partition.test:
        Add new regression test
      sql/sql_table.cc:
        Fix inverted tests that caused mysql_copy_key_list() to not work at all,
        remove a forward declaration for a function that does not exist, and fix
        a debug message.
      950cd6af
    • unknown's avatar
      WL#3023 (Use locks in a statement-like manner): · 2b466692
      unknown authored
        Table maps are now written on aquiring locks to tables and released
        at the end of each logical statement.
      
      
      mysql-test/extra/binlog_tests/ctype_cp932.test:
        Disabling cleanup code
      mysql-test/r/binlog_row_blackhole.result:
        Result change
      mysql-test/r/binlog_row_mix_innodb_myisam.result:
        Result change
      mysql-test/r/binlog_stm_ctype_cp932.result:
        Result change
      mysql-test/r/rpl_row_charset.result:
        Result change
      mysql-test/r/rpl_row_create_table.result:
        Result change
      mysql-test/t/rpl_row_create_table.test:
        Binlog position change
      sql/handler.cc:
        Writing table map after external_lock()
      sql/handler.h:
        Adding class for table operation hooks.
      sql/log.cc:
        Adding binlog_write_table_map() to THD.
        Removing write_table_map() from MYSQL_LOG.
      sql/log.h:
        Minor interface changes to move table map writing.
      sql/log_event.cc:
        Removing pre-allocation of memory for buffers.
        Allowing ULONG_MAX as table id denoting an event to ignore (only used to transfer flags).
        Adding code to collect tables while seeing table maps and lock collected tables
        when seeing a binrow event.
        Debriding code as a result of the above changes.
      sql/log_event.h:
        Minor interface changes.
      sql/mysql_priv.h:
        Adding hooks argument to create_table_from_items().
      sql/parse_file.cc:
        Minor fix to avoid crash in debug printout.
      sql/rpl_rli.h:
        Adding list of tables to lock to RLI structure.
      sql/slave.cc:
        Using list of tables to lock from RLI structure.
      sql/sql_acl.cc:
        Removing redundant pending events flush.
      sql/sql_base.cc:
        Moving pending event flush.
        Using flag to guard to clear statement transaction only if this is the original
        open tables state.
      sql/sql_class.cc:
        Adding flag for open tables state.
        Removing redundant pending events flushes.
        Write a dummy event to indicate that the tables to lock should be emptied
        on the slave.
      sql/sql_class.h:
        Adding open tables state flags.
        Adding binlog_write_table_map() function to THD.
        Changes to select_create() to support new locking scheme.
      sql/sql_insert.cc:
        Adding rollback of statement transaction on error. It can now contain
        events after locking tables.
      sql/sql_load.cc:
        Removing redundant pending event flush.
      sql/sql_table.cc:
        Adding hooks argument to create_table_from_items().
        Calling prelock hook before starting to lock tables.
      sql/sql_update.cc:
        Removing a compiler warning.
      sql/table.h:
        Minor changes.
      2b466692
  18. 13 Feb, 2006 1 commit
    • unknown's avatar
      renamedb.test, renamedb.result: · 3d608969
      unknown authored
        new file
      Many files:
        WL#757 RENAME DATABASE
      
      
      sql/mysql_priv.h:
        WL#757 RENAME DATABASE
      sql/mysqld.cc:
        WL#757 RENAME DATABASE
      sql/sql_db.cc:
        WL#757 RENAME DATABASE
      sql/sql_lex.h:
        WL#757 RENAME DATABASE
      sql/sql_parse.cc:
        WL#757 RENAME DATABASE
      sql/sql_rename.cc:
        WL#757 RENAME DATABASE
      sql/sql_table.cc:
        WL#757 RENAME DATABASE
      sql/sql_yacc.yy:
        WL#757 RENAME DATABASE
      3d608969
  19. 06 Feb, 2006 1 commit
  20. 01 Feb, 2006 1 commit
    • unknown's avatar
      Bug#8841 - CHECKSUM TABLE is broken in MyISAM · bf760b7c
      unknown authored
      There are (at least) two implementations of the checksum
      computation. One is in MyISAM for the quick checksum. It
      is executed on every row change. The other is in the
      SQL layer for the extended checksum. It retrieves all rows
      of a table via the respective storage engine.
      
      In former MySQL versions varchars were stored with their 
      maximum length, but now with their real length similar to
      blobs.
      
      This change had been forgotten to take care of in the
      extended checksum calculation. Hence too much data was
      checksumed. In MyISAM this change had been taken care of 
      already. Only the real data is included in the checksum.
      
      I changed mysql_checksum_table() so that it uses the
      length information of true varchar fields instead
      of the field length like in former varchar 
      implementations.
      
      
      mysql-test/r/innodb.result:
        Bug#8841 - CHECKSUM TABLE is broken in MyISAM
        Fixed test results.
      mysql-test/r/myisam.result:
        Bug#8841 - CHECKSUM TABLE is broken in MyISAM
        Fixed test results.
      sql/sql_table.cc:
        Bug#8841 - CHECKSUM TABLE is broken in MyISAM
        Changed mysql_checksum_table() so that it uses the
        length information of true varchar fields instead
        of the field length like in former varchar 
        implementations.
      bf760b7c
  21. 31 Jan, 2006 1 commit
  22. 27 Jan, 2006 1 commit
  23. 26 Jan, 2006 1 commit
    • unknown's avatar
      WL#3023 (RBR: Use locks in a statment-like manner): · cc5a4723
      unknown authored
        Interface changes pushed early.
        Separation of public and implementation interface for external_lock()
        in preparation for implementation.
      
      
      sql/handler.cc:
        Separating public virtual external_lock() into public non-virtual
        ha_external_lock() and private virtual external_lock().  Some minor
        changes to ha_*_row() function.
      sql/handler.h:
        Separating public virtual external_lock() into public non-virtual
        ha_external_lock() and private virtual external_lock().
      sql/lock.cc:
        Using new public ha_external_lock instead of internal external_lock.
      sql/opt_range.cc:
        Using new public ha_external_lock instead of internal external_lock.
      sql/sql_table.cc:
        Using new public ha_external_lock instead of internal external_lock.
      cc5a4723
  24. 23 Jan, 2006 1 commit
    • unknown's avatar
      Bug#15904 --tmpdir requires trailing slash '/' · 88ad776e
      unknown authored
       - Use same code for creating the temptable filename both from "mysql_create_table" and "mysql_create_like_table"
      
      
      sql/sql_table.cc:
        Move common functionality to crate a temptable name 
        into "build_tmptable_filename", call it both from 
        "mysql_create_table" and "mysql_create_like_table"
      88ad776e
  25. 19 Jan, 2006 1 commit
    • unknown's avatar
      WL1019: complete patch. Reapplied patch to the clean · f7bf702b
      unknown authored
      tree to get rid of multiple typos in CS comments and
      unify the patch.
      
      
      configure.in:
        CSV is compiled in by default now
      include/my_base.h:
        add new ha_extra flag for the log tables
      mysql-test/include/im_check_os.inc:
        we should only run im tests if csv is on for now: im relies
        on mysqld options available only in csv build.
      mysql-test/include/system_db_struct.inc:
        check log tables structure
      mysql-test/lib/init_db.sql:
        create log tables when running tests.
      mysql-test/mysql-test-run.pl:
        Add old logs flag to IM tests. As IM could only deal with
        old logs (this feature is not needed with log tables)
      mysql-test/r/connect.result:
        update result
      mysql-test/r/csv.result:
        update result
      mysql-test/r/im_utils.result:
        update result
      mysql-test/r/information_schema.result:
        update result
      mysql-test/r/mysqlcheck.result:
        update result
      mysql-test/r/show_check.result:
        update result
      mysql-test/r/system_mysql_db.result:
        update result
      mysql-test/t/connect.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/csv.test:
        add tests for concurrent insert (the functionality is added
        to CSV in this patch)
      mysql-test/t/information_schema.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/mysqlcheck.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/show_check.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/system_mysql_db.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      mysql-test/t/system_mysql_db_fix.test:
        disable test if CSV engine is not in: result depends on the
        presence of CSV-based log tables
      scripts/mysql_create_system_tables.sh:
        new system tables: slow_log and general_log
      scripts/mysql_fix_privilege_tables.sql:
        add new log tables: use an SP to create them for
        non-csv build to work fine.
      sql/ha_myisam.cc:
        move locking-related checks to the hanlder
      sql/ha_myisam.h:
        new function declared
      sql/handler.h:
        new virtual function is added: we should check for handler-related
        locking issues in the handler
      sql/lock.cc:
        from now on we check for handler-related locking issues
        in the handler itself rather then in lock.cc
      sql/log.cc:
        Add log tables support, refactoring: there are log event
        handlers with common interface. They are used by the LOGGER
        class, which is responsible for their initialization, cleanup
        and managment. Logging to the tables provided by one of the
        log event handler types.
      sql/log.h:
        declare new log classes
      sql/log_event.cc:
        convert old logging routines calls to use new API
      sql/mysql_priv.h:
        define common log routines and objects
      sql/mysqld.cc:
        Add support for the log tables. Their initalization, cleanup
        and specific options.
      sql/share/errmsg.txt:
        add new error messages for the log tables
      sql/slave.cc:
        convert old logging routines calls to use new API
      sql/sql_base.cc:
        TABLE objects used by the logger should be skipped
        during refreshes (as log tables are always opened
        and locked). fix table_is_used to skip them.  This
        is needed for FLUSH LOGS to work
      sql/sql_db.cc:
        convert old logging routines calls to use new API
      sql/sql_delete.cc:
        fix TRUNCATE to work with log tables
      sql/sql_parse.cc:
        command_name is now an array of LEX_STRINGs
      sql/sql_prepare.cc:
        convert old logging routines calls to use new API
      sql/sql_show.cc:
        convert old logging routines calls to use new API
      sql/sql_table.cc:
        don't reoped the log tables for admin purposes
      sql/table.cc:
        mark log tables as such during the open
      sql/table.h:
        add log-related info
      storage/csv/ha_tina.cc:
        add support for concurrent insert (see bk commit - 5.1 tree
        (petr:1.1910) for standalone patch), add log tables-specific
        csv table handling.
      storage/csv/ha_tina.h:
        enable concurrent insert for CSV, add log table flag
      mysql-test/r/log_tables.result:
        New BitKeeper file ``mysql-test/r/log_tables.result''
      mysql-test/t/log_tables.test:
        New BitKeeper file ``mysql-test/t/log_tables.test''
      f7bf702b
  26. 17 Jan, 2006 3 commits
    • unknown's avatar
      Additional fixes for WL#1892 · 7cd917c5
      unknown authored
      sql/ha_ndbcluster.cc:
        Additional fixes for WL#1892, disable autodiscover during add/drop index
      sql/ha_ndbcluster.h:
        Additional fixes for WL#1892, disable autodiscover during add/drop index
      sql/sql_table.cc:
        Additional fixes for WL#1892, removed double commit + added call to create_handler_files after create/drop index
      mysql-test/r/ndb_alter_table_row.result:
        Additional fixes for WL#1892, changed test case
      mysql-test/t/ndb_alter_table_row.test:
        Additional fixes for WL#1892, changed test case
      7cd917c5
    • unknown's avatar
      WL #2747: Fix such that backup and restore works for user defined · 8d319b34
      unknown authored
      partitioned tables in NDB
      
      
      include/my_sys.h:
        Move packfrm and unpackfrm to mysys
      mysql-test/r/ndb_restore.result:
        New test cases
      mysql-test/t/ndb_restore.test:
        New test cases
      mysys/my_compress.c:
        Moved packfrm and unpackfrm to mysys
      sql/ha_ndbcluster.cc:
        Set value of partition function in hidden field for user defined
        partitioning in NDB to handle restore and later on-line reorganize
        of partitions
        To save space value of those functions are limited to 32 bits
      sql/ha_partition.cc:
        Use new get_partition_id interface
      sql/handler.h:
        Use new get_partition_id interface
      sql/mysql_priv.h:
        Moved to mysys
      sql/mysqld.cc:
        Minor
      sql/opt_range.cc:
        New get_partition_id interface
      sql/sql_partition.cc:
        New get_partition_id interface
        Fix error checks of specification of engines in ALTER TABLE
        Moved packfrm and unpackfrm to mysys
      sql/sql_table.cc:
        Fixed debug printouts
      storage/ndb/include/kernel/ndb_limits.h:
        New constant
      storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
        New table description item
      storage/ndb/include/ndb_version.h.in:
        New version specific constant
      storage/ndb/include/ndbapi/NdbDictionary.hpp:
        New item in table descriptions
      storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
        New item in table descriptions
      storage/ndb/src/kernel/blocks/backup/Backup.cpp:
        Write fragment id in backup's log entry
      storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp:
        Write fragment id in backup's log entry
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        New item in table description
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        New item in table description
      storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
        Moved constant
      storage/ndb/src/ndbapi/NdbDictionary.cpp:
        New item in table description
      storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        New item in table description
      storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
        New item in table description
      storage/ndb/tools/Makefile.am:
        Compress library needed for ndb_restore
      storage/ndb/tools/restore/Restore.cpp:
        Handle fragment id and also handle backups from older versions
      storage/ndb/tools/restore/Restore.hpp:
        Use fragment id
      storage/ndb/tools/restore/consumer.hpp:
        Use fragment id
      storage/ndb/tools/restore/consumer_printer.cpp:
        Use fragment id
      storage/ndb/tools/restore/consumer_printer.hpp:
        Use fragment id
      storage/ndb/tools/restore/consumer_restore.cpp:
        Code to map node groups if new cluster has different set of
        node groups from original cluster
        Very simple search and replace parser of partition syntax in frm file
        Fix settings of partition id properly using fragment id and hidden
        field in tables
      storage/ndb/tools/restore/consumer_restore.hpp:
        Changed function headers and new one for mapping node groups
      storage/ndb/tools/restore/consumer_restorem.cpp:
        Use fragment id
      storage/ndb/tools/restore/restore_main.cpp:
        New parameter to set node group map, parser for this parameter
      8d319b34
    • unknown's avatar
      WL #2604: Partition Management · b770b9bf
      unknown authored
      Optimised version of ADD/DROP/REORGANIZE partitions for
      non-NDB storage engines.
      New syntax to handle REBUILD/OPTIMIZE/ANALYZE/CHECK/REPAIR partitions
      Quite a few bug fixes
      
      
      include/thr_lock.h:
        New method to downgrade locks from TL_WRITE_ONLY
        Possibility to upgrade lock while aborting locks
      mysql-test/r/ndb_autodiscover.result:
        Fix for lowercase and that all NDB tables are now partitioned
      mysql-test/r/ndb_bitfield.result:
        Fix for lowercase and that all NDB tables are now partitioned
      mysql-test/r/ndb_gis.result:
        Fix for lowercase and that all NDB tables are now partitioned
      mysql-test/r/ndb_partition_key.result:
        New test case
      mysql-test/r/partition.result:
        New test case
      mysql-test/r/partition_error.result:
        New test case
      mysql-test/r/partition_mgm_err.result:
        Fix of test case results
      mysql-test/t/disabled.def:
        partition_03ndb still has bug
      mysql-test/t/ndb_partition_key.test:
        New test cases for new functionality and bugs
      mysql-test/t/partition.test:
        New test cases for new functionality and bugs
      mysql-test/t/partition_error.test:
        New test cases for new functionality and bugs
      mysql-test/t/partition_mgm_err.test:
        New test cases for new functionality and bugs
      mysys/thr_lock.c:
        New method to downgrade TL_WRITE_ONLY locks
        Possibility to specify if locks are to be upgraded at abort locks
      sql/ha_archive.cc:
        New handlerton methods
      sql/ha_berkeley.cc:
        New handlerton methods
      sql/ha_blackhole.cc:
        New handlerton methods
      sql/ha_federated.cc:
        New handlerton methods
      sql/ha_heap.cc:
        New handlerton methods
      sql/ha_innodb.cc:
        New handlerton methods
      sql/ha_myisam.cc:
        New handlerton methods
      sql/ha_myisammrg.cc:
        New handlerton methods
      sql/ha_ndbcluster.cc:
        New handlerton methods
        Moved out packfrm and unpackfrm methods
        Adapted many parts to use table_share instead of table->s
        Ensured that .ndb file uses filename and not tablename
        according to new encoding of names (WL 1324)
        All NDB tables are partitioned and set up partition info
        Fixed such that tablenames use tablenames and not filenames in NDB
        NDB uses auto partitioning for ENGINE=NDB tables
        Warning for very large tables
        Set RANGE data
        Set LIST data
        New method to set-up partition info
        Set Default number of partitions flag
        Set linear hash flag
        Set node group array
        Set number of fragments
        Set max rows
        Set tablespace names
        New method to get number of partitions of table to use at open table
      sql/ha_ndbcluster.h:
        Removed partition_flags and alter_table_flags from handler class
        A couple of new and changed method headers
      sql/ha_ndbcluster_binlog.cc:
        Use new method headers
      sql/ha_partition.cc:
        New handlerton methods
        Lots of new function headers
        Use #P# as separator between table name and partition name and
        #SP# as separator between partition name and subpartition name
        Use filename encoding for files both of table name part and of
        partition name parts
        New method to drop partitions based on partition state
        New method to rename partitions based on partition state
        New methods to optimize, analyze, check and repair partitions
        New methods to optimize, analyze, check and repair table
        Helper method to create new partition, open it and external lock
        it, not needed to lock it internally since no one else knows about
        it yet.
        Cleanup method at error for new partitions
        New methods to perform bulk of work at ADD/REORGANIZE partitions
        (change_partitions, copy_partitions)
      sql/ha_partition.h:
        New methods and variables
        A few dropped ones and a few changed ones
      sql/handler.cc:
        Handlerton interface changes
        New flag to open_table_from_share
      sql/handler.h:
        New alter_table_flags
        New partition flags
        New partition states
        More states for default handling
        Lots of new, dropped and changed interfaces
      sql/lex.h:
        Added REBUILD and changed name of REORGANISE to REORGANIZE
      sql/lock.cc:
        Method to downgrade locks
        Able to specify if locks upgraded on abort locks
      sql/log.cc:
        New handlerton methods
      sql/mysql_priv.h:
        Lots of new interfaces
      sql/share/errmsg.txt:
        Lots of new, dropped and changed error messages
      sql/sql_base.cc:
        Adapted to new method headers
        New method to abort and upgrade lock
        New method to close open tables and downgrade lock
        New method to wait for completed table
      sql/sql_lex.h:
        New flags
      sql/sql_partition.cc:
        Return int instead of bool in get_partition_id
        More defaults handling
        Make use of new mem_alloc_error method
        More work on function headers
        Changes to generate partition syntax to cater for intermediate
        partition states
        Lots of new code with large comments describing new features for
        Partition Management:
        ADD/DROP/REORGANIZE/OPTIMIZE/ANALYZE/CHECK/REPAIR partitions
      sql/sql_show.cc:
        Minors
      sql/sql_table.cc:
        Moved a couple of methods
        New methods to copy create lists and key lists
        for use with mysql_prepare_table
        New method to write frm file
        New handling of handlers with auto partitioning
        Fix CREATE TABLE LIKE
        Moved code for ADD/DROP/REORGANIZE partitions
        Use handlerton method for alter_table_flags
      sql/sql_yacc.yy:
        More memory alloc error checks
        New syntax for REBUILD, ANALYZE, CHECK, OPTIMIZE, REPAIR partitions
      sql/table.cc:
        Fix length of extra part to be 4 bytes
        Partition state introduced in frm file
      sql/table.h:
        Partition state introduced
      sql/unireg.cc:
        Partition state introduced
        Default partition
      storage/csv/ha_tina.cc:
        New handlerton methods
      storage/example/ha_example.cc:
        New handlerton methods
      storage/ndb/include/kernel/ndb_limits.h:
        RANGE DATA
      storage/ndb/include/kernel/signaldata/AlterTable.hpp:
        New interfaces in ALTER TABLE towards NDB kernel
      storage/ndb/include/kernel/signaldata/DiAddTab.hpp:
        New section
      storage/ndb/include/kernel/signaldata/DictTabInfo.hpp:
        Lots of new parts of table description
      storage/ndb/include/kernel/signaldata/LqhFrag.hpp:
        tablespace id specified in LQHFRAGREQ
      storage/ndb/include/ndbapi/NdbDictionary.hpp:
        Lots of new methods in NDB dictionary
      storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp:
        Lots of new variables in table description
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
        Lots of new variables in table description
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
        Lots of new variables in table description
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
        New error insertion
      storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp:
        a few extra jam's
      storage/ndb/src/ndbapi/NdbBlob.cpp:
        Changes to definition of blob tables
      storage/ndb/src/ndbapi/NdbDictionary.cpp:
        Lots of new stuff in NDB dictionary
      storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp:
        Lots of new stuff in NDB dictionary
      storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp:
        Lots of new stuff in NDB dictionary
      storage/ndb/test/ndbapi/test_event.cpp:
        removed use of methods no longer in existence
      storage/ndb/tools/restore/Restore.cpp:
        Renamed variable
      b770b9bf
  27. 13 Jan, 2006 1 commit
  28. 12 Jan, 2006 1 commit
    • unknown's avatar
      WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX · e1ee55a7
      unknown authored
      NDB cluster is not fully supported. This will be added with
      WL 1892 (NDB Handler: Add support for CREATE/DROP INDEX).
      Some preparatory code for this is already present though.
      A change for the "duplicate key" error message is planned
      for another changeset.
      
      
      include/my_base.h:
        WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
        Defined a mask of flags which must be the same for two indexes
        if they should compare as compatible.
        Added an error number for a new drop index error message.
      mysql-test/r/key.result:
        WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
        The test result.
      mysql-test/t/key.test:
        WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
        The test case.
      sql/handler.cc:
        WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
        Prepared for a later change in an error message:
        Replace index number by index name for "duplicate key" error.
        Added handling for the new drop index error message.
      sql/handler.h:
        WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
        Added new flags and methods.
        Removed old flags and methods (from the last attempt).
      sql/share/errmsg.txt:
        WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
        Added a new error message for drop index.
      sql/sql_table.cc:
        WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
        Moved definitions to the top of the file.
        In mysql_prepare_table() allow an index to have the name
        "PRIMARY" if it has the key type "Key::PRIMARY".
        Added a parenthesis for readability.
        Removed old code from the last attempt.
        Some changes to compare_tables():
        - Input parameter "List<Key> *key_list" is replaced by
          "KEY *key_info_buffer, uint key_count".
        - Output parameters added: "index_drop_buffer/index_drop_count"
          and "index_add_buffer/index_add_count".
        - Key comparison must now find matching keys in changed
          old and new key lists.
        - Key comparison of a key is easier now because both old
          and new keys are of type 'KEY'.
        Call mysql_prepare_table() before compare_tables(). The
        translated KEY structs are needed at some places now.
        Inserted a code segment for checking alter_table_flags().
        Removed mysql_prepare_table() from the 'partition' branches
        (it is done above now).
        Removed a pair of unnecessary braces.
        Inserted a code segment for executing fast add/drop index.
        Made close of table dependent on whether it was opened.
        Prepared for NDB cluster support.
        Fixed commit to be called outside of LOCK_open.
      e1ee55a7