mysql.test 6.06 KB
Newer Older
1 2
# This test should work in embedded server after we fix mysqltest
-- source include/not_embedded.inc
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#
# Testing the MySQL command line client(mysql)
#

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

#
# Test the "delimiter" functionality
# Bug#9879
#
create table t1(a int);
insert into t1 values(1);

# Test delimiters
19
--exec $MYSQL test 2>&1 < "./t/mysql_delimiter.sql"
20 21 22

--disable_query_log
# Test delimiter : supplied on the command line
23
select "Test delimiter : from command line" as "_";
kent@mysql.com's avatar
kent@mysql.com committed
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 "_";
kent@mysql.com's avatar
kent@mysql.com committed
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 "_";
kent@mysql.com's avatar
kent@mysql.com committed
30
--exec $MYSQL test -e "select * from t1\G"
31
# Test 'go' command \g
32
select "Test  'go' command \g" as "_";
kent@mysql.com's avatar
kent@mysql.com committed
33
--exec $MYSQL test -e "select * from t1\g"
34
--enable_query_log
35
drop table t1;
36

37 38 39 40 41
#
# BUG9998 - MySQL client hangs on USE "database"
#
create table t1(a int);
lock tables t1 write;
kent@mysql.com's avatar
kent@mysql.com committed
42
--exec $MYSQL -e "use test; select database();"
43
unlock tables;
44
drop table t1;
45

46 47 48 49 50 51 52 53 54
#
# BUG#16217 - MySQL client misinterpretes multi-byte char as escape `\' 
#

# new command \C or charset
--exec $MYSQL --default-character-set=utf8 test -e "\C cp932 \g"
--exec $MYSQL --default-character-set=cp932 test -e "charset utf8;"

# its usage to switch internally in mysql to requested charset
55 56
--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; select '\'; create table t1 (c_cp932 TEXT CHARACTER SET cp932); insert into t1 values('\'); select * from t1;  drop table t1;"
--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; select '\'"
57 58
--exec $MYSQL --default-character-set=utf8 test -e "/*charset cp932 */; set character_set_client= cp932; select '\'"
--exec $MYSQL --default-character-set=utf8 test -e "/*!\C cp932 */; set character_set_client= cp932; select '\'"
59 60 61 62 63

#
# Bug#16859 -- NULLs in columns must not truncate data as if a C-language "string".
#
--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
64

65 66 67 68 69 70
#
# Bug#17939 Wrong table format when using UTF8 strings
#
--exec $MYSQL --default-character-set=utf8 --table -e "SELECT 'John Doe' as '__tañgè Ñãmé'" 2>&1
--exec $MYSQL --default-character-set=utf8 --table -e "SELECT '__tañgè Ñãmé' as 'John Doe'" 2>&1

71 72 73 74 75
#
# Bug#18265 -- mysql client: No longer right-justifies numeric columns
#
--exec $MYSQL -t --default-character-set utf8 test -e "create table t1 (i int, j int, k char(25) charset utf8); 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;"

76 77 78 79 80
#
# "DESCRIBE" commands may return strange NULLness flags.
#
--exec $MYSQL -t --default-character-set utf8 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;"

81 82 83 84 85
#
# Bug#19564: mysql displays NULL instead of space
#
--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;" 

86 87 88 89 90 91 92 93 94
#
# Bug#19265 describe command does not work from mysql prompt
#

create table t1(a int, b varchar(255), c int);
--exec $MYSQL test -e "desc t1"
--exec $MYSQL test -e "desc t1\g"
drop table t1;

95
--disable_parsing
96 97 98 99 100
#
# Bug#21042  	mysql client segfaults on importing a mysqldump export
#
--error 1
--exec $MYSQL test -e "connect verylongdatabasenamethatshouldblowthe256byteslongbufferincom_connectfunctionxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxendcccccccdxxxxxxxxxxxxxxxxxkskskskskkskskskskskskskskskskkskskskskkskskskskskskskskskend" 2>&1
101
--enable_parsing
102

103

104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
#
# Bug #20432: mysql client interprets commands in comments
#

# if the client sees the 'use' within the comment, we haven't fixed
--exec echo "/*"          >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec echo "use"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec echo "*/"          >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1

# SQL can have embedded comments => workie
--exec echo "select /*"   >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec echo "use"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec echo "*/ 1"        >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1

# client commands on the other hand must be at BOL => error
--exec echo "/*"          >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec echo "xxx"         >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec echo "*/ use"      >> $MYSQLTEST_VARDIR/tmp/bug20432.sql
--error 1
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1

# client comment recognized, but parameter missing => error
--exec echo "use"         >  $MYSQLTEST_VARDIR/tmp/bug20432.sql
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20432.sql 2>&1
130

131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
#
# Bug #20328: mysql client interprets commands in comments
#
--exec $MYSQL -e 'help' > $MYSQLTEST_VARDIR/tmp/bug20328_1.result
--exec $MYSQL -e 'help ' > $MYSQLTEST_VARDIR/tmp/bug20328_2.result
--exec diff $MYSQLTEST_VARDIR/tmp/bug20328_1.result $MYSQLTEST_VARDIR/tmp/bug20328_2.result

#
# Bug #20103: Escaping with backslash does not work
#
--exec echo "SET SQL_MODE = 'NO_BACKSLASH_ESCAPES';"  > $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec echo "SELECT '\';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1

--exec echo "SET SQL_MODE = '';"  > $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec echo "SELECT '\';';" >> $MYSQLTEST_VARDIR/tmp/bug20103.sql
--exec $MYSQL              < $MYSQLTEST_VARDIR/tmp/bug20103.sql 2>&1

--echo End of 5.0 tests