~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
#
2
# Testing the MySQL command line client(mysql)
3
#
4
5
--disable_warnings
6
drop table if exists t1;
7
--enable_warnings
8
9
#
10
# Test the "delimiter" functionality
11
# Bug#9879
12
#
13
create table t1(a int);
14
insert into t1 values(1);
15
16
# Test delimiters
755.1.2 by Monty Taylor
Updated mysql.test for distcheck.
17
# This breaks vpath builds - and I don't care enough about it to fix
18
# drizzletest. We can re-enable this in the new test system
19
#--exec $MYSQL test 2>&1 < "$DRIZZLE_TEST_DIR/t/mysql_delimiter.sql"
1 by brian
clean slate
20
21
--disable_query_log
22
# Test delimiter : supplied on the command line
23
select "Test delimiter : from command line" as "_";
24
--exec $MYSQL test --delimiter=":" -e "select * from t1:"
25
# Test delimiter :; supplied on the command line
26
select "Test delimiter :; from command line" as "_";
27
--exec $MYSQL test --delimiter=":;" -e "select * from t1:;"
28
# Test 'go' command (vertical output) \G
29
select "Test 'go' command(vertical output) \G" as "_";
30
--exec $MYSQL test -e "select * from t1\G"
31
# Test 'go' command \g
32
select "Test  'go' command \g" as "_";
33
--exec $MYSQL test -e "select * from t1\g"
34
--enable_query_log
35
drop table t1;
36
37
#
38
# Bug#16859 -- NULLs in columns must not truncate data as if a C-language "string".
39
#
309 by Brian Aker
Merge from Monty
40
#--exec $MYSQL -t test -e "create table t1 (col1 binary(4), col2 varchar(10), col3 int); insert into t1 values ('a', 'b', 123421),('a ', '0123456789', 4), ('abcd', '', 4); select concat('>',col1,'<'), col2, col3 from t1; drop table t1;" 2>&1
1 by brian
clean slate
41
42
#
43
# Bug#17939 Wrong table format when using UTF8 strings
44
#
520.1.12 by Brian Aker
Adding back more tests.
45
--exec $MYSQL --table -e "SELECT 'John Doe' as '__tañgè Ñãmé'" 2>&1
46
--exec $MYSQL --table -e "SELECT '__tañgè Ñãmé' as 'John Doe'" 2>&1
1 by brian
clean slate
47
48
#
49
# Bug#18265 -- mysql client: No longer right-justifies numeric columns
50
#
520.1.12 by Brian Aker
Adding back more tests.
51
--exec $MYSQL -t test -e "create table t1 (i int, j int, k char(25)); insert into t1 (i) values (1); insert into t1 (k) values ('<----------------------->'); insert into t1 (k) values ('<-----'); insert into t1 (k) values ('Τη γλώσσα'); insert into t1 (k) values ('ᛖᚴ ᚷᛖᛏ'); select * from t1; DROP TABLE t1;"
1 by brian
clean slate
52
53
#
54
# "DESCRIBE" commands may return strange NULLness flags.
55
#
520.1.12 by Brian Aker
Adding back more tests.
56
--exec $MYSQL test -e "create table t1 (i int, j int not null, k int); insert into t1 values (null, 1, null); select * from t1; describe t1; drop table t1;"
57
--exec $MYSQL -t test -e "create table t1 (i int, j int not null, k int); insert into t1 values (null, 1, null); select * from t1; describe t1; drop table t1;"
1 by brian
clean slate
58
59
#
60
# Bug#19564: mysql displays NULL instead of space
61
#
62
--exec $MYSQL test -e "create table b19564 (i int, s1 char(1)); insert into b19564 values (1, 'x'); insert into b19564 values (2, NULL); insert into b19564 values (3, ' '); select * from b19564 order by i; drop table b19564;" 
63
--exec $MYSQL -t test -e "create table b19564 (i int, s1 char(1)); insert into b19564 values (1, 'x'); insert into b19564 values (2, NULL); insert into b19564 values (3, ' '); select * from b19564 order by i; drop table b19564;" 
64
65
#
66
# Bug#21618: NULL shown as empty string in client
67
#
68
--exec $MYSQL test -e "select unhex('zz');" 
69
--exec $MYSQL -t test -e "select unhex('zz');" 
70
71
# Bug#19265 describe command does not work from mysql prompt
72
#
73
74
create table t1(a int, b varchar(255), c int);
75
--exec $MYSQL test -e "desc t1"
76
--exec $MYSQL test -e "desc t1\g"
77
drop table t1;
78
520.1.12 by Brian Aker
Adding back more tests.
79
#--disable_parsing
1 by brian
clean slate
80
#
81
# Bug#21042  	mysql client segfaults on importing a mysqldump export
82
#
309 by Brian Aker
Merge from Monty
83
#--error 1
84
#--exec $MYSQL test -e "connect verylongdatabasenamethatshouldblowthe256byteslongbufferincom_connectfunctionxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxendcccccccdxxxxxxxxxxxxxxxxxkskskskskkskskskskskskskskskskkskskskskkskskskskskskskskskend" 2>&1
85
#--enable_parsing
1 by brian
clean slate
86
87
88
#
89
# Bug #20432: mysql client interprets commands in comments
90
#
91
92
# if the client sees the 'use' within the comment, we haven't fixed
93
--exec echo "/*"          >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
94
--exec echo "use"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
95
--exec echo "*/"          >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
96
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
97
98
# SQL can have embedded comments => workie
99
--exec echo "select /*"   >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
100
--exec echo "use"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
101
--exec echo "*/ 1"        >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
102
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
103
104
# client commands on the other hand must be at BOL => error
105
--exec echo "/*"          >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
106
--exec echo "xxx"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
107
--exec echo "*/ use"      >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
108
--error 1
109
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
110
111
# client comment recognized, but parameter missing => error
112
--exec echo "use"         >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
113
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
114
115
#
116
# Bug #20328: mysql client interprets commands in comments
117
#
309 by Brian Aker
Merge from Monty
118
#--exec $MYSQL -e "help" > $MYSQLTEST_VARDIR/tmp/bug20328_1.result
119
#--exec $MYSQL -e "help " > $MYSQLTEST_VARDIR/tmp/bug20328_2.result
120
#--diff_files $MYSQLTEST_VARDIR/tmp/bug20328_1.result $MYSQLTEST_VARDIR/tmp/bug20328_2.result
1 by brian
clean slate
121
122
#
123
# Bug #19216: Client crashes on long SELECT
124
#
125
# Create large SELECT
126
# - 3400 * 20 makes 68000 columns that is more than the
127
#   max number that can fit in a 16 bit number.
128
309 by Brian Aker
Merge from Monty
129
#--perl
130
#open(FILE,">","$ENV{'MYSQLTEST_VARDIR'}/tmp/b19216.tmp") or die;
131
#print FILE "select\n";
132
#print FILE "'a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a',\n" x 3400;
133
#print FILE "'b';\n";
134
#close FILE;
135
#EOF
136
137
#--disable_query_log
138
#--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/b19216.tmp >/dev/null
139
#--enable_query_log
140
#
141
#--remove_file $MYSQLTEST_VARDIR/tmp/b19216.tmp
1 by brian
clean slate
142
143
#
144
# Bug#17583: mysql drops connection when stdout is not writable
145
#
146
create table t17583 (a int);
147
insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
148
insert into t17583 select a from t17583;
149
insert into t17583 select a from t17583;
150
insert into t17583 select a from t17583;
151
insert into t17583 select a from t17583;
152
insert into t17583 select a from t17583;
153
insert into t17583 select a from t17583;
154
insert into t17583 select a from t17583;
155
# Close to the minimal data needed to exercise bug.
156
select count(*) from t17583;
157
--exec echo "select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; select count(*) from t17583; " |$MYSQL test >&-
158
drop table t17583;
159
160
#
161
# Bug#20984: Reproducible MySQL client segmentation fault
162
#  + additional tests for the "com_connect" function in mysql
163
#
164
#
165
--echo Test connect without db- or host-name => reconnect
166
--exec $MYSQL test -e "\r" 2>&1
167
--exec $MYSQL test -e "connect" 2>&1
168
169
--echo Test connect with dbname only => new dbname, old hostname
170
--exec $MYSQL test -e "\r test" 2>&1
171
--exec $MYSQL test -e "connect test" 2>&1
172
--exec $MYSQL test -e "\rtest" 2>&1
173
--error 1
174
--exec $MYSQL test -e "connecttest" 2>&1
175
176
--echo Test connect with _invalid_ dbname only => new invalid dbname, old hostname
177
--error 1
178
--exec $MYSQL test -e "\r invalid" 2>&1
179
--error 1
180
--exec $MYSQL test -e "connect invalid" 2>&1
181
182
--echo Test connect with dbname + hostname
685.4.30 by Jay Pipes
Fixes mysql.test. Commented out executable commands which reference the test database, since we don't have one.
183
#--exec $MYSQL test -e "\r test localhost" 2>&1
184
#--exec $MYSQL test -e "connect test localhost" 2>&1
1 by brian
clean slate
185
186
--echo Test connect with dbname + _invalid_ hostname
187
# Mask the errno of the error message
309 by Brian Aker
Merge from Monty
188
#--replace_regex /\([0-9]*\)/(errno)/
189
#--error 1
190
#--exec $MYSQL test -e "\r test invalid_hostname" 2>&1
191
#--replace_regex /\([0-9]*\)/(errno)/
192
#--error 1
193
#--exec $MYSQL test -e "connect test invalid_hostname" 2>&1
194
195
#--echo The commands reported in the bug report
196
#--replace_regex /\([0-9]*\)/(errno)/
197
#--error 1
198
#--exec $MYSQL test -e "\r\r\n\r\n cyril\ has\ found\ a\ bug\ :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2>&1
199
#
200
##--replace_regex /\([0-9]*\)/(errno)/
201
##--error 1
202
##--exec echo '\r\r\n\r\n cyril\ has\ found\ a\ bug\ :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' | $MYSQL 2>&1
203
#
204
#--echo Too long dbname
205
#--error 1
206
#--exec $MYSQL test -e "\r test_really_long_dbnamexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx localhost" 2>&1
207
#
208
#--echo Too long hostname
209
#--replace_regex /\([0-9]*\)/(errno)/
210
#--error 1
211
#--exec $MYSQL test -e "\r  test cyrils_superlonghostnameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2>&1
1 by brian
clean slate
212
213
214
#
215
# Bug #21412: mysql cmdline client allows backslash(es) 
216
# as delimiter but can't recognize them
217
#
218
219
# This should work just fine...
309 by Brian Aker
Merge from Monty
220
#--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
221
#DELIMITER /
222
#SELECT 1/
223
#EOF
224
#--exec $MYSQL             < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
225
#remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
226
#
227
## This should give an error...
228
#--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
229
#DELIMITER \
230
#EOF
231
#--exec $MYSQL             < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
232
#remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
233
#
234
## As should this...
235
#--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sql
236
#DELIMITER \\
237
#EOF
238
#--exec $MYSQL             < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1
239
#remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;
240
#
1 by brian
clean slate
241
#
242
# Some coverage of not normally used parts
243
#
244
245
--disable_query_log
685.4.30 by Jay Pipes
Fixes mysql.test. Commented out executable commands which reference the test database, since we don't have one.
246
#--exec $MYSQL test -e "show status" 2>&1 > /dev/null
1 by brian
clean slate
247
--exec $MYSQL --help 2>&1 > /dev/null
248
--exec $MYSQL --version 2>&1 > /dev/null
249
--enable_query_log
250
251
#
252
# bug #26851: Mysql Client --pager Buffer Overflow
253
#
254
255
# allow error 7(invalid argument) since --pager does not always exist in mysql
685.4.30 by Jay Pipes
Fixes mysql.test. Commented out executable commands which reference the test database, since we don't have one.
256
--error 0,1,7
1 by brian
clean slate
257
--exec $MYSQL --pager="540bytelengthstringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -e "select 1" > /dev/null 2>&1
258
259
#
260
# Bug#29323 mysql client only accetps ANSI encoded files
261
#
309 by Brian Aker
Merge from Monty
262
#--write_file $MYSQLTEST_VARDIR/tmp/bug29323.sql
263
#select "This is a file starting with UTF8 BOM 0xEFBBBF";
264
#EOF
265
#--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug29323.sql 2>&1
266
#remove_file $MYSQLTEST_VARDIR/tmp/bug29323.sql;
1 by brian
clean slate
267
268
--echo End of 5.0 tests
269
270
#
271
# Bug#26780: patch to add auto vertical output option to the cli.
272
#
273
# Make this wide enough that it will wrap almost everywhere.
685.4.30 by Jay Pipes
Fixes mysql.test. Commented out executable commands which reference the test database, since we don't have one.
274
#--exec $MYSQL test --auto-vertical-output --table -e "SELECT 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0;"
1 by brian
clean slate
275
# Too short to wrap.
685.4.30 by Jay Pipes
Fixes mysql.test. Commented out executable commands which reference the test database, since we don't have one.
276
#--exec $MYSQL test --auto-vertical-output --table -e "SELECT 1;"
1 by brian
clean slate
277
278
--echo End of tests