mariadb/mysql-test/suite/parts/r/partition_auto_increment_archive.result

817 lines
16 KiB
Text
Raw Normal View History

Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
DROP TABLE IF EXISTS t1;
# test without partitioning for reference
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1))
ENGINE='Archive';
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
1
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (4);
INSERT INTO t1 VALUES (NULL);
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
6
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
6
INSERT INTO t1 VALUES (0);
INSERT INTO t1 VALUES (5), (16);
INSERT INTO t1 VALUES (17);
INSERT INTO t1 VALUES (19), (NULL);
INSERT INTO t1 VALUES (NULL), (10), (NULL);
# ERROR (only OK if Archive) mysql_errno: 1022
INSERT INTO t1 VALUES (NULL);
SET INSERT_ID = 30;
INSERT INTO t1 VALUES (NULL);
Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry The bug was that when INSERT_ID was used and the storage engine was told to release any reserved but not used auto_increment values, it set the highest auto_increment value to INSERT_ID. The fix was to check if the auto_increment value was forced by user (INSERT_ID) or by slave-thread, i.e. not auto- generated. So that it is only allowed to release generated values. mysql-test/r/partition_error.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry updated result mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that archive does only allow increasing auto_increment values mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that blackhole accepts all inserts :) mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that innodb rolls back inserts on error, but keeps the auto_increment value. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that NDB does not seem to handle INSERT_ID as other engines. (Martin will look into it). mysql-test/t/partition_error.test: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test sql/ha_partition.cc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry If the next_insert_id comes from non generated (i.e forced by INSERT_ID or slave-thread) then we cannot lower the reserved auto_increment value, since it have not reserved any values.
2010-03-04 18:16:10 +01:00
SET INSERT_ID = 29;
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
INSERT INTO t1 VALUES (NULL);
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
6
17
19
20
21
22
30
Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry The bug was that when INSERT_ID was used and the storage engine was told to release any reserved but not used auto_increment values, it set the highest auto_increment value to INSERT_ID. The fix was to check if the auto_increment value was forced by user (INSERT_ID) or by slave-thread, i.e. not auto- generated. So that it is only allowed to release generated values. mysql-test/r/partition_error.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry updated result mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that archive does only allow increasing auto_increment values mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that blackhole accepts all inserts :) mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that innodb rolls back inserts on error, but keeps the auto_increment value. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that NDB does not seem to handle INSERT_ID as other engines. (Martin will look into it). mysql-test/t/partition_error.test: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test sql/ha_partition.cc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry If the next_insert_id comes from non generated (i.e forced by INSERT_ID or slave-thread) then we cannot lower the reserved auto_increment value, since it have not reserved any values.
2010-03-04 18:16:10 +01:00
31
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
DROP TABLE t1;
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1))
ENGINE='Archive';
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
FLUSH TABLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES (4);
FLUSH TABLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES (NULL);
FLUSH TABLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE AUTO_INCREMENT=6 DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
SELECT * FROM t1 ORDER BY c1;
c1
4
5
6
INSERT INTO t1 VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
SELECT * FROM t1 ORDER BY c1;
c1
4
5
6
7
Bug#40176: update as first partitioning statement breaks auto increment The auto_increment value was not initialized if the first statement after opening a table was an 'UPDATE'. solution was to check initialize if it was not, before trying to increase it in update. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#40176: update as first partitioning statement breaks auto increment Added tests for verifying the bug and show some more auto_increment flaws mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests sql/ha_partition.cc: Bug#40176: update as first partitioning statement breaks auto increment make sure that the auto_increment value is initialized before updating it. (missed initializing in mysql_update_row). sql/ha_partition.h: Bug#40176: update as first partitioning statement breaks auto increment Assert that it is initialized, before updating the auto_increment value
2008-10-23 22:14:07 +02:00
INSERT INTO t1 VALUES (100);
INSERT INTO t1 VALUES (NULL);
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
DROP TABLE t1;
# Simple test with NULL
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1))
ENGINE='Archive'
PARTITION BY HASH(c1)
PARTITIONS 2;
INSERT INTO t1 VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1;
c1
1
DROP TABLE t1;
# Test with sql_mode and first insert as 0
CREATE TABLE t1 (
c1 INT,
c2 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c2))
ENGINE='Archive'
PARTITION BY HASH(c2)
PARTITIONS 2;
INSERT INTO t1 VALUES (1, NULL);
INSERT INTO t1 VALUES (1, 1), (99, 99);
INSERT INTO t1 VALUES (1, NULL);
SET @@session.sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
INSERT INTO t1 VALUES (1, 0);
# ERROR (only OK if Archive) mysql_errno: 1022
SELECT * FROM t1 ORDER BY c1, c2;
c1 c2
1 1
1 2
DROP TABLE t1;
CREATE TABLE t1 (
c1 INT,
c2 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c2))
ENGINE='Archive'
PARTITION BY HASH(c2)
PARTITIONS 2;
INSERT INTO t1 VALUES (1, 0);
# ERROR (only OK if Archive) mysql_errno: 1022
INSERT INTO t1 VALUES (1, 1), (1, NULL);
INSERT INTO t1 VALUES (2, NULL), (4, 7);
INSERT INTO t1 VALUES (1, NULL);
SELECT * FROM t1 ORDER BY c1, c2;
c1 c2
1 1
1 2
1 8
2 3
4 7
SET @@session.sql_mode = '';
DROP TABLE t1;
# Simple test with NULL, 0 and explicit values both incr. and desc.
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1))
ENGINE='Archive'
PARTITION BY HASH(c1)
PARTITIONS 2;
INSERT INTO t1 VALUES (2), (4), (NULL);
INSERT INTO t1 VALUES (0);
INSERT INTO t1 VALUES (5), (16);
INSERT INTO t1 VALUES (17), (19), (NULL);
INSERT INTO t1 VALUES (NULL), (10), (NULL);
# ERROR (only OK if Archive) mysql_errno: 1022
INSERT INTO t1 VALUES (NULL), (9);
# ERROR (only OK if Archive) mysql_errno: 1022
INSERT INTO t1 VALUES (59), (55);
# ERROR (only OK if Archive) mysql_errno: 1022
INSERT INTO t1 VALUES (NULL), (90);
INSERT INTO t1 VALUES (NULL);
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
6
17
19
20
21
22
59
60
90
91
DROP TABLE t1;
# Test with auto_increment_increment and auto_increment_offset.
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1))
ENGINE='Archive'
PARTITION BY HASH(c1)
PARTITIONS 2;
SET @@session.auto_increment_increment = 10;
SET @@session.auto_increment_offset = 5;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
SET @@session.auto_increment_increment = 5;
SET @@session.auto_increment_offset = 3;
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (33 + 1);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (38 + 2);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (43 + 3);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (48 + 4);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (53 + 5);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (63 + 6);
INSERT INTO t1 VALUES (NULL);
SET @@session.auto_increment_increment = 1;
SET @@session.auto_increment_offset = 1;
SELECT * FROM t1 ORDER BY c1;
c1
1
5
15
25
33
34
38
40
43
46
48
52
53
58
63
69
73
DROP TABLE t1;
# Test reported auto_increment value
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1))
ENGINE='Archive'
PARTITION BY HASH (c1)
PARTITIONS 2;
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
1
INSERT INTO t1 VALUES (2);
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
3
INSERT INTO t1 VALUES (4);
INSERT INTO t1 VALUES (NULL);
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
6
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (17);
INSERT INTO t1 VALUES (19);
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL);
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
22
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
22
INSERT INTO t1 VALUES (10);
# ERROR (only OK if Archive) mysql_errno: 1022
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
6
17
19
20
21
INSERT INTO t1 VALUES (NULL);
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
AND TABLE_NAME='t1';
AUTO_INCREMENT
23
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (15);
# ERROR (only OK if Archive) mysql_errno: 1022
INSERT INTO t1 VALUES (NULL);
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
6
17
19
20
21
22
23
24
INSERT INTO t1 VALUES (NULL);
INSERT INTO t1 VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=27 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
6
17
19
20
21
22
23
24
25
26
INSERT INTO t1 VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=28 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
6
17
19
20
21
22
23
24
25
26
27
Bug#40176: update as first partitioning statement breaks auto increment The auto_increment value was not initialized if the first statement after opening a table was an 'UPDATE'. solution was to check initialize if it was not, before trying to increase it in update. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#40176: update as first partitioning statement breaks auto increment Added tests for verifying the bug and show some more auto_increment flaws mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#40176: update as first partitioning statement breaks auto increment Updated test results, due to added tests sql/ha_partition.cc: Bug#40176: update as first partitioning statement breaks auto increment make sure that the auto_increment value is initialized before updating it. (missed initializing in mysql_update_row). sql/ha_partition.h: Bug#40176: update as first partitioning statement breaks auto increment Assert that it is initialized, before updating the auto_increment value
2008-10-23 22:14:07 +02:00
INSERT INTO t1 VALUES (100);
INSERT INTO t1 VALUES (NULL);
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
2008-11-05 21:13:54 +01:00
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
DROP TABLE t1;
# Test with two threads
# con default
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
ENGINE = 'Archive'
PARTITION BY HASH(c1)
PARTITIONS 2;
INSERT INTO t1 (c1) VALUES (2);
INSERT INTO t1 (c1) VALUES (4);
# con1
INSERT INTO t1 (c1) VALUES (NULL);
INSERT INTO t1 (c1) VALUES (10);
# con default
INSERT INTO t1 (c1) VALUES (NULL);
INSERT INTO t1 (c1) VALUES (NULL);
INSERT INTO t1 (c1) VALUES (19);
INSERT INTO t1 (c1) VALUES (21);
# con1
INSERT INTO t1 (c1) VALUES (NULL);
# con default
INSERT INTO t1 (c1) VALUES (16);
# ERROR (only OK if Archive) mysql_errno: 1022
# con1
INSERT INTO t1 (c1) VALUES (NULL);
# con default
INSERT INTO t1 (c1) VALUES (NULL);
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
24
DROP TABLE t1;
# Test with two threads + start transaction NO PARTITIONING
# con default
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
ENGINE = 'Archive';
START TRANSACTION;
INSERT INTO t1 (c1) VALUES (2);
INSERT INTO t1 (c1) VALUES (4);
# con1
START TRANSACTION;
INSERT INTO t1 (c1) VALUES (NULL);
INSERT INTO t1 (c1) VALUES (10);
# con default
INSERT INTO t1 (c1) VALUES (NULL);
INSERT INTO t1 (c1) VALUES (NULL);
INSERT INTO t1 (c1) VALUES (19);
INSERT INTO t1 (c1) VALUES (21);
# con1
INSERT INTO t1 (c1) VALUES (NULL);
# con default
INSERT INTO t1 (c1) VALUES (16);
# ERROR (only OK if Archive) mysql_errno: 1022
# con1
INSERT INTO t1 (c1) VALUES (NULL);
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
COMMIT;
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
# con default
INSERT INTO t1 (c1) VALUES (NULL);
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
24
COMMIT;
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
24
DROP TABLE t1;
# Test with two threads + start transaction
# con default
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
ENGINE = 'Archive'
PARTITION BY HASH(c1)
PARTITIONS 2;
START TRANSACTION;
INSERT INTO t1 (c1) VALUES (2);
INSERT INTO t1 (c1) VALUES (4);
# con1
START TRANSACTION;
INSERT INTO t1 (c1) VALUES (NULL), (10);
# con default
INSERT INTO t1 (c1) VALUES (NULL), (NULL), (19);
INSERT INTO t1 (c1) VALUES (21);
# con1
INSERT INTO t1 (c1) VALUES (NULL);
# con default
INSERT INTO t1 (c1) VALUES (16);
# ERROR (only OK if Archive) mysql_errno: 1022
# con1
INSERT INTO t1 (c1) VALUES (NULL);
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
COMMIT;
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
# con default
INSERT INTO t1 (c1) VALUES (NULL);
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
24
COMMIT;
SELECT * FROM t1 ORDER BY c1;
c1
2
4
5
10
11
12
19
21
22
23
24
DROP TABLE t1;
# Test with another column before
CREATE TABLE t1 (
c1 INT,
c2 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c2))
ENGINE = 'Archive'
PARTITION BY HASH(c2)
PARTITIONS 2;
INSERT INTO t1 VALUES (1, 0);
INSERT INTO t1 VALUES (1, 1);
INSERT INTO t1 VALUES (1, NULL);
INSERT INTO t1 VALUES (2, NULL), (3, 11), (3, NULL), (2, 0);
INSERT INTO t1 VALUES (2, NULL);
INSERT INTO t1 VALUES (2, 2);
INSERT INTO t1 VALUES (2, 22);
INSERT INTO t1 VALUES (2, NULL);
SELECT * FROM t1 ORDER BY c1,c2;
c1 c2
1 1
1 2
2 3
2 13
2 14
2 22
2 23
3 11
3 12
DROP TABLE t1;
# Test with auto_increment on secondary column in multi-column-index
CREATE TABLE t1 (
c1 INT,
c2 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1,c2))
ENGINE = 'Archive'
PARTITION BY HASH(c2)
PARTITIONS 2;
ERROR 42000: Incorrect table definition; there can be only one auto column and it must be defined as a key
# Test AUTO_INCREMENT in CREATE
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
ENGINE = 'Archive'
AUTO_INCREMENT = 15
PARTITION BY HASH(c1)
PARTITIONS 2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=15 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 (c1) VALUES (4);
# ERROR (only OK if Archive) mysql_errno: 1022
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=15 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 (c1) VALUES (0);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=16 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 (c1) VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=17 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1 ORDER BY c1;
c1
15
16
# Test sql_mode 'NO_AUTO_VALUE_ON_ZERO'
SET @@session.sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
INSERT INTO t1 (c1) VALUES (300);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=301 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 (c1) VALUES (0);
# ERROR (only OK if Archive) mysql_errno: 1022
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=301 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 (c1) VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=302 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1 ORDER BY c1;
c1
15
16
300
301
SET @@session.sql_mode = '';
DROP TABLE t1;
# Test SET INSERT_ID
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
ENGINE = 'Archive'
PARTITION BY HASH(c1)
PARTITIONS 2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 (c1) VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1;
c1
1
SET INSERT_ID = 23;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 (c1) VALUES (NULL);
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry The bug was that when INSERT_ID was used and the storage engine was told to release any reserved but not used auto_increment values, it set the highest auto_increment value to INSERT_ID. The fix was to check if the auto_increment value was forced by user (INSERT_ID) or by slave-thread, i.e. not auto- generated. So that it is only allowed to release generated values. mysql-test/r/partition_error.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry updated result mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that archive does only allow increasing auto_increment values mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that blackhole accepts all inserts :) mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that innodb rolls back inserts on error, but keeps the auto_increment value. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that NDB does not seem to handle INSERT_ID as other engines. (Martin will look into it). mysql-test/t/partition_error.test: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test sql/ha_partition.cc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry If the next_insert_id comes from non generated (i.e forced by INSERT_ID or slave-thread) then we cannot lower the reserved auto_increment value, since it have not reserved any values.
2010-03-04 18:16:10 +01:00
SET INSERT_ID = 22;
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
INSERT INTO t1 VALUES (NULL);
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1 ORDER BY c1;
c1
1
Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry The bug was that when INSERT_ID was used and the storage engine was told to release any reserved but not used auto_increment values, it set the highest auto_increment value to INSERT_ID. The fix was to check if the auto_increment value was forced by user (INSERT_ID) or by slave-thread, i.e. not auto- generated. So that it is only allowed to release generated values. mysql-test/r/partition_error.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry updated result mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that archive does only allow increasing auto_increment values mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that blackhole accepts all inserts :) mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that innodb rolls back inserts on error, but keeps the auto_increment value. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that NDB does not seem to handle INSERT_ID as other engines. (Martin will look into it). mysql-test/t/partition_error.test: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test sql/ha_partition.cc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry If the next_insert_id comes from non generated (i.e forced by INSERT_ID or slave-thread) then we cannot lower the reserved auto_increment value, since it have not reserved any values.
2010-03-04 18:16:10 +01:00
22
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
23
Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry The bug was that when INSERT_ID was used and the storage engine was told to release any reserved but not used auto_increment values, it set the highest auto_increment value to INSERT_ID. The fix was to check if the auto_increment value was forced by user (INSERT_ID) or by slave-thread, i.e. not auto- generated. So that it is only allowed to release generated values. mysql-test/r/partition_error.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry updated result mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that archive does only allow increasing auto_increment values mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that blackhole accepts all inserts :) mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that innodb rolls back inserts on error, but keeps the auto_increment value. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that memory and myisam inserts all rows before the error. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added result, note that NDB does not seem to handle INSERT_ID as other engines. (Martin will look into it). mysql-test/t/partition_error.test: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry Added test sql/ha_partition.cc: Bug#50392: insert_id is not reset for partitioned tables auto_increment on duplicate entry If the next_insert_id comes from non generated (i.e forced by INSERT_ID or slave-thread) then we cannot lower the reserved auto_increment value, since it have not reserved any values.
2010-03-04 18:16:10 +01:00
24
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
DROP TABLE t1;
# Testing with FLUSH TABLE
CREATE TABLE t1 (
c1 INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (c1))
ENGINE='Archive'
PARTITION BY HASH(c1)
PARTITIONS 2;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
FLUSH TABLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 VALUES (4);
FLUSH TABLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
INSERT INTO t1 VALUES (NULL);
FLUSH TABLE;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output The partitioning clause is only a very long single line, which is very hard to interpret for a human. This patch breaks the partitioning syntax into one line for the partitioning type, and one line per partition/subpartition. mysql-test/r/information_schema_part.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_datatype.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_mgm_err.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_not_windows.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/r/partition_symlink.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_key.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb/r/ndb_partition_range.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/inc/partition_directory.inc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed partitioning clause format for verifying the new output format. mysql-test/suite/parts/r/ndb_dd_backuprestore.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/part_supported_sql_func_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter1_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter2_2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter3_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_alter4_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_basic_symlink_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_bit_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_char_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_datetime_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_decimal_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_engine_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_float_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_int_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_archive.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_memory.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_special_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/partition_syntax_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/parts/r/rpl_partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_extraCol_myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_innodb_bug28430.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl/r/rpl_row_basic_8partition.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2innodb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_2myisam.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/suite/rpl_ndb/r/rpl_ndb_myisam2ndb.result: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Updated test result due to the new partitioning clause output format. mysql-test/t/partition.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. mysql-test/t/partition_mgm.test: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Added small tests for for the new partitioning clause output format. sql/sql_partition.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines sql/sql_show.cc: Bug#14326: No formatting of partitioning clause in SHOW CREATE TABLE output Changed formatting of the partitioning clause from single line into multiple indented lines
2008-11-04 08:43:21 +01:00
) ENGINE=ARCHIVE AUTO_INCREMENT=6 DEFAULT CHARSET=latin1
/*!50100 PARTITION BY HASH (c1)
PARTITIONS 2 */
Bug#38804: Query deadlock causes all tables to be inaccessible. Problem was a mutex added in bug n 27405 for solving a problem with auto_increment in partitioned innodb tables. (in ha_partition::write_row over partitions file->ha_write_row) Solution is to use the patch for bug#33479, which refines the usage of mutexes for auto_increment. Backport of bug-33479 from 6.0: Bug-33479: auto_increment failures in partitioning Several problems with auto_increment in partitioning (with MyISAM, InnoDB. Locking issues, not handling multi-row INSERTs properly etc.) Changed the auto_increment handling for partitioning: Added a ha_data variable in table_share for storage engine specific data such as auto_increment value handling in partitioning, also see WL 4305 and using the ha_data->mutex to lock around read + update. The idea is this: Store the table's reserved auto_increment value in the TABLE_SHARE and use a mutex to, lock it for reading and updating it and unlocking it, in one block. Only accessing all partitions when it is not initialized. Also allow reservations of ranges, and if no one has done a reservation afterwards, lower the reservation to what was actually used after the statement is done (via release_auto_increment from WL 3146). The lock is kept from the first reservation if it is statement based replication and a multi-row INSERT statement where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA, unlike INSERT VALUES (row1), (row2),,(rowN)). This should also lead to better concurrancy (no need to have a mutex protection around write_row in all cases) and work with any local storage engine. mysql-test/suite/parts/inc/partition_auto_increment.inc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Test source file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_archive.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_blackhole.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_innodb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_memory.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_myisam.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/r/partition_auto_increment_ndb.result: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning result file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_archive.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_blackhole.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_innodb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_memory.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_myisam.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment mysql-test/suite/parts/t/partition_auto_increment_ndb.test: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning test file for testing auto_increment sql/ha_partition.cc: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Changed ha_partition::get_auto_increment from file->get_auto_increment to file->info(HA_AUTO_STATUS), since it is works better with InnoDB (InnoDB can have issues with partitioning and auto_increment, where get_auto_increment sometimes can return a non updated value.) Using the new table_share->ha_data for keeping the auto_increment value, shared by all instances of the same table. It is read+updated when holding a auto_increment specific mutex. Also added release_auto_increment to decrease gaps if possible. And a lock for multi-row INSERT statements where the number of candidate rows to insert is not known in advance (like INSERT SELECT, LOAD DATA; Unlike INSERT INTO (row1),(row2),,(rowN)). Fixed a small bug, copied++ to (*copied)++ and the same for deleted. Changed from current_thd, to ha_thd() sql/ha_partition.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a new struct HA_DATA_PARTITION to be used in table_share->ha_data Added a private function to set auto_increment values if needed Removed the restore_auto_increment (the hander version is better) Added lock/unlock functions for auto_increment handling. Changed copied/deleted to const. sql/handler.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: auto_increment failures in partitioning Added const for changed_partitions Added comments about SQLCOM_TRUNCATE for delete_all_rows sql/table.h: Bug#38804: Query deadlock causes all tables to be inaccessible. Backporting from 6.0 of: Bug-33479: Failures using auto_increment and partitioning Added a variable in table_share: ha_data for storage of storage engine specific data (such as auto_increment handling in partitioning).
2008-09-08 15:30:01 +02:00
SELECT * FROM t1 ORDER BY c1;
c1
4
5
DROP TABLE t1;