mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
689fae6406
The mysql client uses the default character set on reconnect. The default character set is now controled by the client charset command while the client is running. The charset command now also issues a SET NAMES command to the server to make sure that the client's charset settings are in sync with the server's. client/mysql.cc: Client charset command now changes the default character set and issues a SET NAMES command to the server. mysql-test/r/mysql.result: Corrected results for new behaviour. mysql-test/t/mysql.test: Removed redundant commands from test.
143 lines
5.8 KiB
Text
143 lines
5.8 KiB
Text
# This test should work in embedded server after we fix mysqltest
|
||
-- source include/not_embedded.inc
|
||
#
|
||
# 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
|
||
--exec $MYSQL test 2>&1 < "./t/mysql_delimiter.sql"
|
||
|
||
--disable_query_log
|
||
# Test delimiter : supplied on the command line
|
||
select "Test delimiter : from command line" as "_";
|
||
--exec $MYSQL test --delimiter=":" -e "select * from t1:"
|
||
# Test delimiter :; supplied on the command line
|
||
select "Test delimiter :; from command line" as "_";
|
||
--exec $MYSQL test --delimiter=":;" -e "select * from t1:;"
|
||
# Test 'go' command (vertical output) \G
|
||
select "Test 'go' command(vertical output) \G" as "_";
|
||
--exec $MYSQL test -e "select * from t1\G"
|
||
# Test 'go' command \g
|
||
select "Test 'go' command \g" as "_";
|
||
--exec $MYSQL test -e "select * from t1\g"
|
||
--enable_query_log
|
||
drop 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#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
|
||
--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 'ƒ\'"
|
||
--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 'ƒ\'"
|
||
|
||
#
|
||
# 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#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 ('á›–áš´ áš·á›–á›<C3A1>'); select * from t1; DROP TABLE t1;"
|
||
|
||
#
|
||
# "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;"
|
||
|
||
#
|
||
# 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;"
|
||
|
||
#
|
||
# 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
|
||
--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
|