mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merge 5.1-bugteam -> bug 32124 5.1 tree
This commit is contained in:
@ -43,8 +43,6 @@ INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
|
||||
UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
|
||||
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
|
||||
ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
|
||||
TRUNCATE t1m;
|
||||
TRUNCATE t1b;
|
||||
TRUNCATE t1n;
|
||||
@ -68,20 +66,21 @@ RESET MASTER;
|
||||
SET SESSION BINLOG_FORMAT=ROW;
|
||||
INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
ERROR HY000: Binary logging not possible. Message: Row-based format required for this statement, but not allowed by this combination of engines
|
||||
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
|
||||
ERROR HY000: Binary logging not possible. Message: Row-based format required for this statement, but not allowed by this combination of engines
|
||||
UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
|
||||
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
|
||||
ERROR HY000: Binary logging not possible. Message: Row-based format required for this statement, but not allowed by this combination of engines
|
||||
ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1m)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1b)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1n)
|
||||
master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
|
||||
|
@ -1090,6 +1090,53 @@ master-bin.000001 295 Table_map 1 337 table_id: # (test.t1)
|
||||
master-bin.000001 337 Write_rows 1 383 table_id: # flags: STMT_END_F
|
||||
master-bin.000001 383 Query 1 452 use `test`; COMMIT
|
||||
master-bin.000001 452 Query 1 528 use `test`; drop table t1
|
||||
reset master;
|
||||
CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
USE bug39182;
|
||||
CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
|
||||
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
DECLARE s1 VARCHAR(255);
|
||||
SET s1= "test";
|
||||
CREATE TEMPORARY TABLE tmp1
|
||||
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
|
||||
SELECT
|
||||
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
|
||||
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
|
||||
COLLATION(s1) c3,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
|
||||
COERCIBILITY(s1) d3;
|
||||
DROP TEMPORARY TABLE tmp1;
|
||||
END//
|
||||
CALL p1();
|
||||
c1 c2 c3 d1 d2 d3
|
||||
utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
|
||||
master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
|
||||
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
|
||||
BEGIN
|
||||
DECLARE s1 VARCHAR(255);
|
||||
SET s1= "test";
|
||||
CREATE TEMPORARY TABLE tmp1
|
||||
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
|
||||
SELECT
|
||||
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
|
||||
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
|
||||
COLLATION(s1) c3,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
|
||||
COERCIBILITY(s1) d3;
|
||||
DROP TEMPORARY TABLE tmp1;
|
||||
END
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE bug39182;
|
||||
USE test;
|
||||
End of 5.0 tests
|
||||
reset master;
|
||||
create table t1 (id tinyint auto_increment primary key);
|
||||
|
@ -594,6 +594,56 @@ master-bin.000001 4 Format_desc 1 106 Server version, Binlog ver: 4
|
||||
master-bin.000001 106 Query 1 227 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned)
|
||||
master-bin.000001 227 Query 1 351 use `test`; insert into t1 values (9999999999999999,14632475938453979136)
|
||||
master-bin.000001 351 Query 1 427 use `test`; drop table t1
|
||||
reset master;
|
||||
CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
USE bug39182;
|
||||
CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
|
||||
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
DECLARE s1 VARCHAR(255);
|
||||
SET s1= "test";
|
||||
CREATE TEMPORARY TABLE tmp1
|
||||
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
|
||||
SELECT
|
||||
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
|
||||
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
|
||||
COLLATION(s1) c3,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
|
||||
COERCIBILITY(s1) d3;
|
||||
DROP TEMPORARY TABLE tmp1;
|
||||
END//
|
||||
CALL p1();
|
||||
c1 c2 c3 d1 d2 d3
|
||||
utf8_general_ci utf8_unicode_ci utf8_unicode_ci 2 2 2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
|
||||
master-bin.000001 # Query # # use `bug39182`; CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
|
||||
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
master-bin.000001 # Query # # use `bug39182`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
|
||||
BEGIN
|
||||
DECLARE s1 VARCHAR(255);
|
||||
SET s1= "test";
|
||||
CREATE TEMPORARY TABLE tmp1
|
||||
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
|
||||
SELECT
|
||||
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
|
||||
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
|
||||
COLLATION(s1) c3,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
|
||||
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
|
||||
COERCIBILITY(s1) d3;
|
||||
DROP TEMPORARY TABLE tmp1;
|
||||
END
|
||||
master-bin.000001 # Query # # use `bug39182`; CREATE TEMPORARY TABLE tmp1
|
||||
SELECT * FROM t1 WHERE a LIKE CONCAT("%", NAME_CONST('s1',_utf8'test' COLLATE 'utf8_unicode_ci'), "%")
|
||||
master-bin.000001 # Query # # use `bug39182`; DROP TEMPORARY TABLE tmp1
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE bug39182;
|
||||
USE test;
|
||||
End of 5.0 tests
|
||||
reset master;
|
||||
create table t1 (id tinyint auto_increment primary key);
|
||||
|
@ -141,7 +141,6 @@ master-bin.000001 # Query # # use `test`; COMMIT
|
||||
drop table t1,t2,t3;
|
||||
CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
|
||||
INSERT DELAYED INTO t1 VALUES(1);
|
||||
ERROR HY000: Binary logging not possible. Message: Row-based format required for this statement, but not allowed by this combination of engines
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a INT, b INT) ENGINE=BLACKHOLE;
|
||||
DELETE FROM t1 WHERE a=10;
|
||||
|
@ -69,9 +69,6 @@ UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
|
||||
#UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
|
||||
error ER_BINLOG_LOGGING_IMPOSSIBLE;
|
||||
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
|
||||
|
||||
TRUNCATE t1m;
|
||||
TRUNCATE t1b;
|
||||
TRUNCATE t1n;
|
||||
@ -83,12 +80,10 @@ RESET MASTER;
|
||||
SET SESSION BINLOG_FORMAT=ROW;
|
||||
|
||||
INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
error ER_BINLOG_LOGGING_IMPOSSIBLE;
|
||||
|
||||
INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
|
||||
error ER_BINLOG_LOGGING_IMPOSSIBLE;
|
||||
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
|
||||
error ER_BINLOG_LOGGING_IMPOSSIBLE;
|
||||
UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
|
||||
|
@ -12,6 +12,5 @@
|
||||
partition_03ndb : BUG#16385 2006-03-24 mikael Partitions: crash when updating a range partitioned NDB table
|
||||
|
||||
ndb_partition_error2 : HF is not sure if the test can work as internded on all the platforms
|
||||
ndb_index_ordered : Bug#38370 The test ndb.ndb_index_ordered fails with the community features on
|
||||
|
||||
# the below testcase have been reworked to avoid the bug, test contains comment, keep bug open
|
||||
|
600
mysql-test/suite/parts/inc/partition_auto_increment.inc
Normal file
600
mysql-test/suite/parts/inc/partition_auto_increment.inc
Normal file
@ -0,0 +1,600 @@
|
||||
# inc/partition_auto_increment.inc
|
||||
#
|
||||
# auto_increment test
|
||||
# used variables: $engine
|
||||
#
|
||||
|
||||
-- disable_warnings
|
||||
DROP TABLE IF EXISTS t1;
|
||||
-- enable_warnings
|
||||
|
||||
-- echo # test without partitioning for reference
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE=$engine;
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
|
||||
AND TABLE_NAME='t1';
|
||||
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';
|
||||
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
|
||||
AND TABLE_NAME='t1';
|
||||
INSERT INTO t1 VALUES (0);
|
||||
-- error 0, ER_DUP_KEY, ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (5), (16);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (17);
|
||||
INSERT INTO t1 VALUES (19), (NULL);
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (NULL), (10), (NULL);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SET INSERT_ID = 30;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
if (!$skip_update)
|
||||
{
|
||||
UPDATE t1 SET c1 = 50 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 51 WHERE c1 = 19;
|
||||
-- error 0, ER_BAD_NULL_ERROR
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
}
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE=$engine;
|
||||
SHOW CREATE TABLE t1;
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (4);
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
if (!$skip_delete)
|
||||
{
|
||||
DELETE FROM t1;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
if (!$skip_truncate)
|
||||
{
|
||||
TRUNCATE TABLE t1;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Simple test with NULL
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE=$engine
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Test with sql_mode and first insert as 0
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE=$engine
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, NULL);
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (1, 1), (99, 99);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (1, NULL);
|
||||
let $old_sql_mode = `select @@session.sql_mode`;
|
||||
SET @@session.sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
SELECT * FROM t1 ORDER BY c1, c2;
|
||||
DROP TABLE t1;
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE=$engine
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
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;
|
||||
eval SET @@session.sql_mode = '$old_sql_mode';
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
-- echo # Simple test with NULL, 0 and explicit values both incr. and desc.
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE=$engine
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (2), (4), (NULL);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (5), (16);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (17), (19), (NULL);
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (NULL), (10), (NULL);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (NULL), (9);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (59), (55);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL), (90);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
if (!$skip_update)
|
||||
{
|
||||
UPDATE t1 SET c1 = 150 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 151 WHERE c1 = 19;
|
||||
-- error 0, ER_BAD_NULL_ERROR
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
}
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Test with auto_increment_increment and auto_increment_offset.
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE=$engine
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
let $old_increment = `SELECT @@session.auto_increment_increment`;
|
||||
let $old_offset = `SELECT @@session.auto_increment_offset`;
|
||||
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);
|
||||
let $new_val = `SELECT LAST_INSERT_ID()`;
|
||||
eval INSERT INTO t1 VALUES ($new_val + 1);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
let $new_val = `SELECT LAST_INSERT_ID()`;
|
||||
eval INSERT INTO t1 VALUES ($new_val + 2);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
let $new_val = `SELECT LAST_INSERT_ID()`;
|
||||
eval INSERT INTO t1 VALUES ($new_val + 3);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
let $new_val = `SELECT LAST_INSERT_ID()`;
|
||||
eval INSERT INTO t1 VALUES ($new_val + 4);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
let $new_val = `SELECT LAST_INSERT_ID()`;
|
||||
eval INSERT INTO t1 VALUES ($new_val + 5);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
let $new_val = `SELECT LAST_INSERT_ID()`;
|
||||
eval INSERT INTO t1 VALUES ($new_val + 6);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
eval SET @@session.auto_increment_increment = $old_increment;
|
||||
eval SET @@session.auto_increment_offset = $old_offset;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
-- echo # Test reported auto_increment value
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE=$engine
|
||||
PARTITION BY HASH (c1)
|
||||
PARTITIONS 2;
|
||||
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
|
||||
AND TABLE_NAME='t1';
|
||||
INSERT INTO t1 VALUES (2);
|
||||
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
|
||||
AND TABLE_NAME='t1';
|
||||
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';
|
||||
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';
|
||||
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
|
||||
AND TABLE_NAME='t1';
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (10);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
|
||||
AND TABLE_NAME='t1';
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (15);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
if (!$skip_delete)
|
||||
{
|
||||
DELETE FROM t1;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
if (!$skip_truncate)
|
||||
{
|
||||
TRUNCATE TABLE t1;
|
||||
}
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Test with two threads
|
||||
connection default;
|
||||
-- echo # con default
|
||||
eval CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = $engine
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 (c1) VALUES (2);
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
connect(con1, localhost, root,,);
|
||||
connection con1;
|
||||
-- echo # con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
INSERT INTO t1 (c1) VALUES (10);
|
||||
connection default;
|
||||
-- echo # 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);
|
||||
-- echo # con1
|
||||
connection con1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
connection default;
|
||||
-- echo # con default
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 (c1) VALUES (16);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
-- echo # con1
|
||||
connection con1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
disconnect con1;
|
||||
connection default;
|
||||
-- echo # con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Test with two threads + start transaction NO PARTITIONING
|
||||
connect(con1, localhost, root,,);
|
||||
connection default;
|
||||
-- echo # con default
|
||||
eval CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = $engine;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 (c1) VALUES (2);
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
connection con1;
|
||||
-- echo # con1
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
INSERT INTO t1 (c1) VALUES (10);
|
||||
connection default;
|
||||
-- echo # 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);
|
||||
-- echo # con1
|
||||
connection con1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
connection default;
|
||||
-- echo # con default
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 (c1) VALUES (16);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
-- echo # con1
|
||||
connection con1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
disconnect con1;
|
||||
connection default;
|
||||
-- echo # con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Test with two threads + start transaction
|
||||
connect(con1, localhost, root,,);
|
||||
connection default;
|
||||
-- echo # con default
|
||||
eval CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = $engine
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 (c1) VALUES (2);
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
connection con1;
|
||||
-- echo # con1
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 (c1) VALUES (NULL), (10);
|
||||
connection default;
|
||||
-- echo # con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL), (NULL), (19);
|
||||
INSERT INTO t1 (c1) VALUES (21);
|
||||
-- echo # con1
|
||||
connection con1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
connection default;
|
||||
-- echo # con default
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 (c1) VALUES (16);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
-- echo # con1
|
||||
connection con1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
disconnect con1;
|
||||
connection default;
|
||||
-- echo # con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
if (!$only_ai_pk)
|
||||
{
|
||||
-- echo # Test with another column after
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
c2 INT,
|
||||
PRIMARY KEY (c1,c2))
|
||||
ENGINE = $engine
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
|
||||
INSERT INTO t1 VALUES (NULL, 3);
|
||||
INSERT INTO t1 VALUES (2, 0), (NULL, 2);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (NULL, 2);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
DROP TABLE t1;
|
||||
}
|
||||
|
||||
-- echo # Test with another column before
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE = $engine
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
-- error 0, ER_DUP_KEY, ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (1, NULL);
|
||||
INSERT INTO t1 VALUES (2, NULL), (3, 11), (3, NULL), (2, 0);
|
||||
INSERT INTO t1 VALUES (2, NULL);
|
||||
-- error 0, ER_DUP_KEY, ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (2, NULL);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Test with auto_increment on secondary column in multi-column-index
|
||||
-- disable_abort_on_error
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1,c2))
|
||||
ENGINE = $engine
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
-- enable_abort_on_error
|
||||
-- disable_query_log
|
||||
eval SET @my_errno= $mysql_errno ;
|
||||
let $run = `SELECT @my_errno = 0`;
|
||||
# ER_WRONG_AUTO_KEY is 1075
|
||||
let $ER_WRONG_AUTO_KEY= 1075;
|
||||
if (`SELECT @my_errno NOT IN (0,$ER_WRONG_AUTO_KEY)`)
|
||||
{
|
||||
-- echo # Unknown error code, exits
|
||||
exit;
|
||||
}
|
||||
-- enable_query_log
|
||||
if ($run)
|
||||
{
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
-- error 0, ER_DUP_KEY, ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (1, NULL);
|
||||
INSERT INTO t1 VALUES (2, NULL);
|
||||
INSERT INTO t1 VALUES (3, NULL);
|
||||
INSERT INTO t1 VALUES (3, NULL), (2, 0), (2, NULL);
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Blackhole/NDB) should give ER_DUP_KEY or ER_DUP_ENTRY;
|
||||
}
|
||||
INSERT INTO t1 VALUES (2, 22), (2, NULL);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
DROP TABLE t1;
|
||||
}
|
||||
|
||||
-- echo # Test AUTO_INCREMENT in CREATE
|
||||
eval CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = $engine
|
||||
AUTO_INCREMENT = 15
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 (c1) VALUES (0);
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
|
||||
-- echo # Test sql_mode 'NO_AUTO_VALUE_ON_ZERO'
|
||||
let $old_sql_mode = `select @@session.sql_mode`;
|
||||
SET @@session.sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
||||
INSERT INTO t1 (c1) VALUES (300);
|
||||
SHOW CREATE TABLE t1;
|
||||
-- error 0, ER_DUP_KEY
|
||||
INSERT INTO t1 (c1) VALUES (0);
|
||||
if ($mysql_errno)
|
||||
{
|
||||
echo # ERROR (only OK if Archive) mysql_errno: $mysql_errno;
|
||||
}
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
eval SET @@session.sql_mode = '$old_sql_mode';
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Test SET INSERT_ID
|
||||
eval CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = $engine
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1;
|
||||
SET INSERT_ID = 23;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
-- echo # Testing with FLUSH TABLE
|
||||
eval CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE=$engine
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
SHOW CREATE TABLE t1;
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (4);
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
747
mysql-test/suite/parts/r/partition_auto_increment_archive.result
Normal file
747
mysql-test/suite/parts/r/partition_auto_increment_archive.result
Normal file
@ -0,0 +1,747 @@
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
17
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
30
|
||||
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
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=27 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=28 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
17
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=16 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=302 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ARCHIVE AUTO_INCREMENT=24 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
23
|
||||
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`)
|
||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
5
|
||||
DROP TABLE t1;
|
@ -0,0 +1,570 @@
|
||||
DROP TABLE IF EXISTS t1;
|
||||
# test without partitioning for reference
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Blackhole';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=BLACKHOLE 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
|
||||
1
|
||||
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
|
||||
AND TABLE_NAME='t1';
|
||||
AUTO_INCREMENT
|
||||
1
|
||||
INSERT INTO t1 VALUES (0);
|
||||
INSERT INTO t1 VALUES (5), (16);
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (17);
|
||||
INSERT INTO t1 VALUES (19), (NULL);
|
||||
INSERT INTO t1 VALUES (NULL), (10), (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SET INSERT_ID = 30;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 50 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 51 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Blackhole';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=BLACKHOLE 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=BLACKHOLE 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=BLACKHOLE 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=BLACKHOLE DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1;
|
||||
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=BLACKHOLE DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
TRUNCATE TABLE t1;
|
||||
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=BLACKHOLE DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
DROP TABLE t1;
|
||||
# Simple test with NULL
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Blackhole'
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
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='Blackhole'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, NULL);
|
||||
INSERT INTO t1 VALUES (1, 1), (99, 99);
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (1, NULL);
|
||||
SET @@session.sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
SELECT * FROM t1 ORDER BY c1, c2;
|
||||
c1 c2
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE='Blackhole'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
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
|
||||
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='Blackhole'
|
||||
PARTITION BY HASH(c1)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (2), (4), (NULL);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
INSERT INTO t1 VALUES (5), (16);
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (17), (19), (NULL);
|
||||
INSERT INTO t1 VALUES (NULL), (10), (NULL);
|
||||
INSERT INTO t1 VALUES (NULL), (9);
|
||||
INSERT INTO t1 VALUES (59), (55);
|
||||
INSERT INTO t1 VALUES (NULL), (90);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 150 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 151 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
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='Blackhole'
|
||||
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
|
||||
DROP TABLE t1;
|
||||
# Test reported auto_increment value
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Blackhole'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
DELETE FROM t1;
|
||||
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=BLACKHOLE AUTO_INCREMENT=27 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
TRUNCATE TABLE t1;
|
||||
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=BLACKHOLE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
DROP TABLE t1;
|
||||
# Test with two threads
|
||||
# con default
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'Blackhole'
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
# con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
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 = 'Blackhole';
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
# con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
DROP TABLE t1;
|
||||
# Test with two threads + start transaction
|
||||
# con default
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'Blackhole'
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
# con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
DROP TABLE t1;
|
||||
# Test with another column after
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
c2 INT,
|
||||
PRIMARY KEY (c1,c2))
|
||||
ENGINE = 'Blackhole'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
|
||||
INSERT INTO t1 VALUES (NULL, 3);
|
||||
INSERT INTO t1 VALUES (2, 0), (NULL, 2);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (NULL, 2);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
DROP TABLE t1;
|
||||
# Test with another column before
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE = 'Blackhole'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
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);
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (2, NULL);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
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 = 'Blackhole'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
# ERROR (only OK if Blackhole) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (1, NULL);
|
||||
INSERT INTO t1 VALUES (2, NULL);
|
||||
INSERT INTO t1 VALUES (3, NULL);
|
||||
INSERT INTO t1 VALUES (3, NULL), (2, 0), (2, NULL);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
# ERROR (only OK if Blackhole/NDB) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (2, 22), (2, NULL);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
DROP TABLE t1;
|
||||
# Test AUTO_INCREMENT in CREATE
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'Blackhole'
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
# 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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=302 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
SET @@session.sql_mode = '';
|
||||
DROP TABLE t1;
|
||||
# Test SET INSERT_ID
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'Blackhole'
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1;
|
||||
c1
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE AUTO_INCREMENT=24 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
DROP TABLE t1;
|
||||
# Testing with FLUSH TABLE
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Blackhole'
|
||||
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`)
|
||||
) ENGINE=BLACKHOLE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=BLACKHOLE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=BLACKHOLE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=BLACKHOLE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
DROP TABLE t1;
|
747
mysql-test/suite/parts/r/partition_auto_increment_innodb.result
Normal file
747
mysql-test/suite/parts/r/partition_auto_increment_innodb.result
Normal file
@ -0,0 +1,747 @@
|
||||
DROP TABLE IF EXISTS t1;
|
||||
# test without partitioning for reference
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='InnoDB';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB 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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SET INSERT_ID = 30;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 50 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 51 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
20
|
||||
22
|
||||
23
|
||||
25
|
||||
30
|
||||
31
|
||||
32
|
||||
50
|
||||
51
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='InnoDB';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB 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=InnoDB 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=InnoDB 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=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1;
|
||||
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=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
6
|
||||
TRUNCATE TABLE t1;
|
||||
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=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Simple test with NULL
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='InnoDB'
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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='InnoDB'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1, c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
1 2
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE='InnoDB'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
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 0
|
||||
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='InnoDB'
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL), (9);
|
||||
INSERT INTO t1 VALUES (59), (55);
|
||||
INSERT INTO t1 VALUES (NULL), (90);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 150 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 151 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
9
|
||||
10
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
55
|
||||
59
|
||||
60
|
||||
90
|
||||
91
|
||||
150
|
||||
151
|
||||
152
|
||||
153
|
||||
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='InnoDB'
|
||||
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='InnoDB'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
15
|
||||
17
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
DELETE FROM t1;
|
||||
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=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
26
|
||||
TRUNCATE TABLE t1;
|
||||
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=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Test with two threads
|
||||
# con default
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'InnoDB'
|
||||
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);
|
||||
# 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
|
||||
16
|
||||
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 = 'InnoDB';
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
# con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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 = 'InnoDB'
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
# con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
DROP TABLE t1;
|
||||
# Test with another column after
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
c2 INT,
|
||||
PRIMARY KEY (c1,c2))
|
||||
ENGINE = 'InnoDB'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
|
||||
INSERT INTO t1 VALUES (NULL, 3);
|
||||
INSERT INTO t1 VALUES (2, 0), (NULL, 2);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (NULL, 2);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
2 0
|
||||
2 1
|
||||
2 2
|
||||
2 22
|
||||
3 2
|
||||
4 3
|
||||
5 3
|
||||
6 2
|
||||
7 2
|
||||
DROP TABLE t1;
|
||||
# Test with another column before
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE = 'InnoDB'
|
||||
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 = 'InnoDB'
|
||||
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 = 'InnoDB'
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=302 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
0
|
||||
4
|
||||
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 = 'InnoDB'
|
||||
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`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
23
|
||||
DROP TABLE t1;
|
||||
# Testing with FLUSH TABLE
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='InnoDB'
|
||||
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`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
5
|
||||
DROP TABLE t1;
|
775
mysql-test/suite/parts/r/partition_auto_increment_memory.result
Normal file
775
mysql-test/suite/parts/r/partition_auto_increment_memory.result
Normal file
@ -0,0 +1,775 @@
|
||||
DROP TABLE IF EXISTS t1;
|
||||
# test without partitioning for reference
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Memory';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MEMORY 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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SET INSERT_ID = 30;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 50 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 51 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
30
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Memory';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MEMORY 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=MEMORY 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=MEMORY 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=MEMORY AUTO_INCREMENT=6 DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1;
|
||||
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=MEMORY AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
6
|
||||
TRUNCATE TABLE t1;
|
||||
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=MEMORY AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Simple test with NULL
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Memory'
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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='Memory'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1, c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
1 2
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE='Memory'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
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 0
|
||||
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='Memory'
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL), (9);
|
||||
INSERT INTO t1 VALUES (59), (55);
|
||||
INSERT INTO t1 VALUES (NULL), (90);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 150 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 151 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
9
|
||||
10
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
55
|
||||
59
|
||||
60
|
||||
90
|
||||
91
|
||||
150
|
||||
151
|
||||
152
|
||||
153
|
||||
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='Memory'
|
||||
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='Memory'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
15
|
||||
17
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
DELETE FROM t1;
|
||||
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=MEMORY AUTO_INCREMENT=27 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
26
|
||||
TRUNCATE TABLE t1;
|
||||
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=MEMORY AUTO_INCREMENT=28 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
27
|
||||
DROP TABLE t1;
|
||||
# Test with two threads
|
||||
# con default
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'Memory'
|
||||
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);
|
||||
# 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
|
||||
16
|
||||
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 = 'Memory';
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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 = 'Memory'
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
DROP TABLE t1;
|
||||
# Test with another column after
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
c2 INT,
|
||||
PRIMARY KEY (c1,c2))
|
||||
ENGINE = 'Memory'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
|
||||
INSERT INTO t1 VALUES (NULL, 3);
|
||||
INSERT INTO t1 VALUES (2, 0), (NULL, 2);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (NULL, 2);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
2 0
|
||||
2 1
|
||||
2 2
|
||||
2 22
|
||||
3 2
|
||||
4 3
|
||||
5 3
|
||||
6 2
|
||||
7 2
|
||||
DROP TABLE t1;
|
||||
# Test with another column before
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE = 'Memory'
|
||||
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 = 'Memory'
|
||||
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 = 'Memory'
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=16 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=302 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
0
|
||||
4
|
||||
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 = 'Memory'
|
||||
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`)
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MEMORY AUTO_INCREMENT=24 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
23
|
||||
DROP TABLE t1;
|
||||
# Testing with FLUSH TABLE
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='Memory'
|
||||
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`)
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=MEMORY AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=MEMORY AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
5
|
||||
DROP TABLE t1;
|
794
mysql-test/suite/parts/r/partition_auto_increment_myisam.result
Normal file
794
mysql-test/suite/parts/r/partition_auto_increment_myisam.result
Normal file
@ -0,0 +1,794 @@
|
||||
DROP TABLE IF EXISTS t1;
|
||||
# test without partitioning for reference
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='MyISAM';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MyISAM 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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SET INSERT_ID = 30;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 50 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 51 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
30
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='MyISAM';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MyISAM 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=MyISAM 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=MyISAM 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=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1;
|
||||
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=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
6
|
||||
TRUNCATE TABLE t1;
|
||||
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=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Simple test with NULL
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='MyISAM'
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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='MyISAM'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1, c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
1 2
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE='MyISAM'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
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 0
|
||||
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='MyISAM'
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL), (9);
|
||||
INSERT INTO t1 VALUES (59), (55);
|
||||
INSERT INTO t1 VALUES (NULL), (90);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 150 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 151 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
9
|
||||
10
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
55
|
||||
59
|
||||
60
|
||||
90
|
||||
91
|
||||
150
|
||||
151
|
||||
152
|
||||
153
|
||||
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='MyISAM'
|
||||
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='MyISAM'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
15
|
||||
17
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
DELETE FROM t1;
|
||||
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=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
26
|
||||
TRUNCATE TABLE t1;
|
||||
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=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
27
|
||||
DROP TABLE t1;
|
||||
# Test with two threads
|
||||
# con default
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'MyISAM'
|
||||
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);
|
||||
# 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
|
||||
16
|
||||
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 = 'MyISAM';
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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 = 'MyISAM'
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
DROP TABLE t1;
|
||||
# Test with another column after
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
c2 INT,
|
||||
PRIMARY KEY (c1,c2))
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
|
||||
INSERT INTO t1 VALUES (NULL, 3);
|
||||
INSERT INTO t1 VALUES (2, 0), (NULL, 2);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (NULL, 2);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
2 0
|
||||
2 1
|
||||
2 2
|
||||
2 22
|
||||
3 2
|
||||
4 3
|
||||
5 3
|
||||
6 2
|
||||
7 2
|
||||
DROP TABLE t1;
|
||||
# Test with another column before
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE = 'MyISAM'
|
||||
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 = 'MyISAM'
|
||||
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);
|
||||
INSERT INTO t1 VALUES (3, NULL);
|
||||
INSERT INTO t1 VALUES (3, NULL), (2, 0), (2, NULL);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (2, 22), (2, NULL);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
1 1
|
||||
1 2
|
||||
2 1
|
||||
2 2
|
||||
2 3
|
||||
2 22
|
||||
2 23
|
||||
3 1
|
||||
3 2
|
||||
DROP TABLE t1;
|
||||
# Test AUTO_INCREMENT in CREATE
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'MyISAM'
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=301 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=302 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
0
|
||||
4
|
||||
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 = 'MyISAM'
|
||||
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`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=24 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
23
|
||||
DROP TABLE t1;
|
||||
# Testing with FLUSH TABLE
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='MyISAM'
|
||||
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`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
5
|
||||
DROP TABLE t1;
|
769
mysql-test/suite/parts/r/partition_auto_increment_ndb.result
Normal file
769
mysql-test/suite/parts/r/partition_auto_increment_ndb.result
Normal file
@ -0,0 +1,769 @@
|
||||
SET new=on;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
# test without partitioning for reference
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='NDB';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=ndbcluster 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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SET INSERT_ID = 30;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 50 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 51 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
30
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='NDB';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=ndbcluster 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=ndbcluster 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=ndbcluster 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=ndbcluster DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1;
|
||||
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=ndbcluster DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
6
|
||||
TRUNCATE TABLE t1;
|
||||
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=ndbcluster DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Simple test with NULL
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='NDB'
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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='NDB'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1, c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
1 100
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE='NDB'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
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 0
|
||||
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='NDB'
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL), (9);
|
||||
INSERT INTO t1 VALUES (59), (55);
|
||||
INSERT INTO t1 VALUES (NULL), (90);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
UPDATE t1 SET c1 = 150 WHERE c1 = 17;
|
||||
UPDATE t1 SET c1 = 151 WHERE c1 = 19;
|
||||
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
9
|
||||
10
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
55
|
||||
59
|
||||
60
|
||||
90
|
||||
91
|
||||
150
|
||||
151
|
||||
152
|
||||
153
|
||||
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='NDB'
|
||||
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='NDB'
|
||||
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);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
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);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
10
|
||||
15
|
||||
17
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
DELETE FROM t1;
|
||||
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=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
26
|
||||
TRUNCATE TABLE t1;
|
||||
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=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
# Test with two threads
|
||||
# con default
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'NDB'
|
||||
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);
|
||||
# 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
|
||||
16
|
||||
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 = 'NDB';
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
# con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
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 = 'NDB'
|
||||
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);
|
||||
# con1
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
5
|
||||
10
|
||||
22
|
||||
23
|
||||
# con default
|
||||
INSERT INTO t1 (c1) VALUES (NULL);
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
COMMIT;
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
2
|
||||
4
|
||||
5
|
||||
10
|
||||
11
|
||||
12
|
||||
16
|
||||
19
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
DROP TABLE t1;
|
||||
# Test with another column after
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
c2 INT,
|
||||
PRIMARY KEY (c1,c2))
|
||||
ENGINE = 'NDB'
|
||||
PARTITION BY HASH(c2)
|
||||
PARTITIONS 2;
|
||||
INSERT INTO t1 VALUES (1, 0);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
|
||||
INSERT INTO t1 VALUES (NULL, 3);
|
||||
INSERT INTO t1 VALUES (2, 0), (NULL, 2);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (2, 22);
|
||||
INSERT INTO t1 VALUES (NULL, 2);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
1 0
|
||||
1 1
|
||||
2 0
|
||||
2 1
|
||||
2 2
|
||||
2 22
|
||||
3 2
|
||||
4 3
|
||||
5 3
|
||||
6 2
|
||||
7 2
|
||||
DROP TABLE t1;
|
||||
# Test with another column before
|
||||
CREATE TABLE t1 (
|
||||
c1 INT,
|
||||
c2 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c2))
|
||||
ENGINE = 'NDB'
|
||||
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 = 'NDB'
|
||||
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);
|
||||
INSERT INTO t1 VALUES (3, NULL);
|
||||
INSERT INTO t1 VALUES (3, NULL), (2, 0), (2, NULL);
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
# ERROR (only OK if Blackhole/NDB) should give ER_DUP_KEY or ER_DUP_ENTRY
|
||||
INSERT INTO t1 VALUES (2, 22), (2, NULL);
|
||||
SELECT * FROM t1 ORDER BY c1,c2;
|
||||
c1 c2
|
||||
1 1
|
||||
1 2
|
||||
2 2
|
||||
2 3
|
||||
2 6
|
||||
2 7
|
||||
2 22
|
||||
2 23
|
||||
3 4
|
||||
3 5
|
||||
DROP TABLE t1;
|
||||
# Test AUTO_INCREMENT in CREATE
|
||||
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
|
||||
ENGINE = 'NDB'
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
INSERT INTO t1 (c1) VALUES (4);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
0
|
||||
4
|
||||
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 = 'NDB'
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
1
|
||||
23
|
||||
DROP TABLE t1;
|
||||
# Testing with FLUSH TABLE
|
||||
CREATE TABLE t1 (
|
||||
c1 INT NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (c1))
|
||||
ENGINE='NDB'
|
||||
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`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
FLUSH TABLE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`c1`)
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
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=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) PARTITIONS 2 */
|
||||
SELECT * FROM t1 ORDER BY c1;
|
||||
c1
|
||||
4
|
||||
5
|
||||
DROP TABLE t1;
|
@ -0,0 +1,40 @@
|
||||
################################################################################
|
||||
# t/partition_auto_increment_archive.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Tests around auto increment column #
|
||||
# Archive branch #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: MattiasJ #
|
||||
# Original Date: 2008-09-02 #
|
||||
# Change Author: #
|
||||
# Change Date: #
|
||||
# Change: #
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
--source include/have_archive.inc
|
||||
# Archve does not support delete
|
||||
let $skip_delete= 1;
|
||||
let $skip_truncate= 1;
|
||||
let $skip_update= 1;
|
||||
let $only_ai_pk= 1;
|
||||
|
||||
##### Storage engine to be tested
|
||||
let $engine= 'Archive';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_auto_increment.inc
|
||||
|
@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# t/partition_auto_increment_blackhole.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Tests around auto increment column #
|
||||
# Blackhole branch #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: MattiasJ #
|
||||
# Original Date: 2008-09-02 #
|
||||
# Change Author: #
|
||||
# Change Date: #
|
||||
# Change: #
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
--source include/have_blackhole.inc
|
||||
|
||||
##### Storage engine to be tested
|
||||
let $engine= 'Blackhole';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_auto_increment.inc
|
||||
|
@ -0,0 +1,35 @@
|
||||
################################################################################
|
||||
# t/partition_auto_increment_innodb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Tests around auto increment column #
|
||||
# InnoDB branch #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: MattiasJ #
|
||||
# Original Date: 2008-02-12 #
|
||||
# Change Author: #
|
||||
# Change Date: #
|
||||
# Change: #
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
let $engine= 'InnoDB';
|
||||
--source include/have_innodb.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_auto_increment.inc
|
||||
|
@ -0,0 +1,34 @@
|
||||
################################################################################
|
||||
# t/partition_auto_increment_memory.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Tests around auto increment column #
|
||||
# Memory branch #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: MattiasJ #
|
||||
# Original Date: 2008-02-12 #
|
||||
# Change Author: #
|
||||
# Change Date: #
|
||||
# Change: #
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
let $engine= 'Memory';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_auto_increment.inc
|
||||
|
@ -0,0 +1,34 @@
|
||||
################################################################################
|
||||
# t/partition_auto_increment_myisam.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Tests around auto increment column #
|
||||
# MyISAM branch #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: MattiasJ #
|
||||
# Original Date: 2008-02-12 #
|
||||
# Change Author: #
|
||||
# Change Date: #
|
||||
# Change: #
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
let $engine= 'MyISAM';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_auto_increment.inc
|
||||
|
41
mysql-test/suite/parts/t/partition_auto_increment_ndb.test
Normal file
41
mysql-test/suite/parts/t/partition_auto_increment_ndb.test
Normal file
@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# t/partition_auto_increment_ndb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Tests around auto increment column #
|
||||
# NDB branch #
|
||||
# #
|
||||
# Note: NDB behavior for auto_increment on secondary column in #
|
||||
# multi-column-index is NOT like MyISAM, instead it uses the same #
|
||||
# behavior as if it was the primary column. #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: MattiasJ #
|
||||
# Original Date: 2008-09-02 #
|
||||
# Change Author: #
|
||||
# Change Date: #
|
||||
# Change: #
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
--source include/have_ndb.inc
|
||||
|
||||
##### Storage engine to be tested
|
||||
let $engine= 'NDB';
|
||||
connection default;
|
||||
#enable hash partitioning
|
||||
SET new=on;
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_auto_increment.inc
|
||||
|
100
mysql-test/suite/rpl/r/rpl_blackhole.result
Normal file
100
mysql-test/suite/rpl/r/rpl_blackhole.result
Normal file
@ -0,0 +1,100 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
CREATE TABLE t1 (a INT, b INT, c INT);
|
||||
CREATE TABLE t2 (a INT, b INT, c INT);
|
||||
ALTER TABLE t1 ENGINE=BLACKHOLE;
|
||||
INSERT INTO t2 VALUES (1,9,1), (2,9,2), (3,9,3), (4,9,4);
|
||||
[on master]
|
||||
INSERT INTO t1 VALUES (1,1,1),(2,1,2),(3,1,3),(4,1,4);
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
UPDATE t1 SET c = 2*c WHERE a % 2 = 0 AND b = 1;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
DELETE FROM t1 WHERE a % 2 = 0 AND b = 1;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
INSERT INTO t1 SELECT * FROM t2;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
ALTER TABLE t1 ADD PRIMARY KEY pk_t1 (a,b);
|
||||
[on master]
|
||||
INSERT INTO t1 VALUES (1,2,1),(2,2,2),(3,2,3),(4,2,4);
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
UPDATE t1 SET c = 2*c WHERE a % 2 = 0 AND b = 2;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
DELETE FROM t1 WHERE a % 2 = 0 AND b = 2;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD KEY key_t1 (a);
|
||||
[on master]
|
||||
INSERT INTO t1 VALUES (1,3,1),(2,3,2),(3,3,3),(4,3,4);
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
UPDATE t1 SET c = 2*c WHERE a % 2 = 0 AND b = 3;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
||||
[on master]
|
||||
DELETE FROM t1 WHERE a % 2 = 0 AND b = 3;
|
||||
[on slave]
|
||||
# Expect 0
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
>>> Something was written to binary log <<<
|
@ -193,7 +193,7 @@ end|
|
||||
ERROR HY000: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
|
||||
set global log_bin_trust_routine_creators=1;
|
||||
Warnings:
|
||||
Warning 1287 The syntax 'log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 5.2. Please use 'log_bin_trust_function_creators' instead
|
||||
Warning 1287 The syntax '@@log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 5.2. Please use '@@log_bin_trust_function_creators' instead
|
||||
set global log_bin_trust_function_creators=0;
|
||||
set global log_bin_trust_function_creators=1;
|
||||
set global log_bin_trust_function_creators=1;
|
||||
@ -526,7 +526,7 @@ master-bin.000001 # Query 1 # use `test`; DROP TABLE IF EXISTS t1
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(col VARCHAR(10))
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10))
|
||||
INSERT INTO t1 VALUES(arg)
|
||||
master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'))
|
||||
master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci'))
|
||||
master-bin.000001 # Query 1 # use `test`; DROP PROCEDURE p1
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
|
||||
SET @a = 1
|
||||
@ -869,7 +869,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(arg VARCHAR(10))
|
||||
INSERT INTO t1 VALUES(arg)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test'))
|
||||
INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci'))
|
||||
/*!*/;
|
||||
SET TIMESTAMP=t/*!*/;
|
||||
DROP PROCEDURE p1
|
||||
|
@ -24,6 +24,9 @@ drop table if exists t1,t2;
|
||||
create table t1(f int);
|
||||
create table t2(f int);
|
||||
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
10
|
||||
create temporary table t3(f int);
|
||||
insert into t3 select * from t1 where f<6;
|
||||
create temporary table t3(f int);
|
||||
|
@ -12,5 +12,4 @@
|
||||
|
||||
rpl_redirect : Failure is sporadic and and the test is superfluous (mats)
|
||||
rpl_innodb_bug28430 : Failure on Solaris Bug #36793
|
||||
#rpl_temporary : BUG#38269 2008-07-21 Sven valgrind error in pushbuild
|
||||
rpl_flushlog_loop : BUG#37733 2008-07-23 Sven disabled in 5.1-bugteam. the bug has been fixed in 5.1-rpl: please re-enable when that gets pushed to main
|
||||
|
80
mysql-test/suite/rpl/t/rpl_blackhole.test
Normal file
80
mysql-test/suite/rpl/t/rpl_blackhole.test
Normal file
@ -0,0 +1,80 @@
|
||||
# PURPOSE. Test that blackhole works with replication in all three
|
||||
# modes: STATEMENT, MIXED, and ROW.
|
||||
#
|
||||
# METHOD. We start by creating a table on the master and then change
|
||||
# the engine to use blackhole on the slave.
|
||||
#
|
||||
# After insert/update/delete of one or more rows, the test the
|
||||
# proceeds to check that replication is running after replicating an
|
||||
# change, that the blackhole engine does not contain anything (which
|
||||
# is just a check that the correct engine is used), and that something
|
||||
# is written to the binary log.
|
||||
#
|
||||
# Whe check INSERT, UPDATE, and DELETE statement for tables with no
|
||||
# key (forcing a range search on the slave), primary keys (using a
|
||||
# primary key lookup), and index/key with multiple matches (forcing an
|
||||
# index search).
|
||||
|
||||
source include/master-slave.inc;
|
||||
source include/have_blackhole.inc;
|
||||
|
||||
# We start with no primary key
|
||||
CREATE TABLE t1 (a INT, b INT, c INT);
|
||||
CREATE TABLE t2 (a INT, b INT, c INT);
|
||||
|
||||
sync_slave_with_master;
|
||||
ALTER TABLE t1 ENGINE=BLACKHOLE;
|
||||
|
||||
connection master;
|
||||
INSERT INTO t2 VALUES (1,9,1), (2,9,2), (3,9,3), (4,9,4);
|
||||
sync_slave_with_master;
|
||||
|
||||
# Test insert, no primary key
|
||||
let $statement = INSERT INTO t1 VALUES (1,1,1),(2,1,2),(3,1,3),(4,1,4);
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test update, no primary key
|
||||
let $statement = UPDATE t1 SET c = 2*c WHERE a % 2 = 0 AND b = 1;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test delete, no primary key
|
||||
let $statement = DELETE FROM t1 WHERE a % 2 = 0 AND b = 1;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test INSERT-SELECT into Blackhole, no primary key
|
||||
let $statement = INSERT INTO t1 SELECT * FROM t2;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test INSERT-SELECT from Blackhole, no primary key
|
||||
let $statement = INSERT INTO t2 SELECT * FROM t1;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
connection master;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY pk_t1 (a,b);
|
||||
|
||||
# Test insert, primary key
|
||||
let $statement = INSERT INTO t1 VALUES (1,2,1),(2,2,2),(3,2,3),(4,2,4);
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test update, primary key
|
||||
let $statement = UPDATE t1 SET c = 2*c WHERE a % 2 = 0 AND b = 2;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test delete, primary key
|
||||
let $statement = DELETE FROM t1 WHERE a % 2 = 0 AND b = 2;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
connection master;
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD KEY key_t1 (a);
|
||||
|
||||
# Test insert, key
|
||||
let $statement = INSERT INTO t1 VALUES (1,3,1),(2,3,2),(3,3,3),(4,3,4);
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test update, key
|
||||
let $statement = UPDATE t1 SET c = 2*c WHERE a % 2 = 0 AND b = 3;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
||||
|
||||
# Test delete, key
|
||||
let $statement = DELETE FROM t1 WHERE a % 2 = 0 AND b = 3;
|
||||
source extra/rpl_tests/rpl_blackhole.test;
|
@ -56,6 +56,8 @@ drop table if exists t1,t2;
|
||||
create table t1(f int);
|
||||
create table t2(f int);
|
||||
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||
# Auxiliary select (We want that all rows are in the table)
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
connection con1;
|
||||
create temporary table t3(f int);
|
||||
|
Reference in New Issue
Block a user