mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
194 lines
4.5 KiB
PHP
194 lines
4.5 KiB
PHP
#
|
|
# 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;
|
|
}
|
|
}
|
|
|