1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-09 22:24:09 +03:00

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

Add ANALYZE STMT handling into INSERT command.
This commit is contained in:
Sergei Petrunia
2014-10-12 20:48:07 +04:00
parent 5c33632b50
commit fec5ab5a56
3 changed files with 33 additions and 0 deletions

View File

@@ -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
1 SIMPLE t1 ALL NULL NULL NULL NULL 0 0 100.00 100.00
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;

View File

@@ -206,3 +206,14 @@ create table t1 (i int);
analyze delete from t1 returning *;
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;

View File

@@ -1100,6 +1100,11 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
if (error)
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) ||
!thd->cuted_fields))
{