mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug 43355 merged from 5.1 gca
This commit is contained in:
@ -400,16 +400,16 @@ prepare stmt3 from ' lock tables t1 read ' ;
|
|||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt3 from ' unlock tables ' ;
|
prepare stmt3 from ' unlock tables ' ;
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt1 from ' load data infile ''data.txt''
|
prepare stmt1 from ' load data infile ''<MYSQLTEST_VARDIR>/tmp/data.txt''
|
||||||
into table t1 fields terminated by ''\t'' ';
|
into table t1 fields terminated by ''\t'' ';
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
|
prepare stmt1 from ' select * into outfile ''<MYSQLTEST_VARDIR>/tmp/data.txt'' from t1 ';
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
prepare stmt1 from ' optimize table t1 ' ;
|
prepare stmt1 from ' optimize table t1 ' ;
|
||||||
prepare stmt1 from ' analyze table t1 ' ;
|
prepare stmt1 from ' analyze table t1 ' ;
|
||||||
prepare stmt1 from ' checksum table t1 ' ;
|
prepare stmt1 from ' checksum table t1 ' ;
|
||||||
prepare stmt1 from ' repair table t1 ' ;
|
prepare stmt1 from ' repair table t1 ' ;
|
||||||
prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
|
prepare stmt1 from ' restore table t1 from ''<MYSQLTEST_VARDIR>/tmp/data.txt'' ' ;
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt1 from ' handler t1 open ';
|
prepare stmt1 from ' handler t1 open ';
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
|
@ -4342,9 +4342,9 @@ drop procedure if exists bug13012|
|
|||||||
create procedure bug13012()
|
create procedure bug13012()
|
||||||
BEGIN
|
BEGIN
|
||||||
REPAIR TABLE t1;
|
REPAIR TABLE t1;
|
||||||
BACKUP TABLE t1 to '../../tmp';
|
BACKUP TABLE t1 to '<MYSQLTEST_VARDIR>/tmp/';
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
RESTORE TABLE t1 FROM '../../tmp';
|
RESTORE TABLE t1 FROM '<MYSQLTEST_VARDIR>/tmp/';
|
||||||
END|
|
END|
|
||||||
call bug13012()|
|
call bug13012()|
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
|
@ -70,71 +70,71 @@ prepare stmt1 from ' select 1 as my_col ' ;
|
|||||||
# prepare with parameter
|
# prepare with parameter
|
||||||
prepare stmt1 from ' select ? as my_col ' ;
|
prepare stmt1 from ' select ? as my_col ' ;
|
||||||
# prepare must fail (incomplete statements/wrong syntax)
|
# prepare must fail (incomplete statements/wrong syntax)
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare ;
|
prepare ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 ;
|
prepare stmt1 ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 from ;
|
prepare stmt1 from ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare_garbage stmt1 from ' select 1 ' ;
|
prepare_garbage stmt1 from ' select 1 ' ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 from_garbage ' select 1 ' ;
|
prepare stmt1 from_garbage ' select 1 ' ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 from ' select_garbage 1 ' ;
|
prepare stmt1 from ' select_garbage 1 ' ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare from ' select 1 ' ;
|
prepare from ' select 1 ' ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 ' select 1 ' ;
|
prepare stmt1 ' select 1 ' ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare ? from ' select ? as my_col ' ;
|
prepare ? from ' select ? as my_col ' ;
|
||||||
# statement in variable
|
# statement in variable
|
||||||
set @arg00='select 1 as my_col';
|
set @arg00='select 1 as my_col';
|
||||||
prepare stmt1 from @arg00;
|
prepare stmt1 from @arg00;
|
||||||
# prepare must fail (query variable is empty)
|
# prepare must fail (query variable is empty)
|
||||||
set @arg00='';
|
set @arg00='';
|
||||||
--error 1065
|
--error ER_EMPTY_QUERY
|
||||||
prepare stmt1 from @arg00;
|
prepare stmt1 from @arg00;
|
||||||
set @arg00=NULL;
|
set @arg00=NULL;
|
||||||
# prepare must fail (query variable is NULL)
|
# prepare must fail (query variable is NULL)
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 from @arg01;
|
prepare stmt1 from @arg01;
|
||||||
|
|
||||||
prepare stmt1 from ' select * from t1 where a <= 2 ' ;
|
prepare stmt1 from ' select * from t1 where a <= 2 ' ;
|
||||||
# prepare must fail (column x does not exist)
|
# prepare must fail (column x does not exist)
|
||||||
--error 1054
|
--error ER_BAD_FIELD_ERROR
|
||||||
prepare stmt1 from ' select * from t1 where x <= 2 ' ;
|
prepare stmt1 from ' select * from t1 where x <= 2 ' ;
|
||||||
# cases derived from client_test.c: test_null()
|
# cases derived from client_test.c: test_null()
|
||||||
# prepare must fail (column x does not exist)
|
# prepare must fail (column x does not exist)
|
||||||
--error 1054
|
--error ER_BAD_FIELD_ERROR
|
||||||
prepare stmt1 from ' insert into t1(a,x) values(?,?) ' ;
|
prepare stmt1 from ' insert into t1(a,x) values(?,?) ' ;
|
||||||
--error 1054
|
--error ER_BAD_FIELD_ERROR
|
||||||
prepare stmt1 from ' insert into t1(x,a) values(?,?) ' ;
|
prepare stmt1 from ' insert into t1(x,a) values(?,?) ' ;
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists not_exist ;
|
drop table if exists not_exist ;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
# prepare must fail (table does not exist)
|
# prepare must fail (table does not exist)
|
||||||
--error 1146
|
--error ER_NO_SUCH_TABLE
|
||||||
prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
|
prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
|
||||||
|
|
||||||
# case derived from client_test.c: test_prepare_syntax()
|
# case derived from client_test.c: test_prepare_syntax()
|
||||||
# prepare must fail (incomplete statement)
|
# prepare must fail (incomplete statement)
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 from ' insert into t1 values(? ' ;
|
prepare stmt1 from ' insert into t1 values(? ' ;
|
||||||
--error 1064
|
--error ER_PARSE_ERROR
|
||||||
prepare stmt1 from ' select a, b from t1
|
prepare stmt1 from ' select a, b from t1
|
||||||
where a=? and where ' ;
|
where a=? and where ' ;
|
||||||
|
|
||||||
################ EXECUTE ################
|
################ EXECUTE ################
|
||||||
# execute must fail (statement never_prepared never prepared)
|
# execute must fail (statement never_prepared never prepared)
|
||||||
--error 1243
|
--error ER_UNKNOWN_STMT_HANDLER
|
||||||
execute never_prepared ;
|
execute never_prepared ;
|
||||||
# execute must fail (prepare stmt1 just failed,
|
# execute must fail (prepare stmt1 just failed,
|
||||||
# but there was a successful prepare of stmt1 before)
|
# but there was a successful prepare of stmt1 before)
|
||||||
prepare stmt1 from ' select * from t1 where a <= 2 ' ;
|
prepare stmt1 from ' select * from t1 where a <= 2 ' ;
|
||||||
--error 1146
|
--error ER_NO_SUCH_TABLE
|
||||||
prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
|
prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
|
||||||
--error 1243
|
--error ER_UNKNOWN_STMT_HANDLER
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
|
|
||||||
# drop the table between prepare and execute
|
# drop the table between prepare and execute
|
||||||
@ -149,7 +149,7 @@ prepare stmt2 from ' select * from t5 ' ;
|
|||||||
execute stmt2 ;
|
execute stmt2 ;
|
||||||
drop table t5 ;
|
drop table t5 ;
|
||||||
# execute must fail (table was dropped after prepare)
|
# execute must fail (table was dropped after prepare)
|
||||||
--error 1146
|
--error ER_NO_SUCH_TABLE
|
||||||
execute stmt2 ;
|
execute stmt2 ;
|
||||||
# cases derived from client_test.c: test_select_prepare()
|
# cases derived from client_test.c: test_select_prepare()
|
||||||
# 1. drop + create table (same column names/types/order)
|
# 1. drop + create table (same column names/types/order)
|
||||||
@ -230,24 +230,24 @@ set @arg01='two' ;
|
|||||||
prepare stmt1 from ' select * from t1 where a <= ? ' ;
|
prepare stmt1 from ' select * from t1 where a <= ? ' ;
|
||||||
execute stmt1 using @arg00;
|
execute stmt1 using @arg00;
|
||||||
# execute must fail (too small number of parameters)
|
# execute must fail (too small number of parameters)
|
||||||
--error 1210
|
--error ER_WRONG_ARGUMENTS
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
# execute must fail (too big number of parameters)
|
# execute must fail (too big number of parameters)
|
||||||
--error 1210
|
--error ER_WRONG_ARGUMENTS
|
||||||
execute stmt1 using @arg00, @arg01;
|
execute stmt1 using @arg00, @arg01;
|
||||||
# execute must fail (parameter is not set)
|
# execute must fail (parameter is not set)
|
||||||
execute stmt1 using @not_set;
|
execute stmt1 using @not_set;
|
||||||
|
|
||||||
################ DEALLOCATE ################
|
################ DEALLOCATE ################
|
||||||
# deallocate must fail (the statement 'never_prepared' was never prepared)
|
# deallocate must fail (the statement 'never_prepared' was never prepared)
|
||||||
--error 1243
|
--error ER_UNKNOWN_STMT_HANDLER
|
||||||
deallocate prepare never_prepared ;
|
deallocate prepare never_prepared ;
|
||||||
# deallocate must fail (prepare stmt1 just failed,
|
# deallocate must fail (prepare stmt1 just failed,
|
||||||
# but there was a successful prepare before)
|
# but there was a successful prepare before)
|
||||||
prepare stmt1 from ' select * from t1 where a <= 2 ' ;
|
prepare stmt1 from ' select * from t1 where a <= 2 ' ;
|
||||||
--error 1146
|
--error ER_NO_SUCH_TABLE
|
||||||
prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
|
prepare stmt1 from ' select * from not_exist where a <= 2 ' ;
|
||||||
--error 1243
|
--error ER_UNKNOWN_STMT_HANDLER
|
||||||
deallocate prepare stmt1;
|
deallocate prepare stmt1;
|
||||||
create table t5
|
create table t5
|
||||||
(
|
(
|
||||||
@ -345,7 +345,7 @@ drop table if exists t5;
|
|||||||
prepare stmt1 from ' drop table if exists t5 ' ;
|
prepare stmt1 from ' drop table if exists t5 ' ;
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
prepare stmt1 from ' drop table t5 ' ;
|
prepare stmt1 from ' drop table t5 ' ;
|
||||||
--error 1051
|
--error ER_BAD_TABLE_ERROR
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
|
|
||||||
## SELECT @@version
|
## SELECT @@version
|
||||||
@ -432,7 +432,7 @@ drop database mysqltest ;
|
|||||||
prepare stmt3 from ' describe t2 ';
|
prepare stmt3 from ' describe t2 ';
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
drop table t2 ;
|
drop table t2 ;
|
||||||
--error 1146
|
--error ER_NO_SUCH_TABLE
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
## lock/unlock
|
## lock/unlock
|
||||||
--error ER_UNSUPPORTED_PS
|
--error ER_UNSUPPORTED_PS
|
||||||
@ -440,18 +440,29 @@ prepare stmt3 from ' lock tables t1 read ' ;
|
|||||||
--error ER_UNSUPPORTED_PS
|
--error ER_UNSUPPORTED_PS
|
||||||
prepare stmt3 from ' unlock tables ' ;
|
prepare stmt3 from ' unlock tables ' ;
|
||||||
## Load/Unload table contents
|
## Load/Unload table contents
|
||||||
|
|
||||||
|
--let $datafile = $MYSQLTEST_VARDIR/tmp/data.txt
|
||||||
|
--error 0,1
|
||||||
|
--remove_file $datafile
|
||||||
|
|
||||||
|
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||||
--error ER_UNSUPPORTED_PS
|
--error ER_UNSUPPORTED_PS
|
||||||
prepare stmt1 from ' load data infile ''data.txt''
|
eval prepare stmt1 from ' load data infile ''$datafile''
|
||||||
into table t1 fields terminated by ''\t'' ';
|
into table t1 fields terminated by ''\t'' ';
|
||||||
prepare stmt1 from ' select * into outfile ''data.txt'' from t1 ';
|
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||||
execute stmt1 ;
|
eval prepare stmt1 from ' select * into outfile ''$datafile'' from t1 ';
|
||||||
|
execute stmt1 ;
|
||||||
##
|
##
|
||||||
prepare stmt1 from ' optimize table t1 ' ;
|
prepare stmt1 from ' optimize table t1 ' ;
|
||||||
prepare stmt1 from ' analyze table t1 ' ;
|
prepare stmt1 from ' analyze table t1 ' ;
|
||||||
prepare stmt1 from ' checksum table t1 ' ;
|
prepare stmt1 from ' checksum table t1 ' ;
|
||||||
prepare stmt1 from ' repair table t1 ' ;
|
prepare stmt1 from ' repair table t1 ' ;
|
||||||
|
|
||||||
|
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||||
--error ER_UNSUPPORTED_PS
|
--error ER_UNSUPPORTED_PS
|
||||||
prepare stmt1 from ' restore table t1 from ''data.txt'' ' ;
|
eval prepare stmt1 from ' restore table t1 from ''$datafile'' ' ;
|
||||||
|
--remove_file $datafile
|
||||||
|
|
||||||
## handler
|
## handler
|
||||||
--error ER_UNSUPPORTED_PS
|
--error ER_UNSUPPORTED_PS
|
||||||
prepare stmt1 from ' handler t1 open ';
|
prepare stmt1 from ' handler t1 open ';
|
||||||
@ -566,7 +577,7 @@ drop table if exists new_t2;
|
|||||||
--enable_warnings
|
--enable_warnings
|
||||||
prepare stmt3 from ' rename table t2 to new_t2 ';
|
prepare stmt3 from ' rename table t2 to new_t2 ';
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
--error 1050
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
rename table new_t2 to t2;
|
rename table new_t2 to t2;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
@ -577,13 +588,13 @@ create table t5 (a int) ;
|
|||||||
# rename must fail, t7 does not exist
|
# rename must fail, t7 does not exist
|
||||||
# Clean up the filename here because embedded server reports whole path
|
# Clean up the filename here because embedded server reports whole path
|
||||||
--replace_result $MYSQLTEST_VARDIR . mysqld.1/data/ '' t7.frm t7
|
--replace_result $MYSQLTEST_VARDIR . mysqld.1/data/ '' t7.frm t7
|
||||||
--error 1017
|
--error ER_FILE_NOT_FOUND
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
create table t7 (a int) ;
|
create table t7 (a int) ;
|
||||||
# rename, t5 -> t6 and t7 -> t8
|
# rename, t5 -> t6 and t7 -> t8
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
# rename must fail, t5 and t7 does not exist t6 and t8 already exist
|
# rename must fail, t5 and t7 does not exist t6 and t8 already exist
|
||||||
--error 1050
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
rename table t6 to t5, t8 to t7 ;
|
rename table t6 to t5, t8 to t7 ;
|
||||||
# rename, t5 -> t6 and t7 -> t8
|
# rename, t5 -> t6 and t7 -> t8
|
||||||
|
@ -1272,7 +1272,7 @@ select *, f8() from v1|
|
|||||||
|
|
||||||
# Let us test what will happen if function is missing
|
# Let us test what will happen if function is missing
|
||||||
drop function f1|
|
drop function f1|
|
||||||
--error 1356
|
--error ER_VIEW_INVALID
|
||||||
select * from v1|
|
select * from v1|
|
||||||
|
|
||||||
# And what will happen if we have recursion which involves
|
# And what will happen if we have recursion which involves
|
||||||
@ -1311,9 +1311,9 @@ select f0()|
|
|||||||
select * from v0|
|
select * from v0|
|
||||||
select *, f0() from v0, (select 123) as d1|
|
select *, f0() from v0, (select 123) as d1|
|
||||||
# But these should not !
|
# But these should not !
|
||||||
--error 1100
|
--error ER_TABLE_NOT_LOCKED
|
||||||
select id, f3() from t1|
|
select id, f3() from t1|
|
||||||
--error 1100
|
--error ER_TABLE_NOT_LOCKED
|
||||||
select f4()|
|
select f4()|
|
||||||
unlock tables|
|
unlock tables|
|
||||||
|
|
||||||
@ -1323,9 +1323,9 @@ lock tables v2 read, mysql.proc read|
|
|||||||
select * from v2|
|
select * from v2|
|
||||||
select * from v1|
|
select * from v1|
|
||||||
# These should not work as we have too little instances of tables locked
|
# These should not work as we have too little instances of tables locked
|
||||||
--error 1100
|
--error ER_TABLE_NOT_LOCKED
|
||||||
select * from v1, t1|
|
select * from v1, t1|
|
||||||
--error 1100
|
--error ER_TABLE_NOT_LOCKED
|
||||||
select f4()|
|
select f4()|
|
||||||
unlock tables|
|
unlock tables|
|
||||||
|
|
||||||
@ -5255,19 +5255,31 @@ drop procedure bug5967|
|
|||||||
#
|
#
|
||||||
# Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server"
|
# Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server"
|
||||||
#
|
#
|
||||||
|
--let $backupdir = $MYSQLTEST_VARDIR/tmp/
|
||||||
|
--error 0,1
|
||||||
|
--remove_file $backupdir/t1.frm
|
||||||
|
--error 0,1
|
||||||
|
--remove_file $backupdir/t1.MYD
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop procedure if exists bug13012|
|
drop procedure if exists bug13012|
|
||||||
# Disable warnings also for BACKUP/RESTORE: they are deprecated.
|
# Disable warnings also for BACKUP/RESTORE: they are deprecated.
|
||||||
create procedure bug13012()
|
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||||
BEGIN
|
eval create procedure bug13012()
|
||||||
|
BEGIN
|
||||||
REPAIR TABLE t1;
|
REPAIR TABLE t1;
|
||||||
BACKUP TABLE t1 to '../../tmp';
|
BACKUP TABLE t1 to '$backupdir';
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
RESTORE TABLE t1 FROM '../../tmp';
|
RESTORE TABLE t1 FROM '$backupdir';
|
||||||
END|
|
END|
|
||||||
call bug13012()|
|
call bug13012()|
|
||||||
|
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
--remove_file $backupdir/t1.frm
|
||||||
|
--remove_file $backupdir/t1.MYD
|
||||||
|
|
||||||
drop procedure bug13012|
|
drop procedure bug13012|
|
||||||
|
|
||||||
create view v1 as select * from t1|
|
create view v1 as select * from t1|
|
||||||
create procedure bug13012()
|
create procedure bug13012()
|
||||||
BEGIN
|
BEGIN
|
||||||
|
Reference in New Issue
Block a user