~drizzle-trunk/drizzle/development

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
disable_query_log;
-- source include/test_outfile.inc
# Server are started in "var/master-data", so "../tmp" will be "var/tmp"
eval set @tmpdir="../tmp";
enable_query_log;
-- source include/have_outfile.inc

#
# test of into outfile|dumpfile
#

--disable_warnings
drop table if exists t1;
--enable_warnings

create table t1 (`a` blob);
insert into t1 values("hello world"),("Hello mars"),(NULL);
disable_query_log;
eval select * into outfile "../tmp/outfile-test.1" from t1;
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.1"));
disable_query_log;
eval select * into dumpfile "../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 "../tmp/outfile-test.3" from t1 where a is null;
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.3"));

# the following should give errors

disable_query_log;
--error 1086
eval select * into outfile "../tmp/outfile-test.1" from t1;

--error 1086
eval select * into dumpfile "../tmp/outfile-test.2" from t1;

--error 1086
eval select * into dumpfile "../tmp/outfile-test.3" from t1;
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.not-exist"));
--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.1
--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.2
--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.3
drop table t1;

# Bug#8191
disable_query_log;
eval select 1 into outfile "../tmp/outfile-test.4";
enable_query_log;
select load_file(concat(@tmpdir,"/outfile-test.4"));
--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.4

#
# Bug #5382: 'explain select into outfile' crashes the server
#

CREATE TABLE t1 (a INT);
EXPLAIN 
  SELECT *
  INTO OUTFILE '/tmp/t1.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
  FROM t1;
DROP TABLE t1;

# End of 4.1 tests

#
# Bug#13202  SELECT * INTO OUTFILE ... FROM information_schema.schemata now fails
#
disable_query_log;
eval SELECT * INTO OUTFILE "../tmp/outfile-test.4"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM information_schema.schemata LIMIT 0, 5;
# enable_query_log;
--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.4

use information_schema;
# disable_query_log;
eval SELECT * INTO OUTFILE "../tmp/outfile-test.4"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM schemata LIMIT 0, 5;
enable_query_log;
--remove_file $MYSQLTEST_VARDIR/tmp/outfile-test.4
use test;

#
# Bug#18628 mysql-test-run: security problem
#
# It should not be possible to write to a file outside of vardir
create table t1(a int);
--replace_result $DRIZZLE_TEST_DIR DRIZZLE_TEST_DIR
--error 1290
eval select * into outfile "$DRIZZLE_TEST_DIR/outfile-test1" from t1;
drop table t1;