diff options
author | Bernt M. Johnsen <bernt.johnsen@sun.com> | 2009-03-31 10:38:33 +0200 |
---|---|---|
committer | Bernt M. Johnsen <bernt.johnsen@sun.com> | 2009-03-31 10:38:33 +0200 |
commit | a8b1394c8099c030453911a58d809d7f04afd46e (patch) | |
tree | 3100b975c6b831d98d76f1d76d7497bdba4da407 | |
parent | 2005f3c72ce55fd0daafe870a5202b3ddd3f107f (diff) | |
download | mariadb-git-a8b1394c8099c030453911a58d809d7f04afd46e.tar.gz |
Bug 43355 Prepared for commit on 5.0 gca
-rw-r--r-- | mysql-test/r/ps_1general.result | 8 | ||||
-rw-r--r-- | mysql-test/r/sp.result | 4 | ||||
-rw-r--r-- | mysql-test/t/ps_1general.test | 121 | ||||
-rw-r--r-- | mysql-test/t/sp.test | 41 |
4 files changed, 98 insertions, 76 deletions
diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result index 83dcbc61e68..5e951b866f7 100644 --- a/mysql-test/r/ps_1general.result +++ b/mysql-test/r/ps_1general.result @@ -418,17 +418,17 @@ prepare stmt3 from ' lock tables t1 read ' ; ERROR HY000: This command is not supported in the prepared statement protocol yet prepare stmt3 from ' unlock tables ' ; ERROR HY000: This command is not supported in the prepared statement protocol yet -prepare stmt1 from ' load data infile ''data.txt'' -into table t1 fields terminated by ''\t'' '; +prepare stmt1 from ' load data infile ''<MYSQLTEST_VARDIR>/tmp/data.txt'' + into table t1 fields terminated by ''\t'' '; 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 ; prepare stmt1 from ' optimize table t1 ' ; prepare stmt1 from ' analyze table t1 ' ; 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 ' ; -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 prepare stmt1 from ' handler t1 open '; ERROR HY000: This command is not supported in the prepared statement protocol yet diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index 84a4166a45d..236fa3d8681 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -4390,9 +4390,9 @@ drop procedure if exists bug13012| create procedure bug13012() BEGIN REPAIR TABLE t1; -BACKUP TABLE t1 to '../tmp'; +BACKUP TABLE t1 to '<MYSQLTEST_VARDIR>/tmp/'; DROP TABLE t1; -RESTORE TABLE t1 FROM '../tmp'; +RESTORE TABLE t1 FROM '<MYSQLTEST_VARDIR>/tmp/'; END| call bug13012()| Table Op Msg_type Msg_text diff --git a/mysql-test/t/ps_1general.test b/mysql-test/t/ps_1general.test index 952931f2ad1..65e7f6a8682 100644 --- a/mysql-test/t/ps_1general.test +++ b/mysql-test/t/ps_1general.test @@ -70,71 +70,71 @@ prepare stmt1 from ' select 1 as my_col ' ; # prepare with parameter prepare stmt1 from ' select ? as my_col ' ; # prepare must fail (incomplete statements/wrong syntax) ---error 1064 +--error ER_PARSE_ERROR prepare ; ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 ; ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 from ; ---error 1064 +--error ER_PARSE_ERROR prepare_garbage stmt1 from ' select 1 ' ; ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 from_garbage ' select 1 ' ; ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 from ' select_garbage 1 ' ; ---error 1064 +--error ER_PARSE_ERROR prepare from ' select 1 ' ; ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 ' select 1 ' ; ---error 1064 +--error ER_PARSE_ERROR prepare ? from ' select ? as my_col ' ; # statement in variable set @arg00='select 1 as my_col'; prepare stmt1 from @arg00; # prepare must fail (query variable is empty) set @arg00=''; ---error 1065 +--error ER_EMPTY_QUERY prepare stmt1 from @arg00; set @arg00=NULL; # prepare must fail (query variable is NULL) ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 from @arg01; prepare stmt1 from ' select * from t1 where a <= 2 ' ; # prepare must fail (column x does not exist) ---error 1054 +--error ER_BAD_FIELD_ERROR prepare stmt1 from ' select * from t1 where x <= 2 ' ; # cases derived from client_test.c: test_null() # prepare must fail (column x does not exist) ---error 1054 +--error ER_BAD_FIELD_ERROR 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(?,?) ' ; --disable_warnings drop table if exists not_exist ; --enable_warnings # prepare must fail (table does not exist) ---error 1146 +--error ER_NO_SUCH_TABLE prepare stmt1 from ' select * from not_exist where a <= 2 ' ; # case derived from client_test.c: test_prepare_syntax() # prepare must fail (incomplete statement) ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 from ' insert into t1 values(? ' ; ---error 1064 +--error ER_PARSE_ERROR prepare stmt1 from ' select a, b from t1 where a=? and where ' ; ################ EXECUTE ################ # execute must fail (statement never_prepared never prepared) ---error 1243 +--error ER_UNKNOWN_STMT_HANDLER execute never_prepared ; # execute must fail (prepare stmt1 just failed, # but there was a successful prepare of stmt1 before) 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 ' ; ---error 1243 +--error ER_UNKNOWN_STMT_HANDLER execute stmt1 ; # drop the table between prepare and execute @@ -149,7 +149,7 @@ prepare stmt2 from ' select * from t5 ' ; execute stmt2 ; drop table t5 ; # execute must fail (table was dropped after prepare) ---error 1146 +--error ER_NO_SUCH_TABLE execute stmt2 ; # cases derived from client_test.c: test_select_prepare() # 1. drop + create table (same column names/types/order) @@ -218,7 +218,7 @@ create table t5 f3 int ); insert into t5( f1, f2, f3) values( 9, 'recreated table', 9); ---error 1054 +--error ER_BAD_FIELD_ERROR execute stmt2 ; drop table t5 ; @@ -231,24 +231,24 @@ set @arg01='two' ; prepare stmt1 from ' select * from t1 where a <= ? ' ; execute stmt1 using @arg00; # execute must fail (too small number of parameters) ---error 1210 +--error ER_WRONG_ARGUMENTS execute stmt1 ; # execute must fail (too big number of parameters) ---error 1210 +--error ER_WRONG_ARGUMENTS execute stmt1 using @arg00, @arg01; # execute must fail (parameter is not set) execute stmt1 using @not_set; ################ DEALLOCATE ################ # deallocate must fail (the statement 'never_prepared' was never prepared) ---error 1243 +--error ER_UNKNOWN_STMT_HANDLER deallocate prepare never_prepared ; # deallocate must fail (prepare stmt1 just failed, # but there was a successful prepare before) 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 ' ; ---error 1243 +--error ER_UNKNOWN_STMT_HANDLER deallocate prepare stmt1; create table t5 ( @@ -330,17 +330,17 @@ prepare stmt4 from ' show engine bdb logs '; execute stmt4; --enable_result_log prepare stmt4 from ' show grants for user '; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt4 from ' show create table t2 '; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt4 from ' show master status '; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt4 from ' show master logs '; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt4 from ' show slave status '; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt4 from ' show warnings limit 20 '; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt4 from ' show errors limit 20 '; prepare stmt4 from ' show storage engines '; --replace_column 2 YES/NO @@ -355,7 +355,7 @@ drop table if exists t5; prepare stmt1 from ' drop table if exists t5 ' ; execute stmt1 ; prepare stmt1 from ' drop table t5 ' ; ---error 1051 +--error ER_BAD_TABLE_ERROR execute stmt1 ; ## SELECT @@version @@ -428,14 +428,14 @@ prepare stmt1 from ' deallocate prepare never_prepared ' ; prepare stmt1 from 'alter view v1 as select 2'; ## switch the database connection ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt4 from ' use test ' ; ## create/drop database ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt3 from ' create database mysqltest '; create database mysqltest ; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt3 from ' drop database mysqltest '; drop database mysqltest ; @@ -444,29 +444,40 @@ drop database mysqltest ; prepare stmt3 from ' describe t2 '; execute stmt3; drop table t2 ; ---error 1146 +--error ER_NO_SUCH_TABLE execute stmt3; ## lock/unlock ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt3 from ' lock tables t1 read ' ; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt3 from ' unlock tables ' ; ## Load/Unload table contents ---error 1295 -prepare stmt1 from ' load data infile ''data.txt'' -into table t1 fields terminated by ''\t'' '; -prepare stmt1 from ' select * into outfile ''data.txt'' from t1 '; -execute stmt1 ; + +--let $datafile = $MYSQLTEST_VARDIR/tmp/data.txt +--error 0,1 +--remove_file $datafile + +--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR> +--error ER_UNSUPPORTED_PS +eval prepare stmt1 from ' load data infile ''$datafile'' + into table t1 fields terminated by ''\t'' '; +--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR> +eval prepare stmt1 from ' select * into outfile ''$datafile'' from t1 '; + execute stmt1 ; ## prepare stmt1 from ' optimize table t1 ' ; prepare stmt1 from ' analyze table t1 ' ; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt1 from ' checksum table t1 ' ; prepare stmt1 from ' repair table t1 ' ; ---error 1295 -prepare stmt1 from ' restore table t1 from ''data.txt'' ' ; +--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR> +--error ER_UNSUPPORTED_PS +eval prepare stmt1 from ' restore table t1 from ''$datafile'' ' ; +--remove_file $datafile + + ## handler ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt1 from ' handler t1 open '; @@ -492,11 +503,11 @@ SET sql_mode=ansi; execute stmt5; SET sql_mode=""; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt1 from ' flush local privileges ' ; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt1 from ' reset query cache ' ; ---error 1295 +--error ER_UNSUPPORTED_PS prepare stmt1 from ' KILL 0 '; ## simple explain @@ -582,7 +593,7 @@ drop table if exists new_t2; --enable_warnings prepare stmt3 from ' rename table t2 to new_t2 '; execute stmt3; ---error 1050 +--error ER_TABLE_EXISTS_ERROR execute stmt3; rename table new_t2 to t2; drop table t2; @@ -593,13 +604,13 @@ create table t5 (a int) ; # rename must fail, t7 does not exist # Clean up the filename here because embedded server reports whole path --replace_result \\ / $MYSQLTEST_VARDIR . /master-data/ / t7.frm t7 ---error 1017 +--error ER_FILE_NOT_FOUND execute stmt1 ; create table t7 (a int) ; # rename, t5 -> t6 and t7 -> t8 execute stmt1 ; # rename must fail, t5 and t7 does not exist t6 and t8 already exist ---error 1050 +--error ER_TABLE_EXISTS_ERROR execute stmt1 ; rename table t6 to t5, t8 to t7 ; # rename, t5 -> t6 and t7 -> t8 diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index d5bb565cbc8..e3d3298cc50 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -1271,7 +1271,7 @@ select *, f8() from v1| # Let us test what will happen if function is missing drop function f1| ---error 1356 +--error ER_VIEW_INVALID select * from v1| # And what will happen if we have recursion which involves @@ -1310,9 +1310,9 @@ select f0()| select * from v0| select *, f0() from v0, (select 123) as d1| # But these should not ! ---error 1100 +--error ER_TABLE_NOT_LOCKED select id, f3() from t1| ---error 1100 +--error ER_TABLE_NOT_LOCKED select f4()| unlock tables| @@ -1322,9 +1322,9 @@ lock tables v2 read, mysql.proc read| select * from v2| select * from v1| # These should not work as we have too little instances of tables locked ---error 1100 +--error ER_TABLE_NOT_LOCKED select * from v1, t1| ---error 1100 +--error ER_TABLE_NOT_LOCKED select f4()| unlock tables| @@ -4501,14 +4501,14 @@ begin select bug12379(); end| ---error 1062 +--error ER_DUP_ENTRY select bug12379()| select 1| call bug12379_1()| select 2| call bug12379_2()| select 3| ---error 1062 +--error ER_DUP_ENTRY call bug12379_3()| select 4| @@ -5235,18 +5235,29 @@ drop procedure bug5967| # # 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 drop procedure if exists bug13012| ---enable_warnings -create procedure bug13012() -BEGIN - REPAIR TABLE t1; - BACKUP TABLE t1 to '../tmp'; - DROP TABLE t1; - RESTORE TABLE t1 FROM '../tmp'; -END| +--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR> +--enable_warnings +eval create procedure bug13012() + BEGIN + REPAIR TABLE t1; + BACKUP TABLE t1 to '$backupdir'; + DROP TABLE t1; + RESTORE TABLE t1 FROM '$backupdir'; + END| call bug13012()| + +--remove_file $backupdir/t1.frm +--remove_file $backupdir/t1.MYD drop procedure bug13012| + create view v1 as select * from t1| create procedure bug13012() BEGIN |