From 70269a091e0fe4d7331ddcace4d248947e304fcb Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 9 Aug 2006 13:41:08 -0400 Subject: [PATCH 1/2] Removed iggy's accidentally checked-in test files. BitKeeper/deleted/.del-bug20328.test: Delete: mysql-test/t/bug20328.test BitKeeper/deleted/.del-bug20328.result: Delete: mysql-test/r/bug20328.result --- mysql-test/r/bug20328.result | 44 ------------------------------------ mysql-test/t/bug20328.test | 9 -------- 2 files changed, 53 deletions(-) delete mode 100644 mysql-test/r/bug20328.result delete mode 100644 mysql-test/t/bug20328.test diff --git a/mysql-test/r/bug20328.result b/mysql-test/r/bug20328.result deleted file mode 100644 index 62955775ec4..00000000000 --- a/mysql-test/r/bug20328.result +++ /dev/null @@ -1,44 +0,0 @@ -? (\?) Synonym for `help'. -clear (\c) Clear command. -connect (\r) Reconnect to the server. Optional arguments are db and host. -delimiter (\d) Set query delimiter. -edit (\e) Edit command with $EDITOR. -ego (\G) Send command to mysql server, display result vertically. -exit (\q) Exit mysql. Same as quit. -go (\g) Send command to mysql server. -help (\h) Display this help. -nopager (\n) Disable pager, print to stdout. -notee (\t) Don't write into outfile. -pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. -print (\p) Print current command. -prompt (\R) Change your mysql prompt. -quit (\q) Quit mysql. -rehash (\#) Rebuild completion hash. -source (\.) Execute an SQL script file. Takes a file name as an argument. -status (\s) Get status information from the server. -system (\!) Execute a system shell command. -tee (\T) Set outfile [to_outfile]. Append everything into given outfile. -use (\u) Use another database. Takes database name as argument. -charset_name(\C) Switch to another charset. Might be needed for processing binlog. -? (\?) Synonym for `help'. -clear (\c) Clear command. -connect (\r) Reconnect to the server. Optional arguments are db and host. -delimiter (\d) Set query delimiter. -edit (\e) Edit command with $EDITOR. -ego (\G) Send command to mysql server, display result vertically. -exit (\q) Exit mysql. Same as quit. -go (\g) Send command to mysql server. -help (\h) Display this help. -nopager (\n) Disable pager, print to stdout. -notee (\t) Don't write into outfile. -pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. -print (\p) Print current command. -prompt (\R) Change your mysql prompt. -quit (\q) Quit mysql. -rehash (\#) Rebuild completion hash. -source (\.) Execute an SQL script file. Takes a file name as an argument. -status (\s) Get status information from the server. -system (\!) Execute a system shell command. -tee (\T) Set outfile [to_outfile]. Append everything into given outfile. -use (\u) Use another database. Takes database name as argument. -charset_name(\C) Switch to another charset. Might be needed for processing binlog. diff --git a/mysql-test/t/bug20328.test b/mysql-test/t/bug20328.test deleted file mode 100644 index 6ae4717de9c..00000000000 --- a/mysql-test/t/bug20328.test +++ /dev/null @@ -1,9 +0,0 @@ -# This test should work in embedded server after we fix mysqltest --- source include/not_embedded.inc - -# -# Bug #20328: mysql client interprets commands in comments -# ---exec echo 'help' | $MYSQL ---exec echo 'help ' | $MYSQL - From bfdbb780c26aae2705cf0d7e3048b5c0e40f59e1 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 10 Aug 2006 15:06:22 +0500 Subject: [PATCH 2/2] Fix for bug #20709: Collation not used in group by on 4.1. myisam/mi_uniue.c:mi_check_unique() should skip trailing spaces comparing TEXT and VARTTEXT key segments. myisam/mi_unique.c: Fix for bug #20709: Collation not used in group by on 4.1. myisam/mi_uniue.c:mi_check_unique() should skip trailing spaces comparing TEXT and VARTTEXT key segments. Example: assume, we have a 'char(200) collate utf8_unicode_ci' field, there are two records with _utf8"0x65" and _utf8"0xC3A9" characters; these values are equal according to the utf8_unicode_ci collation, but two 600 byte length corresponding keys: "0x65<0x20 repeats 599 times>" and "0xC3A9<0x20 repeats 598 times>" are not equal if we count trailing spaces and it may cause inconsequent behavior. So, let's pass 1 as the skip_end_space parameter value to the mi_compare_text() function for proper TEXT and VARTTEXT key segments comparison. mysql-test/r/ctype_utf8.result: Fix for bug #20709: Collation not used in group by on 4.1. - test results. mysql-test/t/ctype_utf8.test: Fix for bug #20709: Collation not used in group by on 4.1. - test case. --- myisam/mi_unique.c | 2 +- mysql-test/r/ctype_utf8.result | 16 ++++++++++++++++ mysql-test/t/ctype_utf8.test | 14 ++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/myisam/mi_unique.c b/myisam/mi_unique.c index b5baa448609..1a116e50174 100644 --- a/myisam/mi_unique.c +++ b/myisam/mi_unique.c @@ -185,7 +185,7 @@ int mi_unique_comp(MI_UNIQUEDEF *def, const byte *a, const byte *b, if (type == HA_KEYTYPE_TEXT || type == HA_KEYTYPE_VARTEXT) { if (mi_compare_text(keyseg->charset, (uchar *) pos_a, length, - (uchar *) pos_b, length, 0, 0)) + (uchar *) pos_b, length, 0, 1)) return 1; } else diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result index 4ceacaffcbb..0833e73b0a9 100644 --- a/mysql-test/r/ctype_utf8.result +++ b/mysql-test/r/ctype_utf8.result @@ -1293,3 +1293,19 @@ id tid val 42749 72 VOLNÝ ADSL 44205 72 VOLNÝ ADSL DROP TABLE t1; +create table t1(a char(200) collate utf8_unicode_ci NOT NULL default '') +default charset=utf8 collate=utf8_unicode_ci; +insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65')); +explain select distinct a from t1; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary +select distinct a from t1; +a +e +explain select a from t1 group by a; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary; Using filesort +select a from t1 group by a; +a +e +drop table t1; diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test index b1d485ad1ce..e737a8d381f 100644 --- a/mysql-test/t/ctype_utf8.test +++ b/mysql-test/t/ctype_utf8.test @@ -1040,4 +1040,18 @@ ALTER TABLE t1 ADD KEY idx (tid,val(11)); SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNÝ ADSL'; DROP TABLE t1; + +# +# Bug 20709: problem with utf8 fields in temporary tables +# + +create table t1(a char(200) collate utf8_unicode_ci NOT NULL default '') + default charset=utf8 collate=utf8_unicode_ci; +insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65')); +explain select distinct a from t1; +select distinct a from t1; +explain select a from t1 group by a; +select a from t1 group by a; +drop table t1; + # End of 4.1 tests