Commit fec5ab5a authored by Sergei Petrunia's avatar Sergei Petrunia

MDEV-6396: ANALYZE INSERT/REPLACE is accepted, but does not produce a plan

Add ANALYZE STMT handling into INSERT command.
parent 5c33632b
...@@ -259,3 +259,20 @@ analyze delete from t1 returning *; ...@@ -259,3 +259,20 @@ analyze delete from t1 returning *;
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 0 100.00 100.00 1 SIMPLE t1 ALL NULL NULL NULL NULL 0 0 100.00 100.00
drop table t1; drop table t1;
#
# MDEV-6396: ANALYZE INSERT/REPLACE is accepted, but does not produce a plan
#
create table t1 (a int primary key, b int);
analyze insert into t1 values (1,1);
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 INSERT t1 ALL NULL NULL NULL NULL NULL NULL 100.00 100.00 NULL
select * from t1;
a b
1 1
analyze replace t1 values (1,2);
id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 INSERT t1 ALL NULL NULL NULL NULL NULL NULL 100.00 100.00 NULL
select * from t1;
a b
1 2
drop table t1;
...@@ -206,3 +206,14 @@ create table t1 (i int); ...@@ -206,3 +206,14 @@ create table t1 (i int);
analyze delete from t1 returning *; analyze delete from t1 returning *;
drop table t1; drop table t1;
--echo #
--echo # MDEV-6396: ANALYZE INSERT/REPLACE is accepted, but does not produce a plan
--echo #
create table t1 (a int primary key, b int);
analyze insert into t1 values (1,1);
select * from t1;
analyze replace t1 values (1,2);
select * from t1;
drop table t1;
...@@ -1100,6 +1100,11 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list, ...@@ -1100,6 +1100,11 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
if (error) if (error)
goto abort; goto abort;
if (thd->lex->analyze_stmt)
{
retval= thd->lex->explain->send_explain(thd);
goto abort;
}
if (values_list.elements == 1 && (!(thd->variables.option_bits & OPTION_WARNINGS) || if (values_list.elements == 1 && (!(thd->variables.option_bits & OPTION_WARNINGS) ||
!thd->cuted_fields)) !thd->cuted_fields))
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment