225 lines
6.5 KiB
PHP
225 lines
6.5 KiB
PHP
--echo =====================================================
|
|
--echo # Test limitation of VARBINARY
|
|
--echo =====================================================
|
|
|
|
--error 1074
|
|
CREATE TABLE t(a BINARY(256));
|
|
|
|
CREATE TABLE t(a BINARY(64));
|
|
INSERT INTO t VALUES(REPEAT('abcd', 16));
|
|
SELECT * FROM t;
|
|
DROP TABLE t;
|
|
|
|
CREATE TABLE t(a BINARY(255));
|
|
INSERT INTO t VALUES(REPEAT('abcde', 51));
|
|
SELECT * FROM t;
|
|
DROP TABLE t;
|
|
|
|
--error 1074
|
|
CREATE TABLE t(a VARBINARY(65536));
|
|
|
|
--echo =====================================================
|
|
--echo # with hidden primary key
|
|
--echo =====================================================
|
|
--echo # with nullable varbinary column
|
|
--echo # limit number of binary character is 65532(65535 - 1(for nullbits) - 2(store var length))
|
|
--echo =====================================================
|
|
--error 1118
|
|
CREATE TABLE t(a VARBINARY(65533));
|
|
|
|
CREATE TABLE t(a VARBINARY(65532));
|
|
INSERT INTO t VALUES(CONCAT('ab', REPEAT('abcde', 13106)));
|
|
SELECT LENGTH(a) FROM t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(a);
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(a(3073));
|
|
|
|
SET DEBUG_SYNC='xengine.inplace_create_sk_scan_base_begin SIGNAL begin_dml WAIT_FOR dml_end';
|
|
send ALTER TABLE t ADD KEY ka(a(3072));
|
|
|
|
--echo # Switch dml connection
|
|
connection dml;
|
|
SET DEBUG_SYNC= 'now WAIT_FOR begin_dml';
|
|
INSERT INTO t VALUES(CONCAT('cd', REPEAT('abcde', 13106)));
|
|
INSERT INTO t VALUES(CONCAT('ef', REPEAT('abcde', 13106)));
|
|
SELECT LENGTH(a) FROM t;
|
|
SET DEBUG_SYNC= 'now SIGNAL dml_end';
|
|
|
|
connection default;
|
|
reap;
|
|
CHECK TABLE t;
|
|
SELECT LENGTH(a) FROM t;
|
|
SHOW CREATE TABLE t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD UNIQUE KEY(a(3073));
|
|
ALTER TABLE t ADD UNIQUE KEY(a(3072));
|
|
|
|
DROP TABLE t;
|
|
|
|
--echo =====================================================
|
|
--echo # with non-nullable varbinary column
|
|
--echo # limit number of binary characters is 65533(65535 - 2(store var length))
|
|
--echo =====================================================
|
|
--error 1118
|
|
CREATE TABLE t(a VARBINARY(65534) NOT NULL);
|
|
|
|
CREATE TABLE t(a VARBINARY(65533) NOT NULL);
|
|
INSERT INTO t VALUES(CONCAT('abc', REPEAT('abcde', 13106)));
|
|
SELECT LENGTH(a) FROM t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(a);
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(a(3073));
|
|
|
|
SET DEBUG_SYNC='xengine.inplace_create_sk_scan_base_begin SIGNAL begin_dml WAIT_FOR dml_end';
|
|
send ALTER TABLE t ADD KEY ka(a(3072));
|
|
|
|
--echo # Switch dml connection
|
|
connection dml;
|
|
SET DEBUG_SYNC= 'now WAIT_FOR begin_dml';
|
|
INSERT INTO t VALUES(CONCAT('bcd', REPEAT('abcde', 13106)));
|
|
INSERT INTO t VALUES(CONCAT('cde', REPEAT('abcde', 13106)));
|
|
SELECT LENGTH(a) FROM t;
|
|
SET DEBUG_SYNC= 'now SIGNAL dml_end';
|
|
|
|
connection default;
|
|
reap;
|
|
CHECK TABLE t;
|
|
SHOW CREATE TABLE t;
|
|
SELECT LENGTH(a) FROM t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD UNIQUE KEY(a(3073));
|
|
ALTER TABLE t ADD UNIQUE KEY(a(3072));
|
|
|
|
CHECK TABLE t;
|
|
SHOW CREATE TABLE t;
|
|
|
|
DROP TABLE t;
|
|
|
|
--echo =====================================================
|
|
--echo # with user defined primary key
|
|
--echo =====================================================
|
|
--echo # with non-nullable varbinary column
|
|
--echo # limit number of binary characters is 65528(65535 - 4(pk) - 1(for nullbits) - 2(store var length))
|
|
--echo =====================================================
|
|
--error 1118
|
|
CREATE TABLE t(a INT PRIMARY KEY, b VARBINARY(65529));
|
|
|
|
CREATE TABLE t(a INT PRIMARY KEY, b VARBINARY(65528));
|
|
INSERT INTO t VALUES(1, CONCAT('abc', REPEAT('abcde', 13105)));
|
|
SELECT a, LENGTH(b) FROM t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(b);
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(b(3073));
|
|
|
|
SET DEBUG_SYNC='xengine.inplace_create_sk_scan_base_begin SIGNAL begin_dml WAIT_FOR dml_end';
|
|
send ALTER TABLE t ADD KEY kb(b(3072));
|
|
|
|
--echo # Switch dml connection
|
|
connection dml;
|
|
SET DEBUG_SYNC= 'now WAIT_FOR begin_dml';
|
|
INSERT INTO t VALUES(2, CONCAT('bcd', REPEAT('abcde', 13105)));
|
|
INSERT INTO t VALUES(3, CONCAT('cde', REPEAT('abcde', 13105)));
|
|
SELECT a, LENGTH(b) FROM t;
|
|
SET DEBUG_SYNC= 'now SIGNAL dml_end';
|
|
|
|
connection default;
|
|
reap;
|
|
CHECK TABLE t;
|
|
SHOW CREATE TABLE t;
|
|
SELECT a, LENGTH(b) FROM t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD UNIQUE KEY(b(3073));
|
|
|
|
ALTER TABLE t ADD UNIQUE KEY(b(3072));
|
|
|
|
SET DEBUG_SYNC='xengine.inplace_create_sk_scan_base_begin SIGNAL begin_dml WAIT_FOR dml_end';
|
|
send ALTER TABLE t ADD UNIQUE KEY ukb(b(3072));
|
|
|
|
--echo # Switch dml connection
|
|
connection dml;
|
|
SET DEBUG_SYNC= 'now WAIT_FOR begin_dml';
|
|
INSERT INTO t VALUES(4, CONCAT('def', REPEAT('abcde', 13105)));
|
|
INSERT INTO t VALUES(5, CONCAT('efg', REPEAT('abcde', 13105)));
|
|
--error 1062
|
|
INSERT INTO t VALUES(6, CONCAT('bcd', REPEAT('abcde', 13105)));
|
|
SELECT a, LENGTH(b) FROM t;
|
|
SET DEBUG_SYNC= 'now SIGNAL dml_end';
|
|
|
|
connection default;
|
|
reap;
|
|
CHECK TABLE t;
|
|
SHOW CREATE TABLE t;
|
|
SELECT a, LENGTH(b) FROM t;
|
|
|
|
DROP TABLE t;
|
|
|
|
--echo =====================================================
|
|
--echo # with non-nullable varbinary column
|
|
--echo # limit number of binary characters is 65529(65535 - 4(pk) - 2(store var length))
|
|
--echo =====================================================
|
|
--error 1118
|
|
CREATE TABLE t(a INT PRIMARY KEY, b VARBINARY(65530) NOT NULL);
|
|
|
|
CREATE TABLE t(a INT PRIMARY KEY, b VARBINARY(65529) NOT NULL);
|
|
INSERT INTO t VALUES(1, CONCAT('abcd', REPEAT('abcde', 13105)));
|
|
SELECT a, LENGTH(b) FROM t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(b);
|
|
--error 1071
|
|
ALTER TABLE t ADD KEY(b(3073));
|
|
|
|
SET DEBUG_SYNC='xengine.inplace_create_sk_scan_base_begin SIGNAL begin_dml WAIT_FOR dml_end';
|
|
send ALTER TABLE t ADD KEY kb(b(3072));
|
|
|
|
--echo # Switch dml connection
|
|
connection dml;
|
|
SET DEBUG_SYNC= 'now WAIT_FOR begin_dml';
|
|
INSERT INTO t VALUES(2, CONCAT('bcde', REPEAT('abcde', 13105)));
|
|
INSERT INTO t VALUES(3, CONCAT('cdef', REPEAT('abcde', 13105)));
|
|
SELECT a, LENGTH(b) FROM t;
|
|
SET DEBUG_SYNC= 'now SIGNAL dml_end';
|
|
|
|
connection default;
|
|
reap;
|
|
CHECK TABLE t;
|
|
SHOW CREATE TABLE t;
|
|
SELECT a, LENGTH(b) FROM t;
|
|
|
|
--error 1071
|
|
ALTER TABLE t ADD UNIQUE KEY(b(3073));
|
|
ALTER TABLE t ADD UNIQUE KEY(b(3072));
|
|
|
|
SET DEBUG_SYNC='xengine.inplace_create_sk_scan_base_begin SIGNAL begin_dml WAIT_FOR dml_end';
|
|
send ALTER TABLE t ADD UNIQUE KEY ukb(b(3072));
|
|
|
|
--echo # Switch dml connection
|
|
connection dml;
|
|
SET DEBUG_SYNC= 'now WAIT_FOR begin_dml';
|
|
INSERT INTO t VALUES(4, CONCAT('defg', REPEAT('abcde', 13105)));
|
|
INSERT INTO t VALUES(5, CONCAT('efgh', REPEAT('abcde', 13105)));
|
|
--error 1062
|
|
INSERT INTO t VALUES(6, CONCAT('bcde', REPEAT('abcde', 13105)));
|
|
SELECT a, LENGTH(b) FROM t;
|
|
SET DEBUG_SYNC= 'now SIGNAL dml_end';
|
|
|
|
connection default;
|
|
reap;
|
|
CHECK TABLE t;
|
|
SHOW CREATE TABLE t;
|
|
SELECT a, LENGTH(b) FROM t;
|
|
|
|
DROP TABLE t;
|
|
|
|
--echo =====================================================
|
|
|