mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fixed the following problem: the syntax of the ANALYZE command did not
returned an error if the list of the specified index names contained the name 'primary'.
This commit is contained in:
@ -893,6 +893,25 @@ test t1 idx2 2 2.3846
|
||||
test t1 idx4 1 6.2000
|
||||
test t1 idx4 2 1.6875
|
||||
test t1 idx4 3 1.1304
|
||||
DELETE FROM mysql.index_stat WHERE table_name='t1' AND index_name='primary';
|
||||
SELECT * FROM mysql.index_stat;
|
||||
db_name table_name index_name prefix_arity avg_frequency
|
||||
test t1 idx2 1 7.0000
|
||||
test t1 idx2 2 2.3846
|
||||
test t1 idx4 1 6.2000
|
||||
test t1 idx4 2 1.6875
|
||||
test t1 idx4 3 1.1304
|
||||
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS() INDEXES(primary);
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Table is already up to date
|
||||
SELECT * FROM mysql.index_stat;
|
||||
db_name table_name index_name prefix_arity avg_frequency
|
||||
test t1 idx2 1 7.0000
|
||||
test t1 idx2 2 2.3846
|
||||
test t1 idx4 1 6.2000
|
||||
test t1 idx4 2 1.6875
|
||||
test t1 idx4 3 1.1304
|
||||
test t1 PRIMARY 1 1.0000
|
||||
DELETE FROM mysql.table_stat;
|
||||
DELETE FROM mysql.column_stat;
|
||||
DELETE FROM mysql.index_stat;
|
||||
|
@ -353,6 +353,11 @@ SELECT * FROM mysql.table_stat;
|
||||
SELECT * FROM mysql.column_stat;
|
||||
SELECT * FROM mysql.index_stat;
|
||||
|
||||
DELETE FROM mysql.index_stat WHERE table_name='t1' AND index_name='primary';
|
||||
SELECT * FROM mysql.index_stat;
|
||||
ANALYZE TABLE t1 PERSISTENT FOR COLUMNS() INDEXES(primary);
|
||||
SELECT * FROM mysql.index_stat;
|
||||
|
||||
DELETE FROM mysql.table_stat;
|
||||
DELETE FROM mysql.column_stat;
|
||||
DELETE FROM mysql.index_stat;
|
||||
|
@ -1597,7 +1597,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
||||
analyze_table_list analyze_table_elem_spec
|
||||
opt_persistent_stat_clause persistent_stat_spec
|
||||
persistent_column_stat_spec persistent_index_stat_spec
|
||||
table_column_list table_index_list
|
||||
table_column_list table_index_list table_index_name
|
||||
check start checksum
|
||||
field_list field_list_item field_spec kill column_def key_def
|
||||
keycache_list keycache_list_or_parts assign_to_keycache
|
||||
@ -7312,15 +7312,22 @@ table_column_list:
|
||||
table_index_list:
|
||||
/* empty */
|
||||
{}
|
||||
| ident
|
||||
| table_index_name
|
||||
| table_index_list ',' table_index_name
|
||||
;
|
||||
|
||||
table_index_name:
|
||||
ident
|
||||
{
|
||||
Lex->index_list->push_back((LEX_STRING*)
|
||||
sql_memdup(&$1, sizeof(LEX_STRING)));
|
||||
Lex->index_list->push_back(
|
||||
(LEX_STRING*) sql_memdup(&$1, sizeof(LEX_STRING)));
|
||||
}
|
||||
| table_index_list ',' ident
|
||||
|
|
||||
PRIMARY_SYM
|
||||
{
|
||||
Lex->index_list->push_back((LEX_STRING*)
|
||||
sql_memdup(&$3, sizeof(LEX_STRING)));
|
||||
LEX_STRING str= {(char*) "PRIMARY", 7};
|
||||
Lex->index_list->push_back(
|
||||
(LEX_STRING*) sql_memdup(&str, sizeof(LEX_STRING)));
|
||||
}
|
||||
;
|
||||
|
||||
|
Reference in New Issue
Block a user