diff options
Diffstat (limited to 'mysql-test/main/myisam_debug_keys.test')
-rw-r--r-- | mysql-test/main/myisam_debug_keys.test | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/mysql-test/main/myisam_debug_keys.test b/mysql-test/main/myisam_debug_keys.test new file mode 100644 index 00000000..73d68637 --- /dev/null +++ b/mysql-test/main/myisam_debug_keys.test @@ -0,0 +1,68 @@ +--source include/have_debug.inc + +--echo # +--echo # MDEV-29672 Add MTR tests covering key and key segment flags and types +--echo # + +SET debug_dbug='+d,key'; +CREATE TABLE types ( + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + type TEXT NOT NULL, + prefix_length INT NOT NULL +); +--disable_ps_protocol +INSERT INTO types (type, prefix_length) VALUES +('INT', 0), +('BIGINT', 0), +('DOUBLE', 0), +('DECIMAL(20,10)', 0), +('CHAR(4)', 0), +('CHAR(10)', 0), +('VARCHAR(4)', 0), +('VARCHAR(6)', 0), +('VARCHAR(8)', 0), +('VARCHAR(12)', 0), +('VARCHAR(16)', 0), +('VARCHAR(100)', 0), +('TEXT', 4), +('TEXT', 6), +('TEXT', 8), +('TEXT', 12), +('TEXT', 16), +('TEXT', 100); +--enable_ps_protocol +DELIMITER $$; +BEGIN NOT ATOMIC + DECLARE create2_template TEXT + DEFAULT 'CREATE TABLE t1 (a TYPE1 NOT NULL, b TYPE2 NOT NULL, KEY(SEG1,SEG2))'; + DECLARE cur2 CURSOR FOR + SELECT t1.type AS type1, + t2.type AS type2, + t1.prefix_length AS prefix_length1, + t2.prefix_length AS prefix_length2 + FROM types AS t1, types AS t2 + ORDER BY t1.id, t2.id; + FOR rec IN cur2 DO + BEGIN + DECLARE tabledef TEXT DEFAULT REPLACE(create2_template,'TYPE1', rec.type1); + SET tabledef=REPLACE(tabledef, 'TYPE2', rec.type2); + SET tabledef=REPLACE(tabledef, 'SEG1', + IF(rec.prefix_length1, + CONCAT('a(',rec.prefix_length1,')'), 'a')); + SET tabledef=REPLACE(tabledef, 'SEG2', + IF(rec.prefix_length2, + CONCAT('b(',rec.prefix_length2,')'), 'b')); + SELECT tabledef AS ``; + EXECUTE IMMEDIATE tabledef; + SHOW WARNINGS; + SELECT * FROM t1; + SHOW WARNINGS; + SHOW CREATE TABLE t1; + DROP TABLE t1; + END; + END FOR; +END; +$$ +DELIMITER ;$$ +DROP TABLE types; +SET debug_dbug=''; |