diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:24:36 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:24:36 +0000 |
commit | 06eaf7232e9a920468c0f8d74dcf2fe8b555501c (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/suite/storage_engine/index.inc | |
parent | Initial commit. (diff) | |
download | mariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.tar.xz mariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/storage_engine/index.inc')
-rw-r--r-- | mysql-test/suite/storage_engine/index.inc | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/mysql-test/suite/storage_engine/index.inc b/mysql-test/suite/storage_engine/index.inc new file mode 100644 index 00000000..ac7632fb --- /dev/null +++ b/mysql-test/suite/storage_engine/index.inc @@ -0,0 +1,194 @@ +# +# Basic syntax related to indexes: +# unique and non-unique keys, +# single- and multi-column keys, +# index option COMMENT. +# +# See other index* tests for operations +# which are less likely to be supported +# +# PRIMARY KEY syntax is covered in index_primary test. +# Index types BTREE|HASH -- in index_type_btree|hash tests. +# SPATIAL -- in type_spatial_indexes test. +# FULLTEXT -- in fulltext_search test. +# KEY_BLOCK_SIZE -- in index_key_block_size test. +# +# Usage to call the test from another test: +# +# A calling test may define $index_type, in which case +# USING clause will be added to the syntax. +# + +let $using_index_type = ; +if ($index_type) +{ + let $using_index_type = USING $index_type; +} + +--source have_engine.inc + +--let $continue = 1 +--source have_default_index.inc + +if ($have_default_index) +{ + + let $create_definition = + a $int_indexed_col, + b $char_col, + $default_index $using_index_type (a) + ; + --source create_table.inc + if ($mysql_errname) + { + --let $my_last_stmt = $create_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + # Cardinality is not the exact science, so here and further + # we'll be masking it + --replace_column 6 # 7 # 10 # + SHOW KEYS IN t1; + DROP TABLE t1; + } + + let $create_definition = + a $int_indexed_col, + b $char_indexed_col, + $default_index a_b $using_index_type (a,b) COMMENT 'a_b index' + ; + --source create_table.inc + if ($mysql_errname) + { + --let $functionality = Multi-part indexes + --let $my_last_stmt = $create_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + --replace_column 6 # 7 # 10 # + SHOW KEYS IN t1; + DROP TABLE t1; + } + + + let $create_definition = + a $int_indexed_col, + b $char_indexed_col, + $default_index $using_index_type (a), + $default_index $using_index_type (b) + ; + --source create_table.inc + if ($mysql_errname) + { + --let $functionality = Multiple indexes + --let $my_last_stmt = $create_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + --replace_column 6 # 7 # 10 # + SHOW KEYS IN t1; + DROP TABLE t1; + } + + let $create_definition = + a $int_indexed_col, + b $char_col, + UNIQUE INDEX $using_index_type (a) + ; + --source create_table.inc + if ($mysql_errname) + { + --let $functionality = Unique indexes + --let $my_last_stmt = $create_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + --replace_column 6 # 7 # 10 # + SHOW KEYS IN t1; + INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'); + --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY + INSERT INTO t1 (a,b) VALUES (1,'c'); + --source check_errors.inc + + DROP TABLE t1; + } + + + # + # ALTER TABLE + # + + --let $create_definition = a $int_indexed_col, b $char_col + --source create_table.inc + if ($mysql_errname) + { + --let $functionality = Column options + --let $my_last_stmt = $create_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + INSERT INTO t1 (a,b) VALUES (100,'z'); + + --let $alter_definition = ADD $default_index (a) $using_index_type COMMENT 'simple index on a' + --source alter_table.inc + if ($mysql_errname) + { + --let $functionality = ALTER TABLE .. ADD INDEX + --let $my_last_stmt = $alter_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + --replace_column 6 # 7 # 10 # + SHOW INDEX FROM t1; + --let $alter_definition = DROP KEY a + --source alter_table.inc + } + DROP TABLE t1; + } + + let $create_definition = + a $int_indexed_col, + b $char_col, + UNIQUE INDEX $using_index_type (a) + ; + --source create_table.inc + if ($mysql_errname) + { + --let $functionality = Unique indexes + --let $my_last_stmt = $create_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + --replace_column 6 # 7 # 10 # + SHOW KEYS IN t1; + INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'); + --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY + INSERT INTO t1 (a,b) VALUES (1,'c'); + --source check_errors.inc + + --let $alter_definition = DROP INDEX a + --source alter_table.inc + if ($mysql_errname) + { + --let $functionality = ALTER TABLE .. DROP INDEX + --let $my_last_stmt = $alter_statement + --source unexpected_result.inc + } + if (!$mysql_errname) + { + INSERT INTO t1 (a,b) VALUES (1,'c'); + --let $error_codes = ER_DUP_ENTRY,ER_DUP_KEY + --let $alter_definition = ADD UNIQUE INDEX a(a) $using_index_type + --source alter_table.inc + } + DROP TABLE t1; + } +} + |