mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 20:07:13 +02:00
Bug#8191 - SELECT INTO OUTFILE insists on FROM clause
Fix bug + include test case. Enable outfile tests. mysql-test/t/outfile.test: Reenable outfile tests Add test for Bug#8191 sql/sql_yacc.yy: Fix Bug#8191 BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
This commit is contained in:
parent
ede028b063
commit
3ac2df4e4c
7 changed files with 56 additions and 21 deletions
|
|
@ -9,6 +9,7 @@ acurtis@pcgem.rdg.cyberkinetica.com
|
|||
ahlentz@co3064164-a.rochd1.qld.optusnet.com.au
|
||||
akishkin@work.mysql.com
|
||||
antony@ltantony.dsl-verizon.net
|
||||
antony@ltantony.mysql.com
|
||||
antony@ltantony.rdg.cyberkinetica.homeunix.net
|
||||
arjen@bitbike.com
|
||||
arjen@co3064164-a.bitbike.com
|
||||
|
|
|
|||
5
mysql-test/include/have_outfile.inc
Normal file
5
mysql-test/include/have_outfile.inc
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
-- require r/have_outfile.require
|
||||
disable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile.test"));
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile.test
|
||||
enable_query_log;
|
||||
1
mysql-test/include/test_outfile.inc
Normal file
1
mysql-test/include/test_outfile.inc
Normal file
|
|
@ -0,0 +1 @@
|
|||
eval select "Outfile OK" into outfile "$MYSQL_TEST_DIR/var/tmp/outfile.test";
|
||||
3
mysql-test/r/have_outfile.require
Normal file
3
mysql-test/r/have_outfile.require
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
load_file(concat(@tmpdir,"/outfile.test"))
|
||||
Outfile OK
|
||||
|
||||
BIN
mysql-test/r/outfile.result
Normal file
BIN
mysql-test/r/outfile.result
Normal file
Binary file not shown.
|
|
@ -1,23 +1,47 @@
|
|||
disable_query_log;
|
||||
-- source include/test_outfile.inc
|
||||
eval set @tmpdir="$MYSQL_TEST_DIR/var/tmp";
|
||||
enable_query_log;
|
||||
-- source include/have_outfile.inc
|
||||
#
|
||||
# test of into outfile|dumpfile
|
||||
#
|
||||
|
||||
# We need to check that we have 'file' privilege.
|
||||
drop table if exists t1;
|
||||
create table t1 (`a` blob);
|
||||
insert into t1 values("hello world"),("Hello mars"),(NULL);
|
||||
disable_query_log;
|
||||
eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.1"));
|
||||
disable_query_log;
|
||||
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1 limit 1;
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.2"));
|
||||
disable_query_log;
|
||||
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1 where a is null;
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.3"));
|
||||
|
||||
#drop table if exists t1;
|
||||
#create table t1 (`a` blob);
|
||||
#insert into t1 values("hello world"),("Hello mars"),(NULL);
|
||||
#select * into outfile "/tmp/select-test.1" from t1;
|
||||
#select load_file("/tmp/select-test.1");
|
||||
#select * into dumpfile "/tmp/select-test.2" from t1 limit 1;
|
||||
#select load_file("/tmp/select-test.2");
|
||||
#select * into dumpfile "/tmp/select-test.3" from t1 where a is null;
|
||||
#select load_file("/tmp/select-test.3");
|
||||
#
|
||||
## the following should give errors
|
||||
#
|
||||
#select * into outfile "/tmp/select-test.1" from t1;
|
||||
#select * into dumpfile "/tmp/select-test.1" from t1;
|
||||
#select * into dumpfile "/tmp/select-test.99" from t1;
|
||||
#select load_file("/tmp/select-test.not-exist");
|
||||
#drop table t1;
|
||||
# the following should give errors
|
||||
|
||||
disable_query_log;
|
||||
--error 1086
|
||||
eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
|
||||
--error 1086
|
||||
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1;
|
||||
--error 1086
|
||||
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1;
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.not-exist"));
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.1
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.2
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.3
|
||||
drop table t1;
|
||||
|
||||
# Bug#8191
|
||||
disable_query_log;
|
||||
eval select 1 into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.4";
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.4"));
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.4
|
||||
|
|
|
|||
|
|
@ -1537,9 +1537,10 @@ select_part2:
|
|||
|
||||
select_into:
|
||||
limit_clause {}
|
||||
| into
|
||||
| select_from
|
||||
| opt_into select_from
|
||||
| select_from opt_into;
|
||||
| into select_from
|
||||
| select_from into;
|
||||
|
||||
select_from:
|
||||
FROM join_table_list where_clause group_clause having_clause opt_order_clause limit_clause procedure_clause;
|
||||
|
|
@ -2507,7 +2508,7 @@ procedure_item:
|
|||
$2->set_name($1,(uint) ((char*) lex->tok_end - $1));
|
||||
};
|
||||
|
||||
opt_into:
|
||||
into:
|
||||
INTO OUTFILE TEXT_STRING
|
||||
{
|
||||
THD *thd= current_thd;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue