mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
A fix and a test case for Bug#19308 "REPAIR/OPTIMIZE/ANALYZE
supported in SP but not in PS": just enable them in prepared statements, the supporting functionality was implemented when they were enabled in stored procedures. mysql-test/r/ps.result: Bug#19308: test results fixed. mysql-test/r/ps_1general.result: Adjust existing test cases (ANALYZE/OPTIMIZE/REPAIR are now allowed in prepared statements. mysql-test/r/sp-dynamic.result: Adjust existing test cases (ANALYZE/OPTIMIZE/REPAIR are now allowed in prepared statements. mysql-test/t/ps.test: Add a test case for Bug#19308 "REPAIR/OPTIMIZE/ANALYZE supported in SP but not in PS" mysql-test/t/ps_1general.test: Adjust existing test cases (ANALYZE/OPTIMIZE/REPAIR are now allowed in prepared statements. sql/sql_prepare.cc: Enable ANALYZE, OPTIMIZE, REPAIR in prepared statements.
This commit is contained in:
parent
ef82f93dcc
commit
f28b9a3423
6 changed files with 143 additions and 9 deletions
|
@ -1056,3 +1056,104 @@ a b
|
|||
1 9
|
||||
3 7
|
||||
drop table t1;
|
||||
create table t1 (a int);
|
||||
create table t2 like t1;
|
||||
create table t3 like t2;
|
||||
prepare stmt from "repair table t1";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
prepare stmt from "optimize table t1";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status OK
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status Table is already up to date
|
||||
prepare stmt from "analyze table t1";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Table is already up to date
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Table is already up to date
|
||||
prepare stmt from "repair table t1, t2, t3";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
test.t2 repair status OK
|
||||
test.t3 repair status OK
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
test.t2 repair status OK
|
||||
test.t3 repair status OK
|
||||
prepare stmt from "optimize table t1, t2, t3";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status OK
|
||||
test.t2 optimize status OK
|
||||
test.t3 optimize status OK
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status Table is already up to date
|
||||
test.t2 optimize status Table is already up to date
|
||||
test.t3 optimize status Table is already up to date
|
||||
prepare stmt from "analyze table t1, t2, t3";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Table is already up to date
|
||||
test.t2 analyze status Table is already up to date
|
||||
test.t3 analyze status Table is already up to date
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Table is already up to date
|
||||
test.t2 analyze status Table is already up to date
|
||||
test.t3 analyze status Table is already up to date
|
||||
prepare stmt from "repair table t1, t4, t3";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
test.t4 repair error Table 'test.t4' doesn't exist
|
||||
test.t3 repair status OK
|
||||
Warnings:
|
||||
Error 1146 Table 'test.t4' doesn't exist
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
test.t4 repair error Table 'test.t4' doesn't exist
|
||||
test.t3 repair status OK
|
||||
Warnings:
|
||||
Error 1146 Table 'test.t4' doesn't exist
|
||||
prepare stmt from "optimize table t1, t3, t4";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status OK
|
||||
test.t3 optimize status OK
|
||||
test.t4 optimize error Table 'test.t4' doesn't exist
|
||||
Warnings:
|
||||
Error 1146 Table 'test.t4' doesn't exist
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status Table is already up to date
|
||||
test.t3 optimize status Table is already up to date
|
||||
test.t4 optimize error Table 'test.t4' doesn't exist
|
||||
Warnings:
|
||||
Error 1146 Table 'test.t4' doesn't exist
|
||||
prepare stmt from "analyze table t4, t1";
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t4 analyze error Table 'test.t4' doesn't exist
|
||||
test.t1 analyze status Table is already up to date
|
||||
Warnings:
|
||||
Error 1146 Table 'test.t4' doesn't exist
|
||||
execute stmt;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t4 analyze error Table 'test.t4' doesn't exist
|
||||
test.t1 analyze status Table is already up to date
|
||||
Warnings:
|
||||
Error 1146 Table 'test.t4' doesn't exist
|
||||
deallocate prepare stmt;
|
||||
|
|
|
@ -422,13 +422,10 @@ ERROR HY000: This command is not supported in the prepared statement protocol ye
|
|||
prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
|
||||
execute stmt1 ;
|
||||
prepare stmt1 from ' optimize table t1 ' ;
|
||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||
prepare stmt1 from ' analyze table t1 ' ;
|
||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||
prepare stmt1 from ' checksum table t1 ' ;
|
||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||
prepare stmt1 from ' repair table t1 ' ;
|
||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||
prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
|
||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||
prepare stmt1 from ' handler t1 open ';
|
||||
|
|
|
@ -286,12 +286,12 @@ id stmt_text status
|
|||
1 select 1 supported
|
||||
2 flush tables not supported
|
||||
3 handler t1 open as ha not supported
|
||||
4 analyze table t1 not supported
|
||||
4 analyze table t1 supported
|
||||
5 check table t1 not supported
|
||||
6 checksum table t1 not supported
|
||||
7 check table t1 not supported
|
||||
8 optimize table t1 not supported
|
||||
9 repair table t1 not supported
|
||||
8 optimize table t1 supported
|
||||
9 repair table t1 supported
|
||||
10 describe extended select * from t1 supported
|
||||
11 help help not supported
|
||||
12 show databases supported
|
||||
|
|
|
@ -1110,4 +1110,40 @@ select * from t1 order by 1+1;
|
|||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#19308 "REPAIR/OPTIMIZE/ANALYZE supported in SP but not in PS".
|
||||
# Add test coverage for the added commands.
|
||||
#
|
||||
create table t1 (a int);
|
||||
create table t2 like t1;
|
||||
create table t3 like t2;
|
||||
prepare stmt from "repair table t1";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "optimize table t1";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "analyze table t1";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "repair table t1, t2, t3";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "optimize table t1, t2, t3";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "analyze table t1, t2, t3";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "repair table t1, t4, t3";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "optimize table t1, t3, t4";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
prepare stmt from "analyze table t4, t1";
|
||||
execute stmt;
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
|
||||
# End of 5.0 tests
|
||||
|
|
|
@ -453,13 +453,10 @@ into table t1 fields terminated by ''\t'' ';
|
|||
prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
|
||||
execute stmt1 ;
|
||||
##
|
||||
--error 1295
|
||||
prepare stmt1 from ' optimize table t1 ' ;
|
||||
--error 1295
|
||||
prepare stmt1 from ' analyze table t1 ' ;
|
||||
--error 1295
|
||||
prepare stmt1 from ' checksum table t1 ' ;
|
||||
--error 1295
|
||||
prepare stmt1 from ' repair table t1 ' ;
|
||||
--error 1295
|
||||
prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
|
||||
|
|
|
@ -1753,6 +1753,9 @@ static bool check_prepared_statement(Prepared_statement *stmt,
|
|||
case SQLCOM_CALL:
|
||||
case SQLCOM_CREATE_VIEW:
|
||||
case SQLCOM_DROP_VIEW:
|
||||
case SQLCOM_REPAIR:
|
||||
case SQLCOM_ANALYZE:
|
||||
case SQLCOM_OPTIMIZE:
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
Loading…
Reference in a new issue