ChangeSet@1.2593.1.2, 2007-09-24 10:50:57+02:00, mats@kindahl-laptop.dnsalias.net +1 -0 BUG#31076 (Server crashes when start slave is issued): Second patch to initailize more uninitialized variables. sql/log_event.cc@1.307, 2007-09-24 10:50:47+02:00, mats@kindahl-laptop.dnsalias.net +7 -3 Intializing several uninitialized fields in the Table_map_log_event. ChangeSet@1.2593.1.1, 2007-09-20 16:31:05+02:00, mats@kindahl-laptop.dnsalias.net +3 -0 BUG#31076 (Server crashes when start slave is issued): Row-based replication crashes when replicating from pre-5.1.22 to 5.1.22 due to an uninitialized variable. mysql-test/suite/rpl/r/rpl_bug31076.result@1.1, 2007-09-20 16:30:50+02:00, mats@kindahl-laptop.dnsalias.net +63 -0 New BitKeeper file ``mysql-test/suite/rpl/r/rpl_bug31076.result'' mysql-test/suite/rpl/r/rpl_bug31076.result@1.0, 2007-09-20 16:30:50+02:00, mats@kindahl-laptop.dnsalias.net +0 -0 mysql-test/suite/rpl/t/rpl_bug31076.test@1.1, 2007-09-20 16:30:54+02:00, mats@kindahl-laptop.dnsalias.net +113 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_bug31076.test'' mysql-test/suite/rpl/t/rpl_bug31076.test@1.0, 2007-09-20 16:30:54+02:00, mats@kindahl-laptop.dnsalias.net +0 -0 sql/log_event.cc@1.306, 2007-09-20 16:30:47+02:00, mats@kindahl-laptop.dnsalias.net +1 -1 Initializing m_null_bits to null so that it can be detected that it was not initialized later. ChangeSet@1.2603, 2007-09-14 18:20:17+03:00, gkodinov@magare.gmz +3 -0 Bug #31001: ORDER BY DESC in InnoDB not working The optimizer sets index traversal in reverse order only if there are used key parts that are not compared to a constant. However using the primary key as an ORDER BY suffix rendered the check incomplete : going in reverse order must still be used even if all the parts of the secondary key are compared to a constant. Fixed by relaxing the check and set reverse traversal even when all the secondary index keyparts are compared to a const. Also account for the case when all the primary keys are compared to a constant. mysql-test/include/mix1.inc@1.50, 2007-09-14 18:20:14+03:00, gkodinov@magare.gmz +23 -0 Bug #31001: test case mysql-test/r/innodb_mysql.result@1.52, 2007-09-14 18:20:14+03:00, gkodinov@magare.gmz +97 -0 Bug #31001: test case sql/sql_select.cc@1.552, 2007-09-14 18:20:15+03:00, gkodinov@magare.gmz +7 -1 Bug #31001: - account for the case when all the primary key parts are compared to a constant. - force test_if_skip_sort_order to go backwards over the key even when the number of keyparts used is the same as the number of keyparts equal to a constant. (because of the primary key suffix). ChangeSet@1.2602, 2007-09-14 00:59:22+02:00, joerg@trift2. +1 -0 scripts/mysqld_safe.sh Copy a fix by jperkin for bug#30624 into the 5.1.22 build tree. scripts/mysqld_safe.sh@1.93, 2007-09-14 00:59:16+02:00, joerg@trift2. +1 -1 Copy a fix by jperkin for bug#30624 into the 5.1.22 build tree. ChangeSet@1.2601, 2007-09-08 20:26:12-07:00, antony@pcg5ppc.xiphis.org +6 -0 Bug#30919 "Rows not deleted from innodb partitioned tables if --innodb_autoinc_lock_mode=0" Due to a previous bugfix which initializes a previously uninitialized variable, ha_partition::get_auto_increment() may fail to operate correctly when the storage engine reports that it is only reserving one value and one or more partitions have a different 'next-value'. Currently, only affects Innodb's new-style auto-increment code which reserves larger blocks of values and has less inter-thread contention. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result@1.3, 2007-09-08 20:26:07-07:00, antony@pcg5ppc.xiphis.org +8 -8 Fix results - previous results shows symptoms of Bug30919 mysql-test/suite/rpl/r/rpl_innodb_bug30919.result@1.1, 2007-09-08 20:26:08-07:00, antony@pcg5ppc.xiphis.org +1045 -0 New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug30919.result'' mysql-test/suite/rpl/r/rpl_innodb_bug30919.result@1.0, 2007-09-08 20:26:08-07:00, antony@pcg5ppc.xiphis.org +0 -0 mysql-test/suite/rpl/t/rpl_innodb_bug30919-master.opt@1.1, 2007-09-08 20:26:08-07:00, antony@pcg5ppc.xiphis.org +1 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30919-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug30919-master.opt@1.0, 2007-09-08 20:26:08-07:00, antony@pcg5ppc.xiphis.org +0 -0 mysql-test/suite/rpl/t/rpl_innodb_bug30919.test@1.1, 2007-09-08 20:26:08-07:00, antony@pcg5ppc.xiphis.org +69 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30919.test'' mysql-test/suite/rpl/t/rpl_innodb_bug30919.test@1.0, 2007-09-08 20:26:08-07:00, antony@pcg5ppc.xiphis.org +0 -0 sql/ha_partition.cc@1.102, 2007-09-08 20:26:07-07:00, antony@pcg5ppc.xiphis.org +34 -2 Bug30919 ha_partition::write_row() Do not insert a row if a failure occurred while generating auto-increment value. ha_partition::get_auto_increment() If there is an empty 'intersection' of auto-increment values, perform a second pass before failing because partitions may have different auto-increment 'next-value' attributes. storage/innobase/handler/ha_innodb.cc@1.361, 2007-09-08 20:26:07-07:00, antony@pcg5ppc.xiphis.org +2 -2 Bug30919 Only set *first_value if it is less than autoinc value. This allows a higher value to be hinted when operating as a partitioned table. ChangeSet@1.2600, 2007-09-08 11:56:55-07:00, acurtis@xiphis.org +5 -0 perform explicit cleanup add missing opt file mysql-test/suite/rpl/r/rpl_innodb_bug28430.result@1.2, 2007-09-08 11:56:50-07:00, acurtis@xiphis.org +7 -1 explicit post-test cleanup mysql-test/suite/rpl/r/rpl_innodb_bug30888.result@1.2, 2007-09-08 11:56:50-07:00, acurtis@xiphis.org +2 -0 explicit post-test cleanup mysql-test/suite/rpl/t/rpl_innodb_bug28430-slave.opt@1.1, 2007-09-08 11:56:50-07:00, acurtis@xiphis.org +1 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430-slave.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430-slave.opt@1.0, 2007-09-08 11:56:50-07:00, acurtis@xiphis.org +0 -0 mysql-test/suite/rpl/t/rpl_innodb_bug28430.test@1.2, 2007-09-08 11:56:50-07:00, acurtis@xiphis.org +8 -3 explicit post-test cleanup mysql-test/suite/rpl/t/rpl_innodb_bug30888.test@1.2, 2007-09-08 11:56:50-07:00, acurtis@xiphis.org +6 -2 explicit post-test cleanup ChangeSet@1.2599, 2007-09-08 11:19:35-07:00, acurtis@xiphis.org +8 -0 Bug#30907 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" Bug#28430 "Failure in replication of innodb partitioned tables on row/mixed format" Bug#30888 "Innodb table + stored procedure + row deletion = server crash" Apply Oracle patch from Sunny Include tests cases by Omer Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result@1.1, 2007-09-08 11:19:31-07:00, acurtis@xiphis.org +163 -0 New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug28430.result'' mysql-test/suite/rpl/r/rpl_innodb_bug28430.result@1.0, 2007-09-08 11:19:31-07:00, acurtis@xiphis.org +0 -0 mysql-test/suite/rpl/r/rpl_innodb_bug30888.result@1.1, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +35 -0 New BitKeeper file ``mysql-test/suite/rpl/r/rpl_innodb_bug30888.result'' mysql-test/suite/rpl/r/rpl_innodb_bug30888.result@1.0, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +0 -0 mysql-test/suite/rpl/t/rpl_innodb-master.opt@1.1, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +1 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb-master.opt'' mysql-test/suite/rpl/t/rpl_innodb-master.opt@1.0, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +0 -0 mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt@1.1, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +1 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt'' mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt@1.0, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +0 -0 mysql-test/suite/rpl/t/rpl_innodb_bug28430.test@1.1, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +151 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug28430.test'' mysql-test/suite/rpl/t/rpl_innodb_bug28430.test@1.0, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +0 -0 mysql-test/suite/rpl/t/rpl_innodb_bug30888.test@1.1, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +65 -0 New BitKeeper file ``mysql-test/suite/rpl/t/rpl_innodb_bug30888.test'' mysql-test/suite/rpl/t/rpl_innodb_bug30888.test@1.0, 2007-09-08 11:19:32-07:00, acurtis@xiphis.org +0 -0 storage/innobase/handler/ha_innodb.cc@1.360, 2007-09-08 11:19:31-07:00, acurtis@xiphis.org +46 -57 Bug30907/28430 "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases" "Failure in replication of innodb partitioned tables on row/mixed format" Apply Oracle patch from Sunny Ensure that innobase_read_and_init_auto performs table autoinc lock when lock_mode = 0 No need for "if" guard around row_unlock_table_autoinc_for_mysql() because it already performs same check. Make autoinc_lock_mode variable read-only for duration of running mysqld process. storage/innobase/row/row0sel.c@1.121, 2007-09-08 11:19:31-07:00, acurtis@xiphis.org +9 -39 Bug30888 "Innodb table + stored procedure + row deletion = server crash" Remove endian-specific code. Fix function row_search_autoinc_read_column() to handle any integer size up to 8 bytes. ChangeSet@1.2598, 2007-09-07 13:30:42+02:00, kent@mysql.com +4 -0 ha_partition.cc, listener.h, listener.cc, ha_partition.h: Initiate static const outside class definition server-tools/instance-manager/listener.cc@1.43, 2007-09-07 13:29:56+02:00, kent@mysql.com +1 -0 Initiate static const outside class definition server-tools/instance-manager/listener.h@1.12, 2007-09-07 13:29:56+02:00, kent@mysql.com +1 -1 Initiate static const outside class definition sql/ha_partition.cc@1.101, 2007-09-07 13:29:56+02:00, kent@mysql.com +2 -0 Initiate static const outside class definition sql/ha_partition.h@1.41, 2007-09-07 13:29:56+02:00, kent@mysql.com +1 -1 Initiate static const outside class definition ChangeSet@1.2597, 2007-09-07 13:27:52+02:00, kent@mysql.com +2 -0 azio.c, azlib.h: Don't use typedef 'voidpc' as later addition and not needed storage/archive/azio.c@1.21, 2007-09-07 13:27:02+02:00, kent@mysql.com +1 -1 Don't use typedef 'voidpc' as later addition and not needed storage/archive/azlib.h@1.13, 2007-09-07 13:26:49+02:00, kent@mysql.com +1 -1 Don't use typedef 'voidpc' as later addition and not needed ChangeSet@1.2596, 2007-09-06 22:03:07-07:00, omer@linux.site +31 -0 Modifications to funcs_1 files for 5.1.22rc release including: - Updated row help count information - Added missing 'order by' clauses (altrady fixed in build tree) - Fixed isses with ndb_storeproc06/10 tests (added use database) - Corrected use of wrong engine in ndb tests (already fixed in build tree) - Update to ndb__datadict to replect additional fields in I_S (already corrected in build tree) mysql-test/suite/funcs_1/include/ndb_tb2.inc@1.2, 2007-09-06 22:02:56-07:00, omer@linux.site +1 -1 Correction of wrong engine used for ndb test mysql-test/suite/funcs_1/r/innodb__datadict.result@1.8, 2007-09-06 22:02:56-07:00, omer@linux.site +28 -28 Updated result file mysql-test/suite/funcs_1/r/innodb_storedproc_06.result@1.4, 2007-09-06 22:02:56-07:00, omer@linux.site +3 -0 Updated result file mysql-test/suite/funcs_1/r/innodb_storedproc_10.result@1.5, 2007-09-06 22:02:56-07:00, omer@linux.site +3 -1 Updated result file mysql-test/suite/funcs_1/r/innodb_views.result@1.8, 2007-09-06 22:02:56-07:00, omer@linux.site +265 -273 Updated result file mysql-test/suite/funcs_1/r/memory__datadict.result@1.8, 2007-09-06 22:02:56-07:00, omer@linux.site +28 -28 Updated result file mysql-test/suite/funcs_1/r/memory_storedproc_06.result@1.4, 2007-09-06 22:02:56-07:00, omer@linux.site +3 -0 Updated result file mysql-test/suite/funcs_1/r/memory_storedproc_10.result@1.5, 2007-09-06 22:02:56-07:00, omer@linux.site +3 -1 Updated result file mysql-test/suite/funcs_1/r/memory_views.result@1.8, 2007-09-06 22:02:56-07:00, omer@linux.site +265 -273 Updated result file mysql-test/suite/funcs_1/r/myisam__datadict.result@1.8, 2007-09-06 22:02:57-07:00, omer@linux.site +28 -28 Updated result file mysql-test/suite/funcs_1/r/myisam_storedproc_06.result@1.4, 2007-09-06 22:02:57-07:00, omer@linux.site +3 -0 Updated result file mysql-test/suite/funcs_1/r/myisam_storedproc_10.result@1.5, 2007-09-06 22:02:57-07:00, omer@linux.site +3 -1 Updated result file mysql-test/suite/funcs_1/r/myisam_views.result@1.8, 2007-09-06 22:02:57-07:00, omer@linux.site +8009 -8012 Updated result file mysql-test/suite/funcs_1/r/ndb__datadict.result@1.4, 2007-09-06 22:02:57-07:00, omer@linux.site +672 -554 Updated result file mysql-test/suite/funcs_1/r/ndb_cursors.result@1.2, 2007-09-06 22:02:57-07:00, omer@linux.site +1 -1 Updated result file mysql-test/suite/funcs_1/r/ndb_func_view.result@1.3, 2007-09-06 22:02:57-07:00, omer@linux.site +4672 -4507 Updated result file mysql-test/suite/funcs_1/r/ndb_storedproc_06.result@1.2, 2007-09-06 22:02:57-07:00, omer@linux.site +3 -0 Updated result file mysql-test/suite/funcs_1/r/ndb_storedproc_07.result@1.2, 2007-09-06 22:02:57-07:00, omer@linux.site +4 -4 Updated result file mysql-test/suite/funcs_1/r/ndb_storedproc_08.result@1.2, 2007-09-06 22:02:57-07:00, omer@linux.site +108 -0 Updated result file mysql-test/suite/funcs_1/r/ndb_storedproc_10.result@1.2, 2007-09-06 22:02:58-07:00, omer@linux.site +3 -1 Updated result file mysql-test/suite/funcs_1/r/ndb_trig_0102.result@1.3, 2007-09-06 22:02:58-07:00, omer@linux.site +2 -2 Updated result file mysql-test/suite/funcs_1/r/ndb_trig_03.result@1.2, 2007-09-06 22:02:58-07:00, omer@linux.site +1 -1 Updated result file mysql-test/suite/funcs_1/r/ndb_trig_03e.result@1.2, 2007-09-06 22:02:58-07:00, omer@linux.site +13 -13 Updated result file mysql-test/suite/funcs_1/r/ndb_trig_0407.result@1.2, 2007-09-06 22:02:58-07:00, omer@linux.site +1 -1 Updated result file mysql-test/suite/funcs_1/r/ndb_trig_08.result@1.3, 2007-09-06 22:02:58-07:00, omer@linux.site +3 -4 Updated result file mysql-test/suite/funcs_1/r/ndb_trig_09.result@1.2, 2007-09-06 22:02:58-07:00, omer@linux.site +1 -1 Updated result file mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result@1.2, 2007-09-06 22:02:58-07:00, omer@linux.site +1 -1 Updated result file mysql-test/suite/funcs_1/r/ndb_views.result@1.3, 2007-09-06 22:02:58-07:00, omer@linux.site +318 -325 Updated result file mysql-test/suite/funcs_1/storedproc/storedproc_06.inc@1.4, 2007-09-06 22:02:58-07:00, omer@linux.site +4 -1 Updated test file enforcing 'use database' after connect mysql-test/suite/funcs_1/storedproc/storedproc_10.inc@1.5, 2007-09-06 22:02:58-07:00, omer@linux.site +3 -1 Updated test file enforcing 'use database' after connect mysql-test/suite/funcs_1/views/views_master.inc@1.7, 2007-09-06 22:02:58-07:00, omer@linux.site +70 -66 Adding order by clauses in missing places ChangeSet@1.2595, 2007-09-01 14:51:46+02:00, kent@mysql.com +1 -0 Makefile.am: Traditional make wants line to start with TAB Makefile.am@1.140, 2007-09-01 14:44:44+02:00, kent@mysql.com +2 -2 Traditional make wants line to start with TAB ChangeSet@1.2594, 2007-08-31 17:50:16+02:00, kent@mysql.com +1 -0 configure.in: beta => rc configure.in@1.486, 2007-08-31 17:49:25+02:00, kent@mysql.com +1 -1 beta => rc ChangeSet@1.2593, 2007-08-30 14:13:05-06:00, tsmith@ramayana.hindu.god +1 -0 Disable rpl_ndb_2other, which has never worked on bigendian machines. TAG: clone-5.1.22-build mysql-test/suite/rpl_ndb/t/disabled.def@1.10, 2007-08-30 14:13:03-06:00, tsmith@ramayana.hindu.god +1 -0 Disable rpl_ndb_2other, which has never worked on bigendian machines. ChangeSet@1.2592, 2007-08-29 13:02:02-07:00, antony@pcg5ppc.xiphis.org +1 -0 Fix pushbuild test failures which occur on big-endian systems. Do not convert innodb autoincrement value to little endian when on big endian systems. storage/innobase/row/row0sel.c@1.120, 2007-08-29 13:01:58-07:00, antony@pcg5ppc.xiphis.org +10 -0 Do not convert innodb autoincrement value to little endian when on big endian systems. ChangeSet@1.2568.3.1, 2007-08-29 16:06:59+02:00, mats@kindahl-laptop.dnsalias.net +2 -0 BUG#29968 (rpl_ndb_circular.test and rpl_ndb_log.test fail): Removing unguarded read of slave_running field from inside terminate_slave_threads(). This could cause premature exit in the event that the slave thread already were shutting down, but isn't finished yet. The fields slave_running, io_thd, and sql_thread are guarded by an associated run_lock. A read of these fields were not guarded inside terminate_slave_threads(), which caused an assertion to fire. The assertion was removed, and the code reorganized slightly. sql/slave.cc@1.315, 2007-08-29 16:06:54+02:00, mats@kindahl-laptop.dnsalias.net +64 -27 Changing signature of terminate_slave_thread() to accept a skip_lock parameter instead of two mutexes. This mimics the signature of the terminate_slave_threads() function. Code is also changed as a result of this. Removing unguarded check of slave_running field in the master info and relay log info structure since that could cause premature exit of terminate_slave_threads(). The thread variable for each of the slave threads can change before acquiring the run_lock mutex inside terminate_slave_thread(). Hence an assertion was removed that read the variable without guarding it with run_lock. Code that checked *slave_running status inside terminate_slave_thread() was reorganized slightly. sql/slave.h@1.109, 2007-08-29 16:06:55+02:00, mats@kindahl-laptop.dnsalias.net +0 -4 Moving terminate_slave_thread() to use internal linkage. ChangeSet@1.2588.1.1, 2007-08-29 09:44:37+02:00, tomas@whalegate.ndb.mysql.com +2 -0 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue - reverting patch as there where unknows sideeffects that we do not have time to follow up on just now mysql-test/suite/rpl_ndb/t/disabled.def@1.9, 2007-08-29 09:44:34+02:00, tomas@whalegate.ndb.mysql.com +3 -3 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue - reverting patch as there where unknows sideeffects that we do not have time to follow up on just now sql/field.cc@1.414, 2007-08-29 09:44:34+02:00, tomas@whalegate.ndb.mysql.com +2 -17 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue - reverting patch as there where unknows sideeffects that we do not have time to follow up on just now ChangeSet@1.2589, 2007-08-28 10:17:15-06:00, tsmith@ramayana.hindu.god +1 -0 Fix another compiler warning on Windows in InnoDB. storage/innobase/handler/ha_innodb.cc@1.359, 2007-08-28 10:17:14-06:00, tsmith@ramayana.hindu.god +1 -1 Fix compiler warning: ::get_auto_increment takes a ulonglong for nb_desired_values, but InnoDB's trx struct stores it as a ulint (unsigned long). Probably harmless, as a single statement won't be asking for more than 2^32 rows. ChangeSet@1.2588, 2007-08-28 10:37:29+02:00, rafal@quant.(none) +1 -0 A fix for handling endianess in Field_blob::unpack(). sql/field.cc@1.413, 2007-08-28 10:37:22+02:00, rafal@quant.(none) +1 -1 Changed per Tomas` request. ChangeSet@1.2568.2.3, 2007-08-28 10:14:45+02:00, rafal@quant.(none) +2 -0 BUG#21842: Exclude Rows_log_event members used in event application if not compiled as a replication server - a fix from rpl clone now applied to 5.1.22 tree. sql/log_event.cc@1.303.1.1, 2007-08-28 10:14:42+02:00, rafal@quant.(none) +15 -10 Exclude Rows_log_event members used in event application if not compiled as a replication server. sql/log_event.h@1.158, 2007-08-28 10:14:42+02:00, rafal@quant.(none) +5 -5 Don't initialize Rows_log_event members used in event application if not compiled as a replication server. ChangeSet@1.2586, 2007-08-28 07:55:07+02:00, tomas@whalegate.ndb.mysql.com +1 -0 correct compile error sql/log_event.cc@1.304, 2007-08-28 07:55:03+02:00, tomas@whalegate.ndb.mysql.com +1 -1 correct compile error ChangeSet@1.2581.2.1, 2007-08-28 07:42:43+02:00, tomas@whalegate.ndb.mysql.com +2 -0 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue mysql-test/suite/rpl_ndb/t/disabled.def@1.8, 2007-08-28 07:42:40+02:00, tomas@whalegate.ndb.mysql.com +1 -1 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue sql/field.cc@1.412, 2007-08-28 07:42:40+02:00, tomas@whalegate.ndb.mysql.com +6 -9 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue - correct previous patch ChangeSet@1.2584, 2007-08-27 18:18:14-06:00, tsmith@ramayana.hindu.god +2 -0 Fix some Windows compiler warnings. storage/innobase/dict/dict0mem.c@1.28, 2007-08-27 18:18:13-06:00, tsmith@ramayana.hindu.god +1 -1 Fix compiler warning with a cast. storage/innobase/handler/ha_innodb.cc@1.358, 2007-08-27 18:18:13-06:00, tsmith@ramayana.hindu.god +1 -1 Change type to fix a compiler warning. ChangeSet@1.2581.1.2, 2007-08-27 14:31:27-06:00, tsmith@ramayana.hindu.god +5 -0 Bug #30389: connection_id() always return 0 in embedded server Initialize thd->variables.pseudo_thread_id when a new embedded thd is created. libmysqld/lib_sql.cc@1.139, 2007-08-27 14:31:26-06:00, tsmith@ramayana.hindu.god +11 -0 Add comment regarding duplication of code in create_embedded_thd() vs. create_new_thread() and prepare_new_connection_state(). This was a cause for not properly initializing the pseudo_thread_id variable. mysql-test/r/func_misc.result@1.35, 2007-08-27 14:31:26-06:00, tsmith@ramayana.hindu.god +4 -0 Add test case to ensure connection_id() returns a sane value mysql-test/t/func_misc.test@1.26, 2007-08-27 14:31:26-06:00, tsmith@ramayana.hindu.god +8 -0 Add test case to ensure connection_id() returns a sane value sql/mysqld.cc@1.667, 2007-08-27 14:31:26-06:00, tsmith@ramayana.hindu.god +5 -0 Add comment warning of the duplication of code between create_new_thread() and create_embedded_thd() sql/sql_connect.cc@1.9, 2007-08-27 14:31:26-06:00, tsmith@ramayana.hindu.god +5 -0 Add comment warning of the duplication of code between prepare_new_connection_state() and create_embedded_thd() ChangeSet@1.2573.1.5, 2007-08-27 14:12:12-06:00, tsmith@ramayana.hindu.god +7 -0 Bug #30412 and Bug #30413 Update some tests in the "parts" suite, so they're skipped if the requisite plugins are not present in the mysqld. mysql-test/suite/parts/t/partition_char_innodb.test@1.4, 2007-08-27 14:12:10-06:00, tsmith@ramayana.hindu.god +1 -0 Skip if mysqld doesn't include InnoDB support mysql-test/suite/parts/t/partition_datetime_innodb.test@1.4, 2007-08-27 14:12:10-06:00, tsmith@ramayana.hindu.god +1 -0 Skip if mysqld doesn't include InnoDB support mysql-test/suite/parts/t/partition_decimal_innodb.test@1.4, 2007-08-27 14:12:10-06:00, tsmith@ramayana.hindu.god +2 -0 Skip if mysqld doesn't include InnoDB support mysql-test/suite/parts/t/partition_float_innodb.test@1.4, 2007-08-27 14:12:10-06:00, tsmith@ramayana.hindu.god +2 -0 Skip if mysqld doesn't include InnoDB support mysql-test/suite/parts/t/partition_int_innodb.test@1.4, 2007-08-27 14:12:10-06:00, tsmith@ramayana.hindu.god +1 -0 Skip if mysqld doesn't include InnoDB support mysql-test/suite/parts/t/partition_special_innodb.test@1.4, 2007-08-27 14:12:10-06:00, tsmith@ramayana.hindu.god +1 -0 Skip if mysqld doesn't include InnoDB support mysql-test/suite/parts/t/rpl_partition.test@1.5, 2007-08-27 14:12:10-06:00, tsmith@ramayana.hindu.god +1 -0 Skip if mysqld doesn't include partition support ChangeSet@1.2573.1.4, 2007-08-27 14:08:32-06:00, tsmith@ramayana.hindu.god +45 -0 Fixes for the following bugs: Bug #30316: Some "parts" tests fail because the server uses "--secure-file-priv" Bug #30341: Test suite "parts" needs to be adapted to the new rules disallowing many functio Bug #30408: Suite "parts" needs bug numbers updated Bug #30411: Suite "parts" needs bug numbers updated: ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF Bug #30576: part_supported_sql_func_innodb.test tries to LOAD DATA outside of var dir Bug #30581: partition_value tests use disallowed CAST() function Included are some general fixes to allow the "parts" test suite to be run successfully. This includes disabling a few tests or parts of tests, cleaning up the test cases and their results, etc. Basically, these tests have not been run for some time, and had suffered some bit rot. The bugs were fixed as a single changeset, because in some ways they depend on each other. I couldn't be sure I'd updated all the error codes (for bugs 30408 and 30411) without also adapting to the new allowed functions rules (bug 30341), and vice versa. mysql-test/include/partition_layout.inc@1.3, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +1 -0 Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/std_data/parts/part_supported_sql_funcs_int_ch1.inc@1.5, 2007-08-27 12:22:49-06:00, tsmith@ramayana.hindu.god +0 -0 Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_ch1.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_date.inc@1.5, 2007-08-27 12:22:49-06:00, tsmith@ramayana.hindu.god +0 -0 Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_date.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_date.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_float.inc@1.5, 2007-08-27 12:22:49-06:00, tsmith@ramayana.hindu.god +0 -0 Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_float.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_float.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_int.inc@1.5, 2007-08-27 12:22:49-06:00, tsmith@ramayana.hindu.god +0 -0 Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_int.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_int.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_time.inc@1.6, 2007-08-27 12:22:50-06:00, tsmith@ramayana.hindu.god +0 -0 Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_time.inc mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc@1.6, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +18 -6 Add ASCII(), ORD() and WEEKOFYEAR() as blocked functions (they depend too much on character set, etc.). Remove DATEDIFF() as a blocked function (it is implemented in terms of TO_DAYS() and the minus operator). mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc@1.7, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +24 -42 Remove ASCII(), ORD() and WEEKOFYEAR(), which are not allowed functions. Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING on non-integer fields, due to Bug 30577. Test MOD() with an integer field instead of floating point (it has a hybrid result type, like FLOOR() and CEILING(), but makes sense to use with an integer field). Add DATEDIFF() as an allowed function, because it is implemented in terms of TO_DAYS() and the minus operator. mysql-test/suite/parts/inc/partition_alter3.inc@1.5, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +3 -3 Remove use of disallowed CAST() function in partitioning mysql-test/suite/parts/inc/partition_alter_1.inc@1.5, 2007-08-27 14:02:08-06:00, tsmith@ramayana.hindu.god +5 -4 Correct expected error codes, which changed due to bug 29245. mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +13 -21 The blocked functions are actually blocked now, so expect errors. This is a result of the fix for bug 18198. mysql-test/suite/parts/inc/partition_check.inc@1.5, 2007-08-27 14:02:08-06:00, tsmith@ramayana.hindu.god +10 -8 Correct expected error codes, which changed due to bug 29245. mysql-test/suite/parts/inc/partition_date.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +2 -2 Remove uses of CAST() in partitioning functions - it is not allowed. mysql-test/suite/parts/inc/partition_datetime.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +2 -2 Remove uses of CAST() in partitioning functions - it is not allowed. mysql-test/suite/parts/inc/partition_decimal.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +12 -2 Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING(), due to Bug 30577. mysql-test/suite/parts/inc/partition_directory.inc@1.5, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +14 -13 Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_double.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +12 -2 Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING(), due to Bug 30577. mysql-test/suite/parts/inc/partition_enum.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +1 -26 Remove use of CAST(), which is disallowed. Remove test which relies on CAST(). mysql-test/suite/parts/inc/partition_float.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +12 -2 Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING(), due to Bug 30577. mysql-test/suite/parts/inc/partition_layout_check1.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +1 -0 Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_layout_check2.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +1 -0 Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_methods1.inc@1.5, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +16 -16 Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_set.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +0 -38 Remove test which relies on CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc@1.6, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +3 -8 Fix Bug #30576: part_supported_sql_func_innodb.test tries to LOAD DATA outside of var dir Move data files into std_data/parts/*, so they can be used with LOAD DATA INFILE '../std_data_ln/parts/*' while --secure-file-priv is in force. mysql-test/suite/parts/inc/partition_syntax.inc@1.5, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +5 -5 Remove use of CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_syntax_1.inc@1.5, 2007-08-27 14:02:08-06:00, tsmith@ramayana.hindu.god +12 -12 Correct expected error codes, which changed due to bug 29245. mysql-test/suite/parts/inc/partition_time.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +2 -2 Remove use of CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_timestamp.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +2 -2 Remove use of CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_value.inc@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +12 -0 Disable this entire test file, because it relies on using CAST() as a partitioning function, which is disallowed. See Bug 30581, "partition_value tests use disallowed CAST() function". mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +840 -156 Update test case results mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result@1.4, 2007-08-27 12:09:09-06:00, tsmith@ramayana.hindu.god +840 -156 Update test case results mysql-test/suite/parts/r/part_supported_sql_func_innodb.result@1.6, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +1732 -2536 Update test case results mysql-test/suite/parts/r/part_supported_sql_func_myisam.result@1.6, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +1732 -2536 Update test case results mysql-test/suite/parts/r/partition_alter3_innodb.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +68 -89 Update test case results mysql-test/suite/parts/r/partition_alter3_myisam.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +256 -277 Update test case results mysql-test/suite/parts/r/partition_basic_innodb.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +53 -1290 Update test case results mysql-test/suite/parts/r/partition_basic_myisam.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +129 -920 Update test case results mysql-test/suite/parts/r/partition_datetime_innodb.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +16 -16 Update test case results mysql-test/suite/parts/r/partition_datetime_myisam.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +16 -16 Update test case results mysql-test/suite/parts/r/partition_decimal_innodb.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +0 -92 Update test case results mysql-test/suite/parts/r/partition_decimal_myisam.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +0 -92 Update test case results mysql-test/suite/parts/r/partition_float_myisam.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +0 -292 Update test case results mysql-test/suite/parts/r/partition_syntax_innodb.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +5 -5 Update test case results mysql-test/suite/parts/r/partition_syntax_myisam.result@1.3, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +5 -5 Update test case results mysql-test/suite/parts/t/disabled.def@1.6, 2007-08-27 12:09:10-06:00, tsmith@ramayana.hindu.god +5 -0 Mark several more tests as disabled: partition_value_myisam, partition_value_innodb, part_supported_sql_func_ndb, rpl_ndb_dd_partitions, and partition_float_innodb ChangeSet@1.2568.2.2, 2007-08-27 20:22:04+02:00, rafal@quant.(none) +1 -0 BUG#21842: There was an inconsistency in the use of table->record[0] and table->record[1] buffers inside Rows_log_event::find_row() function. The patch fixes this. sql/log_event.cc@1.303, 2007-08-27 20:22:01+02:00, rafal@quant.(none) +17 -10 Use table->record[0] to read records from table and table->record[1] to store a copy of the original record for comparisons. ChangeSet@1.2573.1.3, 2007-08-27 11:46:34-06:00, tsmith@ramayana.hindu.god +1 -0 Bug #30648: Partition handler may not initialize variable used w/ autoincrement A local variable may be used uninitialized in ha_partition::get_auto_increment(). Initialize it properly. sql/ha_partition.cc@1.98.1.1, 2007-08-27 11:46:32-06:00, tsmith@ramayana.hindu.god +1 -0 Initialize first_value_part in ha_partition::get_auto_increment() with *first_value before it's used in the underlying table handler. Thanks to Antony for digging up this fix. ChangeSet@1.2575.3.1, 2007-08-27 15:40:49+02:00, tomas@whalegate.ndb.mysql.com +2 -0 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue mysql-test/suite/rpl_ndb/t/disabled.def@1.7, 2007-08-27 15:40:47+02:00, tomas@whalegate.ndb.mysql.com +2 -2 Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue sql/field.cc@1.409.1.1, 2007-08-27 15:40:47+02:00, tomas@whalegate.ndb.mysql.com +17 -1 - always pack in little endian, irrespective of starage engine native format - always unpack as if it is atored in little endian, and unpack it to storage engine native format ChangeSet@1.2579, 2007-08-27 15:01:29+03:00, gkodinov@magare.gmz +2 -0 portation fixes for bug 29536 and 29325 in re-pushing for 5.1.22. mysql-test/suite/rpl/t/rpl_timezone.test@1.18, 2007-08-27 15:01:27+03:00, gkodinov@magare.gmz +1 -1 typo fixed in re-pushing bug 29536 sql/mysqld.cc@1.666, 2007-08-27 15:01:27+03:00, gkodinov@magare.gmz +2 -2 portation fixes ->5.1 for bug 29325 ChangeSet@1.2536.52.2, 2007-08-27 13:30:22+02:00, joerg@trift2. +2 -0 More cleanup / fixing for NetWare: 1) "test_db.sql" is a plaintext file, no binary; 2) do not try to strip the binaries, it will not work. configure.in@1.477.1.1, 2007-08-27 13:30:17+02:00, joerg@trift2. +8 -0 For NetWare, we cannot strip the binaries, so there is no use in attempting it. scripts/make_binary_distribution.sh@1.159, 2007-08-27 13:30:17+02:00, joerg@trift2. +1 -1 Get rid of a typing error, introduced when a following file name was deleted. ChangeSet@1.2573.2.1, 2007-08-27 13:13:00+02:00, tomas@whalegate.ndb.mysql.com +7 -0 repair some rpl_ndb test cases BitKeeper/deleted/.del-rpl_ndb_myisam2ndb-master.opt@1.3, 2007-08-27 13:05:33+02:00, tomas@whalegate.ndb.mysql.com +0 -0 Delete: mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-master.opt mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result@1.1, 2007-08-27 13:11:32+02:00, tomas@whalegate.ndb.mysql.com +855 -0 BitKeeper file /home/tomas/mysql-5.1-target-5.1.22/mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result@1.0, 2007-08-27 13:11:32+02:00, tomas@whalegate.ndb.mysql.com +0 -0 mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result@1.1, 2007-08-27 13:06:57+02:00, tomas@whalegate.ndb.mysql.com +855 -0 BitKeeper file /home/tomas/mysql-5.1-target-5.1.22/mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result@1.0, 2007-08-27 13:06:57+02:00, tomas@whalegate.ndb.mysql.com +0 -0 mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb-slave.opt@1.7, 2007-08-27 13:12:57+02:00, tomas@whalegate.ndb.mysql.com +1 -1 repair some rpl_ndb test cases mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb2ndb.test@1.5, 2007-08-27 13:12:57+02:00, tomas@whalegate.ndb.mysql.com +2 -1 repair some rpl_ndb test cases mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb-slave.opt@1.7, 2007-08-27 13:12:57+02:00, tomas@whalegate.ndb.mysql.com +1 -1 repair some rpl_ndb test cases mysql-test/suite/rpl_ndb/t/rpl_ndb_myisam2ndb.test@1.5, 2007-08-27 13:12:57+02:00, tomas@whalegate.ndb.mysql.com +2 -0 repair some rpl_ndb test cases ChangeSet@1.2578, 2007-08-27 12:33:57+03:00, gkodinov@magare.gmz +4 -0 re-push of Bug 29536 for 5.1.22: timestamp inconsistent in replication around 1970 MySQL replicates the time zone only when operations that involve it are performed. This is controlled by a flag. But this flag is set only on successful operation. The flag must be set also when there is an error that involves a timezone (so the master would replicate the error to the slaves). mysql-test/suite/rpl/r/rpl_timezone.result@1.23, 2007-08-27 12:33:56+03:00, gkodinov@magare.gmz +18 -0 repush of Bug 29536 for 5.1.22 tree: test case mysql-test/suite/rpl/t/rpl_timezone.test@1.17, 2007-08-27 12:33:56+03:00, gkodinov@magare.gmz +28 -1 repush of Bug 29536 for 5.1.22 tree: test case sql/field.cc@1.410, 2007-08-27 12:33:56+03:00, gkodinov@magare.gmz +3 -3 re-push of Bug 29536 for 5.1.22: move setting of the flag before the operation (so it apples to errors as well). sql/time.cc@1.83, 2007-08-27 12:33:56+03:00, gkodinov@magare.gmz +1 -1 re-push of Bug 29536 for 5.1.22: move setting of the flag before the operation (so it apples to errors as well). ChangeSet@1.2577, 2007-08-27 12:21:47+03:00, gkodinov@magare.gmz +1 -0 recommit of Bug 25228 for 5.1.22: rpl_relayspace.test fails on powermacg5, vm-win2003-32-a A test case was waiting for a fixed number of seconds for a specific state of the slave IO thread to take place. Fixed by waiting in a loop for that specific thread state instead (or timeout). mysql-test/suite/rpl/t/rpl_relayspace.test@1.7, 2007-08-27 12:21:45+03:00, gkodinov@magare.gmz +16 -0 recommit of Bug 25228 for 5.1.22: fixed test case ChangeSet@1.2576, 2007-08-27 12:15:01+03:00, gkodinov@magare.gmz +1 -0 recommit of Addendum to bug #29325 to 5.1.22 tree keep_files_on_create made a startup option sql/mysqld.cc@1.665, 2007-08-27 12:14:59+03:00, gkodinov@magare.gmz +7 -1 recommit of Addendum to bug #29325 to 5.1.22 tree keep_files_on_create made a startup option ChangeSet@1.2568.2.1, 2007-08-26 14:31:10+02:00, rafal@quant.(none) +13 -0 BUG#21842 (Cluster fails to replicate to innodb or myisam with err 134 using TPC-B): Problem: A RBR event can contain incomplete row data (only key value and fields which have been changed). In that case, when the row is unpacked into record and written to a table, the missing fields get incorrect NULL values leading to master-slave inconsistency. Solution: Use values found in slave's table for columns which are not given in the rows event. The code for writing a single row uses the following algorithm: 1. unpack row_data into table->record[0], 2. try to insert record, 3. if duplicate record found, fetch it into table->record[0], 4. unpack row_data into table->record[0], 5. write table->record[0] into the table. Where row_data is the row as stored in the data area of a rows event. Thus: a) unpacking of row_data happens at the time when row is written into a table, b) when unpacking (in step 4), only columns present in row_data are overwritten - all other columns remain as they were found in the table. Since all data needed for the above algorithm is stored inside Rows_log_event class, functions which locate and write rows are turned into methods of that class. replace_record() -> Rows_log_event::write_row() find_and_fetch_row() -> Rows_log_event::find_row() Both methods take row data from event's data buffer - the row being processed is pointed by m_curr_row. They unpack the data as needed into table's record buffers record[0] or record[1]. When row is unpacked, m_curr_row_end is set to point at next row in the data buffer. Other changes introduced in this changeset: - Change signature of unpack_row(): don't report errors and don't setup table's rw_set here. Errors can happen only when setting default values in prepare_record() function and are detected there. - In Rows_log_event and derived classes, don't pass arguments to the execution primitives (do_...() member functions) but use class members instead. - Move old row handling code into log_event_old.cc to be used by *_rows_log_event_old classes. Also, a new test rpl_ndb_2other is added which tests basic replication from master using ndb tables to slave storing the same tables using (possibly) different engine (myisam,innodb). Test is based on existing tests rpl_ndb_2myisam and rpl_ndb_2innodb. However, these tests doesn't work for various reasons and currently are disabled (see BUG#19227). The new test differs from the ones it is based on as follows: 1. Single test tests replication with different storage engines on slave (myisam, innodb, ndb). 2. Include file extra/rpl_tests/rpl_ndb_2multi_eng.test containing original tests is replaced by extra/rpl_tests/rpl_ndb_2multi_basic.test which doesn't contain tests using partitioned tables as these don't work currently. Instead, it tests replication to a slave which has more or less columns than master. 3. Include file include/rpl_multi_engine3.inc is replaced with include/rpl_multi_engine2.inc. The later differs by performing slightly different operations (updating more than one row in the table) and clearing table with "TRUNCATE TABLE" statement instead of "DELETE FROM" as replication of "DELETE" doesn't work well in this setting. 4. Slave must use option --log-slave-updates=0 as otherwise execution of replication events generated by ndb fails if table uses a different storage engine on slave (see BUG#29569). mysql-test/extra/rpl_tests/rpl_ndb_2multi_basic.test@1.1, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +119 -0 Modification of rpl_ndb_2multi_eng test. Tests with partitioned tables are removed and a setup with slave having different number of columns than master is added. mysql-test/extra/rpl_tests/rpl_ndb_2multi_basic.test@1.0, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +0 -0 mysql-test/include/rpl_multi_engine2.inc@1.1, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +91 -0 Modification of rpl_multi_engine3.inc which operates on more rows and replaces "DELETE FROM t1" with "TRUNCATE TABLE t1" as the first form doesn't replicate in NDB -> non-NDB setting (BUG#28538). mysql-test/include/rpl_multi_engine2.inc@1.0, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +0 -0 mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result@1.1, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +1189 -0 Results of the test. mysql-test/suite/rpl_ndb/r/rpl_ndb_2other.result@1.0, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +0 -0 mysql-test/suite/rpl_ndb/t/rpl_ndb_2other-slave.opt@1.1, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +1 -0 Test options. --log-slave-updates=0 is compulsory as otherwise non-NDB slave applying row events from NDB master will fail when trying to log them. mysql-test/suite/rpl_ndb/t/rpl_ndb_2other-slave.opt@1.0, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +0 -0 mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test@1.1, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +35 -0 Test replication of NDB table to slave using other engine. The main test is in extra/rpl_tests/rpl_ndb_2multi_basic.test. It is included here several times with different settings of default storage engine on slave. mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test@1.0, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +0 -0 sql/log_event.cc@1.302, 2007-08-26 14:31:03+02:00, rafal@quant.(none) +368 -475 - Initialization of new Rows_log_event members. - Fixing some typos in documentation. In Rows_log_event::do_apply_event: - Set COMPLETE_ROWS_F flag (when master and slave have the same number of columns and all colums are present in the row) - Move initialization of tables write/read sets here, outside the rows processing loop (and out of unpack_row() function). - Remove calls to do_prepare_row() - no longer needed. - Add code managing m_curr_row and m_curr_row_end pointers. - Change signatures of row processing methods of Rows_log_event and it descendants - now most arguments are taken from class members. - Remove do_prepare_row() methods which are no longer used. - The auto_afree_ptr template is moved to rpl_utility.h (so that it can be used in log_event_old.cc). - Removed copy_extra_fields() function - no longer used. In Rows_log_event::write_row (former replace_record): - The old code is moved to log_event_old.cc. - Use prepare_record() and non-destructive unpack_current_row() to fill record with data. - In case a record being inserted already exists on slave and row data is incomplete use the record found and non-destructive unpack_current_row() to combine new column values with existing ones. - More debug info added. In Rows_log_event::find_row (former find_and_fetch_row function): - The old code is moved to log_event_old.cc. - Unpacking of the row is moved here. - In case of search using PK, the key data is prepared here. - More debug info added. - Remove initialization of Rows_log_event::m_after_image buffer which is no longer used. - Use new row unpacking methods in Update_rows_log_event::do_exec_row() to create before and after image. Note: all existing code used by Rows_log_event::do_apply_event() has been moved to log_event_old.cc to be used by *_rows_log_event_old classes. sql/log_event.h@1.157, 2007-08-26 14:31:03+02:00, rafal@quant.(none) +55 -54 - Add new COMPLETE_ROWS_F flag in Rows_log_event. - Add Rows_log_event members describing the row being processed. - Add a pointer to key buffer which is used in derived classes. - Add new methods: find__row(), write_row() and unpack_current_row(). - Change signatures of do_...() methods (replace method arguments by class members). - Remove do_prepare_row() method which is no longer used. - Update method documentation. - Add Old_rows_log_event class, which contains the old row processing code, as a friend of Rows_log_event so that it can access all members of an event instance. sql/log_event_old.cc@1.6, 2007-08-26 14:31:03+02:00, rafal@quant.(none) +1115 -0 Move here old implementation of Rows_log_event::do_apply_event() and helper methods. sql/log_event_old.h@1.5, 2007-08-26 14:31:03+02:00, rafal@quant.(none) +123 -7 - Define new class Old_rows_log_event encapsulating old version of Rows_log_event::do_apply_event() and the helper methods. - Add the Old_rows_log_event class as a base for *_old versions of RBR event classes, ensure that the old version of do_apply_event() is called. - For *_old classes, declare the helper methods used in the old version of do_apply_event(). sql/rpl_record.cc@1.8, 2007-08-26 14:31:03+02:00, rafal@quant.(none) +47 -29 - Make unpack_row non-destructive for columns not present in the row. - Don't fill read/write set here as it is done outside these functions. - Move initialization of a record with default values to a separate function prepare_record(). sql/rpl_record.h@1.3, 2007-08-26 14:31:03+02:00, rafal@quant.(none) +7 -3 - Change signature of unpack_row(). - Declare function prepare_record(). sql/rpl_utility.cc@1.14, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +1 -1 Make tabe_def::calc_field_size() a const method. sql/rpl_utility.h@1.11, 2007-08-26 14:31:04+02:00, rafal@quant.(none) +41 -1 Make table_def::calc_field_size() a const method. Move auto_afree_ptr template here so that it can be re-used (currently in log_event.cc and log_event_old.cc). Similar with DBUG_PRINT_BITSET macro. ChangeSet@1.2573.1.2, 2007-08-25 03:55:38-06:00, tsmith@ramayana.hindu.god +15 -0 Apply InnoDB snapshot innodb-5.1-ss1751. Bug #16979: AUTO_INC lock in InnoDB works a table level lock Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. Bug #27950: Duplicate entry error in auto-inc after mysqld restart We check whether the AUTOINC sub-system has been initialized (first) by holding the AUTOINC mutex and if initialization is required then we initialize using our normal procedure. storage/innobase/dict/dict0boot.c@1.20, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +36 -29 Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/dict/dict0crea.c@1.46, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +1 -1 Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/dict/dict0load.c@1.56, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +6 -3 Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/dict/dict0mem.c@1.27, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +4 -0 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. storage/innobase/handler/ha_innodb.cc@1.357, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +83 -126 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1735: Add variable "innodb_autoinc_lock_mode" to control the behavior of the AUTOINC locking. There are three modes, 0 for backward compatibility, 1 for the new style locking (default, safe for statement-based replication) and 2 for no AUTOINC locking (unsafe for statement-based replication). Revision r1750: We check whether the AUTOINC sub-system has been initialized (first) by holding the AUTOINC mutex and if initialization is required then we initialize using our normal procedure. This change is related to Bug#27950. Revision r1746: Remove some code from ha_innodb.cc that was already enclosed in #if 0. The code was related to replication and group commit, and it was unreachable already as of MySQL 5.0. Approved by Heikki Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. storage/innobase/include/dict0mem.h@1.36, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +15 -5 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. Revision r1747: Correct an outdated comment about dict_table_t:col_names that should have been adjusted in r1719, or r1264 in branches/zip. storage/innobase/include/mem0mem.ic@1.20, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +8 -4 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1744: Merge r1739 from branches/zip: mem_heap_free_heap_top(): Declare the memory freed with UNIV_MEM_FREE(). Before this change, the memory freed by mem_heap_empty() was not completely flagged free in UNIV_DEBUG_VALGRIND builds. After this change, Valgrind will hopefully catch all errors caught by UNIV_MEM_DEBUG. storage/innobase/include/sync0rw.ic@1.19, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +1 -1 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1751: rw_lock_s_lock_func(): Correct a typo in a comment. storage/innobase/include/trx0trx.h@1.62, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +0 -25 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1742: Remove some unused fields of trx_t: mysql_master_log_file_name, mysql_master_log_pos, repl_wait_binlog_name, repl_wait_binlog_pos. Approved by Heikki. storage/innobase/lock/lock0lock.c@1.81, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +7 -0 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1749: Add a table level counter that tracks the number of AUTOINC locks that are pending and/or granted on a table. We peek at this value to determine whether a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to acquire the AUTOINC lock or not. This change is related to Bug# 16979. storage/innobase/mtr/mtr0log.c@1.17, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +22 -6 Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/pars/pars0pars.c@1.23, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +2 -1 Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/srv/srv0srv.c@1.109, 2007-08-25 03:55:35-06:00, tsmith@ramayana.hindu.god +2 -2 Apply InnoDB snapshot innodb-5.1-ss1751. storage/innobase/trx/trx0sys.c@1.43, 2007-08-25 03:55:36-06:00, tsmith@ramayana.hindu.god +2 -0 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1743: trx_sys_print_mysql_binlog_offset_from_page(): Enclose the definition in #ifdef UNIV_HOTBACKUP, to match the function declaration. storage/innobase/trx/trx0trx.c@1.77, 2007-08-25 03:55:36-06:00, tsmith@ramayana.hindu.god +0 -18 Apply InnoDB snapshot innodb-5.1-ss1751. Revision r1742: Remove some unused fields of trx_t: mysql_master_log_file_name, mysql_master_log_pos, repl_wait_binlog_name, repl_wait_binlog_pos. Approved by Heikki. ChangeSet@1.2573.1.1, 2007-08-24 19:14:52-06:00, tsmith@ramayana.hindu.god +17 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Bug #16979: AUTO_INC lock in InnoDB works a table level lock - this is a major change in InnoDB auto-inc handling. Bug #27950: Duplicate entry error in auto-inc after mysqld restart - Init AUTOINC from delete_row(). Bug #28781: InnoDB increments auto-increment value incorrectly with ON DUPLICATE KEY UPDATE - Use value specified by MySQL, in update_row(). mysql-test/r/innodb.result@1.200, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +1 -1 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1655: Fix the innodb.test failure mentioned in r1654. storage/innobase/dict/dict0dict.c@1.107, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +62 -101 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. Revision r1719: Merge r1264 from branches/zip: Avoid memory fragmentation when adding column definitions to tables. dict_mem_table_add_col(): Add the parameter "heap" for temporary memory allocation. Allow it and "name" to be NULL. These parameters are NULL when creating dummy indexes. dict_add_col_name(): Remove calls to ut_malloc() and ut_free(). dict_table_get_col_name(): Allow table->col_names to be NULL. dict_table_add_system_columns(), dict_table_add_to_cache(): Add the parameter "heap". --- Additional changes that had to be merged from branches/zip: dict_table_add_system_columns(): New function, factored out from dict_table_add_to_cache(). mlog_parse_index(): Add some consistency checks, and make use of dict_table_add_system_columns(). storage/innobase/dict/dict0mem.c@1.26, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +38 -38 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. Revision r1719: Merge r1264 from branches/zip: Avoid memory fragmentation when adding column definitions to tables. dict_mem_table_add_col(): Add the parameter "heap" for temporary memory allocation. Allow it and "name" to be NULL. These parameters are NULL when creating dummy indexes. dict_add_col_name(): Remove calls to ut_malloc() and ut_free(). dict_table_get_col_name(): Allow table->col_names to be NULL. dict_table_add_system_columns(), dict_table_add_to_cache(): Add the parameter "heap". --- Additional changes that had to be merged from branches/zip: dict_table_add_system_columns(): New function, factored out from dict_table_add_to_cache(). mlog_parse_index(): Add some consistency checks, and make use of dict_table_add_system_columns(). storage/innobase/handler/ha_innodb.cc@1.356, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +444 -270 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. Revision r1718: Replace mysql_byte with uchar and remove the #define mysql_byte from ha_innodb.cc. This cleanup was made possible as of r1550: Revision r1658: check_trx_exists(): Remove a redundant function call and assignment that was added by someone at MySQL. Revision r1656: Revision r1719: Merge r1264 from branches/zip: Avoid memory fragmentation when adding column definitions to tables. dict_mem_table_add_col(): Add the parameter "heap" for temporary memory allocation. Allow it and "name" to be NULL. These parameters are NULL when creating dummy indexes. dict_add_col_name(): Remove calls to ut_malloc() and ut_free(). dict_table_get_col_name(): Allow table->col_names to be NULL. dict_table_add_system_columns(), dict_table_add_to_cache(): Add the parameter "heap". --- Additional changes that had to be merged from branches/zip: dict_table_add_system_columns(): New function, factored out from dict_table_add_to_cache(). mlog_parse_index(): Add some consistency checks, and make use of dict_table_add_system_columns(). Revision r1654: One test case in innodb.test fails because of auto-increment changes in r1562:1653: $diff innodb.result innodb.reject 504c504 < 3 test2 this will work --- > 4 test2 this will work storage/innobase/handler/ha_innodb.h@1.145, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +8 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. Revision r1654: One test case in innodb.test fails because of auto-increment changes in r1562:1653: $diff innodb.result innodb.reject 504c504 < 3 test2 this will work --- > 4 test2 this will work storage/innobase/ibuf/ibuf0ibuf.c@1.54, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +10 -10 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1715: ibuf0ibuf.c: Remove the unused prototype for dict_index_print_low() that was inadvertently added in r832. Revision r1719: Merge r1264 from branches/zip: Avoid memory fragmentation when adding column definitions to tables. dict_mem_table_add_col(): Add the parameter "heap" for temporary memory allocation. Allow it and "name" to be NULL. These parameters are NULL when creating dummy indexes. dict_add_col_name(): Remove calls to ut_malloc() and ut_free(). dict_table_get_col_name(): Allow table->col_names to be NULL. dict_table_add_system_columns(), dict_table_add_to_cache(): Add the parameter "heap". --- Additional changes that had to be merged from branches/zip: dict_table_add_system_columns(): New function, factored out from dict_table_add_to_cache(). mlog_parse_index(): Add some consistency checks, and make use of dict_table_add_system_columns(). storage/innobase/include/dict0dict.h@1.52, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +24 -26 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. Revision r1719: Merge r1264 from branches/zip: Avoid memory fragmentation when adding column definitions to tables. dict_mem_table_add_col(): Add the parameter "heap" for temporary memory allocation. Allow it and "name" to be NULL. These parameters are NULL when creating dummy indexes. dict_add_col_name(): Remove calls to ut_malloc() and ut_free(). dict_table_get_col_name(): Allow table->col_names to be NULL. dict_table_add_system_columns(), dict_table_add_to_cache(): Add the parameter "heap". --- Additional changes that had to be merged from branches/zip: dict_table_add_system_columns(): New function, factored out from dict_table_add_to_cache(). mlog_parse_index(): Add some consistency checks, and make use of dict_table_add_system_columns(). storage/innobase/include/dict0mem.h@1.35, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +7 -1 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. Revision r1719: Merge r1264 from branches/zip: Avoid memory fragmentation when adding column definitions to tables. dict_mem_table_add_col(): Add the parameter "heap" for temporary memory allocation. Allow it and "name" to be NULL. These parameters are NULL when creating dummy indexes. dict_add_col_name(): Remove calls to ut_malloc() and ut_free(). dict_table_get_col_name(): Allow table->col_names to be NULL. dict_table_add_system_columns(), dict_table_add_to_cache(): Add the parameter "heap". --- Additional changes that had to be merged from branches/zip: dict_table_add_system_columns(): New function, factored out from dict_table_add_to_cache(). mlog_parse_index(): Add some consistency checks, and make use of dict_table_add_system_columns(). storage/innobase/include/lock0lock.h@1.30, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +1 -1 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1664: lock_number_of_rows_locked(): Fix a typo in comment, and make the comments in lock0lock.c and lock0lock.h identical. The typo was incorrectly fixed in r1623. storage/innobase/include/row0mysql.h@1.53, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +1 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. storage/innobase/include/row0sel.h@1.12, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +10 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. storage/innobase/include/trx0trx.h@1.61, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +3 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. storage/innobase/include/ut0mem.h@1.22, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +1 -1 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1713: Fix typo in comment. storage/innobase/log/log0recv.c@1.71, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +3 -4 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1657: recv_init_crash_recovery(): remove trailing white space storage/innobase/row/row0mysql.c@1.143, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +4 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. storage/innobase/row/row0sel.c@1.119, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +166 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. storage/innobase/trx/trx0trx.c@1.76, 2007-08-24 19:14:48-06:00, tsmith@ramayana.hindu.god +2 -0 Apply InnoDB snapshot innodb-5.1-ss1726. Revision r1645: Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There is one test that fails as of this commit. The updated test case should be part of the snapshot from MySQL shortly. Fix for bug# 27950 - Init AUTOINC from delete_row(). Fix for bug# 28781 - Use value specified by MySQL, in update_row(). Summary of structural changes: ============================== InnoDB needs to hold a table level lock for AUTOINC allocations to overcome the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix for simple INSERT statements (including multi-value inserts), we try and avoid acquiring the special AUTOINC table level lock unless another transaction has already reserved the AUTOINC table level lock, in which case we fall back to the old behavior of acquiring the AUTOINC table level lock. The max AUTOINC value is now read directly using the low level interface of InnoDB. ChangeSet@1.1810.3229.1, 2007-08-24 23:07:59+02:00, joerg@trift2. +2 -0 Fixes for the NetWare builds, discovered during 5.1.21-beta and backported to 5.0: 1) Ensure "init_db.sql" and "test_db-sql" really get built. 2) Ensure the "*.def" files with NetWare linker options get distributed to the proper directories. netware/BUILD/compile-netware-END@1.7.2.4, 2007-08-24 23:07:55+02:00, joerg@trift2. +9 -2 Ensure the "*.def" files are built for NetWare. This is a backport of a 5.1 fix which may not be needed in 5.0 but cannot do any harm: the general "link_sources" step might fall victim to a cleanup which would be fatal just for NetWare, because of problems in the ordering of SUBDIR entries. netware/Makefile.am@1.15.1.9, 2007-08-24 23:07:55+02:00, joerg@trift2. +10 -4 1) The scripts "init_db.sql" and "test_db.sql" must be built in the NetWare phase. 2) Use "basename", not sed. ChangeSet@1.2574, 2007-08-24 21:36:51+05:00, holyfoot@mysql.com +3 -0 ha_partition.cc, ha_partition.h: bug fixed partition_pruning.result: test fixed mysql-test/r/partition_pruning.result@1.26, 2007-08-24 21:23:27+05:00, holyfoot@mysql.com +2 -2 test fixed sql/ha_partition.cc@1.99, 2007-08-24 21:23:50+05:00, holyfoot@mysql.com +14 -1 bug fixed sql/ha_partition.h@1.40, 2007-08-24 21:24:15+05:00, holyfoot@mysql.com +1 -0 bug fixed ChangeSet@1.2570.1.2, 2007-08-24 09:50:54+02:00, tomas@whalegate.ndb.mysql.com +1 -0 unable to reproduce bug, perhaps pushbuild can give more info mysql-test/suite/ndb/t/disabled.def@1.4, 2007-08-24 09:50:50+02:00, tomas@whalegate.ndb.mysql.com +1 -1 unable to reproduce bug, perhaps pushbuild can give more info ChangeSet@1.2568.1.3, 2007-08-24 02:23:49+05:00, gshchepa@gleb.loc +7 -0 Fixed bug #30396. Recommit to 5.1.22. The bug caused memory corruption for some queries with top OR level in the WHERE condition if they contained equality predicates and other sargable predicates in disjunctive parts of the condition. The corruption happened because the upper bound of the memory allocated for KEY_FIELD and SARGABLE_PARAM internal structures containing info about potential lookup keys was calculated incorrectly in some cases. In particular it was calculated incorrectly when the WHERE condition was an OR formula with disjuncts being AND formulas including equalities and other sargable predicates. mysql-test/r/select.result@1.161, 2007-08-24 02:21:04+05:00, gshchepa@gleb.loc +57 -0 Added a test case for bug #30396. Recommit to 5.1.22. mysql-test/t/select.test@1.128, 2007-08-24 02:21:04+05:00, gshchepa@gleb.loc +60 -0 Added a test case for bug #30396. Recommit to 5.1.22. sql/item_cmpfunc.h@1.164, 2007-08-24 02:21:05+05:00, gshchepa@gleb.loc +0 -1 Removed max_members from the COND_EQUAL class as not useful anymore. Recommit to 5.1.22. sql/sql_base.cc@1.422, 2007-08-24 02:21:06+05:00, gshchepa@gleb.loc +1 -0 Added the max_equal_elems field to the st_select_lex structure. Recommit to 5.1.22. sql/sql_lex.cc@1.259, 2007-08-24 02:21:06+05:00, gshchepa@gleb.loc +1 -0 Added the max_equal_elems field to the st_select_lex structure. Recommit to 5.1.22. sql/sql_lex.h@1.291, 2007-08-24 02:21:07+05:00, gshchepa@gleb.loc +2 -1 Added the max_equal_elems field to the st_select_lex structure. The field contains the maximal number of elements in multiple equalities built for the query conditions. Recommit to 5.1.22. sql/sql_select.cc@1.551, 2007-08-24 02:21:07+05:00, gshchepa@gleb.loc +12 -26 Fixed bug #30396. Recommit to 5.1.22. The bug caused memory corruption for some queries with top OR level in the WHERE condition if they contained equality predicates and other sargable predicates in disjunctive parts of the condition. The corruption happened because the upper bound of the memory allocated for KEY_FIELD and SARGABLE_PARAM internal structures containing info about potential lookup keys was calculated incorrectly in some cases. In particular it was calculated incorrectly when the WHERE condition was an OR formula with disjuncts being AND formulas including equalities and other sargable predicates. The max_equal_elems field to the st_select_lex structure is used now to calculate the above mentioned upper bound. The field contains the maximal number of elements in multiple equalities built for the query conditions. ChangeSet@1.2568.1.2, 2007-08-24 01:59:48+05:00, gshchepa@gleb.loc +1 -0 Fixed bug #30201. Recommit to 5.1.22. Killing a SELECT query with KILL QUERY or KILL CONNECTION causes a server crash if the query cache is enabled. Normal evaluation of a query may be interrupted by the KILL QUERY/CONNECTION statement, in this case the mysql_execute_command function returns TRUE, and the thd->killed flag has true value. In this case the result of the query may be cached incompletely (omitting call to query_cache_insert inside the net_real_write function), and next call to query_cache_end_of_result may lead to server crash. Thus, the query_cache_end_of_result function has been modified to abort query cache in the case of killed thread. sql/sql_cache.cc@1.120, 2007-08-24 01:58:29+05:00, gshchepa@gleb.loc +23 -14 Fixed bug #30201. Recommit to 5.1.22. The query_cache_end_of_result function has been modified to abort query cache in the case of query execution failure. Also this function has been modified to remove incomplete query block. ChangeSet@1.2568.1.1, 2007-08-24 01:54:18+05:00, gshchepa@gleb.loc +3 -0 Fixed bug #30287. Recommit to 5.1.22. The server created temporary tables for filesort in the working directory instead of the specified tmpdir directory. sql/item.cc@1.282, 2007-08-24 01:52:11+05:00, gshchepa@gleb.loc +2 -0 Fixed bug #30287. Recommit to 5.1.22. The Item_field::set_field method has been modified to reset the any_privileges flag to false in case of system temporary table. This modification prevents the server from unnecessary checking of user privileges to access system temporary tables. sql/sql_select.cc@1.550, 2007-08-24 01:52:15+05:00, gshchepa@gleb.loc +8 -10 Fixed bug #30287. Recommit to 5.1.22. Bugfix for #29015 has been removed: TABLE_SHARE::table_name of system temporary tables contains full path to table file basename again. sql/sql_view.cc@1.146, 2007-08-24 01:52:16+05:00, gshchepa@gleb.loc +6 -0 Fixed bug #30287. Recommit to 5.1.22. Commentary has been added. ChangeSet@1.2569.1.1, 2007-08-23 16:13:21+02:00, tomas@whalegate.ndb.mysql.com +2 -0 BUG#30017 log-slave-updates incorrect behavior for cluster - let the receiving injector thread decide what to do (recommit for 5.1.22 target) sql/ha_ndbcluster.cc@1.469, 2007-08-23 16:13:12+02:00, tomas@whalegate.ndb.mysql.com +37 -13 BUG#30017 log-slave-updates incorrect behavior for cluster - let the receiving injector thread decide what to do sql/ha_ndbcluster_binlog.cc@1.125, 2007-08-23 16:13:13+02:00, tomas@whalegate.ndb.mysql.com +13 -0 BUG#30017 log-slave-updates incorrect behavior for cluster - let the receiving injector thread decide what to do ChangeSet@1.2571, 2007-08-23 16:31:21+04:00, skozlov@mysql.com +4 -0 Bug#28744, Bug#29363 mysql-test/suite/rpl/include/rpl_mixed_ddl.inc@1.3, 2007-08-23 16:30:49+04:00, skozlov@mysql.com +1 -1 updated main test for DDL mysql-test/suite/rpl/include/rpl_mixed_dml.inc@1.3, 2007-08-23 16:30:49+04:00, skozlov@mysql.com +5 -3 updated main test for DML mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result@1.5, 2007-08-23 16:30:50+04:00, skozlov@mysql.com +22 -24 updated result file mysql-test/suite/rpl/t/disabled.def@1.10, 2007-08-23 16:30:50+04:00, skozlov@mysql.com +2 -2 updated disabled.def ChangeSet@1.2569, 2007-08-23 15:17:44+02:00, tomas@whalegate.ndb.mysql.com +1 -0 BUG#30134 restore of backup from different endian can work for timestamp column (recommit for 5.1.22 target) storage/ndb/tools/restore/Restore.cpp@1.52, 2007-08-23 15:17:42+02:00, tomas@whalegate.ndb.mysql.com +4 -1 Convert byte order of timestamp data type ChangeSet@1.2568, 2007-08-22 10:15:20-07:00, antony@pcg5ppc.xiphis.org +1 -0 Bug#30359 "Test federated_bug_25714 issues non-existing shell command" Problem caused by missing '$' symbol in eval statement causing it to always attempt to run test even if the test was not compiled. mysql-test/include/have_bug25714.inc@1.2, 2007-08-22 10:15:17-07:00, antony@pcg5ppc.xiphis.org +1 -1 bug30359 missing '$' in eval statement ChangeSet@1.2567, 2007-08-22 15:58:03+02:00, joerg@trift2. +1 -0 Fix the version number. configure.in@1.484, 2007-08-22 15:57:56+02:00, joerg@trift2. +1 -1 Version is 5.1.22 ! ChangeSet@1.2558.1.8, 2007-08-22 15:54:10+02:00, jmiller@mysql.com +2 -0 ndb_dd_ddl.test, ndb_dd_ddl.result: Updated test case to correst inconsistant results on different OS per #bug30559 mysql-test/suite/ndb/r/ndb_dd_ddl.result@1.18, 2007-08-22 15:53:57+02:00, jmiller@mysql.com +2 -4 Updated test case to correst inconsistant results on different OS per #bug30559 mysql-test/suite/ndb/t/ndb_dd_ddl.test@1.17, 2007-08-22 15:53:47+02:00, jmiller@mysql.com +12 -5 Updated test case to correst inconsistant results on different OS per #bug30559 ChangeSet@1.2558.1.7, 2007-08-21 21:22:35+02:00, jmiller@mysql.com +2 -0 ndb_dd_dump.test, ndb_dd_dump.result: uncommented the test case stated in bug18856 and commiting to mysql-5.1-target-5.1.22 clone per Tomas mysql-test/suite/ndb/r/ndb_dd_dump.result@1.7, 2007-08-21 21:22:23+02:00, jmiller@mysql.com +234 -0 uncommented the test case stated in bug18856 and commiting to mysql-5.1-target-5.1.22 clone per Tomas mysql-test/suite/ndb/t/ndb_dd_dump.test@1.10, 2007-08-21 21:22:05+02:00, jmiller@mysql.com +28 -27 uncommented the test case stated in bug18856 and commiting to mysql-5.1-target-5.1.22 clone per Tomas ChangeSet@1.2558.1.6, 2007-08-11 14:07:49+04:00, kostja@bodhi.(none) +2 -0 A fix for Bug#29049 lock_multi fails in rare case. The patch changes the test case only. The fix is to replace all 'sleep's with wait_condition. This makes the test deterministic and also ~300 times faster. mysql-test/r/lock_multi.result@1.29, 2007-08-11 14:07:47+04:00, kostja@bodhi.(none) +5 -3 Update result. mysql-test/t/lock_multi.test@1.31, 2007-08-11 14:07:47+04:00, kostja@bodhi.(none) +57 -33 A fix for Bug#29049 lock_multi fails in rare case. Replace all 'sleep's with wait_condition. This makes the test deterministic and also ~300 times faster. ChangeSet@1.2558.1.5, 2007-08-11 01:11:56+04:00, kostja@bodhi.(none) +2 -0 A fix for Bug#30212 events_logs_tests not deterministic; SLEEP(2), others Make the test deterministic. mysql-test/r/events_logs_tests.result@1.19, 2007-08-11 01:11:52+04:00, kostja@bodhi.(none) +66 -96 Update results (Bug#30212) mysql-test/t/events_logs_tests.test@1.20, 2007-08-11 01:11:52+04:00, kostja@bodhi.(none) +72 -100 A fix for Bug#30212 events_logs_tests not deterministic; SLEEP(2), others Make the test deterministic.