📄 mysql.test
字号:
# This test should work in embedded server after we fix mysqltest-- source include/not_embedded.inc## Testing the MySQL command line client(mysql)#--disable_warningsdrop table if exists t1;--enable_warnings## Test the "delimiter" functionality# Bug#9879#create table t1(a int);insert into t1 values(1);# Test delimiters--exec $MYSQL test 2>&1 < "./t/mysql_delimiter.sql"--disable_query_log# Test delimiter : supplied on the command lineselect "Test delimiter : from command line" as "_";--exec $MYSQL test --delimiter=":" -e "select * from t1:"# Test delimiter :; supplied on the command lineselect "Test delimiter :; from command line" as "_";--exec $MYSQL test --delimiter=":;" -e "select * from t1:;"# Test 'go' command (vertical output) \Gselect "Test 'go' command(vertical output) \G" as "_";--exec $MYSQL test -e "select * from t1\G"# Test 'go' command \gselect "Test 'go' command \g" as "_";--exec $MYSQL test -e "select * from t1\g"--enable_query_logdrop table t1;## BUG9998 - MySQL client hangs on USE "database"#create table t1(a int);lock tables t1 write;--exec $MYSQL -e "use test; select database();"unlock tables;drop table t1;## 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## 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## 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;"## "DESCRIBE" commands may return strange NULLness flags.#--exec $MYSQL --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;"--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;"## Bug#19564: mysql displays NULL instead of space#--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;" --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;" ## Bug#21618: NULL shown as empty string in client#--exec $MYSQL test -e "select unhex('zz');" --exec $MYSQL -t test -e "select unhex('zz');" # 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;--disable_parsing## Bug#21042 mysql client segfaults on importing a mysqldump export#--error 1--exec $MYSQL test -e "connect verylongdatabasenamethatshouldblowthe256byteslongbufferincom_connectfunctionxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxendcccccccdxxxxxxxxxxxxxxxxxkskskskskkskskskskskskskskskskkskskskskkskskskskskskskskskend" 2>&1--enable_parsing## 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## 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--diff_files $MYSQLTEST_VARDIR/tmp/bug20328_1.result $MYSQLTEST_VARDIR/tmp/bug20328_2.result## Bug #19216: Client crashes on long SELECT## Create large SELECT# - 3400 * 20 makes 68000 columns that is more than the# max number that can fit in a 16 bit number.--perlopen(FILE,">","$ENV{'MYSQLTEST_VARDIR'}/tmp/b19216.tmp") or die;print FILE "select\n";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;print FILE "'b';\n";close FILE;EOF--disable_query_log--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/b19216.tmp >/dev/null--enable_query_log--remove_file $MYSQLTEST_VARDIR/tmp/b19216.tmp## 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## Bug#17583: mysql drops connection when stdout is not writable#create table t17583 (a int);insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);insert into t17583 select a from t17583;insert into t17583 select a from t17583;insert into t17583 select a from t17583;insert into t17583 select a from t17583;insert into t17583 select a from t17583;insert into t17583 select a from t17583;insert into t17583 select a from t17583;# Close to the minimal data needed to exercise bug.select count(*) from t17583;--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 >&-drop table t17583;## Bug#20984: Reproducible MySQL client segmentation fault# + additional tests for the "com_connect" function in mysql##--echo Test connect without db- or host-name => reconnect--exec $MYSQL test -e "\r" 2>&1--exec $MYSQL test -e "connect" 2>&1--echo Test connect with dbname only => new dbname, old hostname--exec $MYSQL test -e "\r test" 2>&1--exec $MYSQL test -e "connect test" 2>&1--exec $MYSQL test -e "\rtest" 2>&1--error 1--exec $MYSQL test -e "connecttest" 2>&1--echo Test connect with _invalid_ dbname only => new invalid dbname, old hostname--error 1--exec $MYSQL test -e "\r invalid" 2>&1--error 1--exec $MYSQL test -e "connect invalid" 2>&1--echo Test connect with dbname + hostname--exec $MYSQL test -e "\r test localhost" 2>&1--exec $MYSQL test -e "connect test localhost" 2>&1--echo Test connect with dbname + _invalid_ hostname# Mask the errno of the error message--replace_regex /\([0-9]*\)/(errno)/--error 1--exec $MYSQL test -e "\r test invalid_hostname" 2>&1--replace_regex /\([0-9]*\)/(errno)/--error 1--exec $MYSQL test -e "connect test invalid_hostname" 2>&1--echo The commands reported in the bug report--replace_regex /\([0-9]*\)/(errno)/--error 1--exec $MYSQL test -e "\r\r\n\r\n cyril\ has\ found\ a\ bug\ :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2>&1#--replace_regex /\([0-9]*\)/(errno)/#--error 1#--exec echo '\r\r\n\r\n cyril\ has\ found\ a\ bug\ :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' | $MYSQL 2>&1--echo Too long dbname--error 1--exec $MYSQL test -e "\r test_really_long_dbnamexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx localhost" 2>&1--echo Too long hostname--replace_regex /\([0-9]*\)/(errno)/--error 1--exec $MYSQL test -e "\r test cyrils_superlonghostnameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2>&1## Bug #21412: mysql cmdline client allows backslash(es) # as delimiter but can't recognize them## This should work just fine...--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sqlDELIMITER /SELECT 1/EOF--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;# This should give an error...--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sqlDELIMITER \EOF--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;# As should this...--write_file $MYSQLTEST_VARDIR/tmp/bug21412.sqlDELIMITER \\EOF--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug21412.sql 2>&1remove_file $MYSQLTEST_VARDIR/tmp/bug21412.sql;## Some coverage of not normally used parts#--disable_query_log--exec $MYSQL test -e "show status" 2>&1 > /dev/null--exec $MYSQL --help 2>&1 > /dev/null--exec $MYSQL --version 2>&1 > /dev/null--enable_query_log## bug #26851: Mysql Client --pager Buffer Overflow## allow error 7(invalid argument) since --pager does not always exist in mysql--error 0,7--exec $MYSQL --pager="540bytelengthstringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -e "select 1" > /dev/null 2>&1--exec $MYSQL --character-sets-dir="540bytelengthstringxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -e "select 1" 2>&1## bug #30164: Using client side macro inside server side comments generates broken queries#--exec $MYSQL test -e "/*! \C latin1 */ select 1;"--echo End of 5.0 tests
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -