mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
MDEV-11: Generic storage engine test suite
This commit is contained in:
194
mysql-test/suite/storage_engine/index.inc
Normal file
194
mysql-test/suite/storage_engine/index.inc
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user