[前][次][番号順一覧][スレッド一覧]

mysql:309

From: <takeshi@xxxxxxxxxx>
Date: Fri, 23 Oct 1998 13:53:19 +0900
Subject: [mysql 309] mysql-3.22.9-beta LIKE op bug

From: 民斗 <tommy@xxxxxxxxxx>
To: mysql@xxxxxxxxxx
Subject: mysql-3.22.9-beta LIKE op bug
Date: Fri, 23 Oct 1998 11:32:02 +0900

MySQL 3.22.9 がちゃんと MB 対応しているかどうかを確認してたら、
バグを見つけてしまいました。MB 対応したためのバグではありません。
多分、3.22.6 あたりから同じ問題があったんではないかと思います。

	mysql> create table test (id char(10));
	Query OK, 0 rows affected (0.02 sec)
	
	mysql> insert into test values ("aaa");
	Query OK, 1 row affected (0.00 sec)
	
	mysql> insert into test values ("abc");
	Query OK, 1 row affected (0.01 sec)
	
	mysql> insert into test values ("abcabc");
	Query OK, 1 row affected (0.03 sec)
	
	mysql> select * from test;                    
	+--------+
	| id     |
	+--------+
	| aaa    |
	| abc    |
	| abcabc |
	+--------+
	3 rows in set (0.00 sec)
	
	mysql> select * from test where id like "%a";
	Empty set (0.00 sec)
!"aaa" が見つからない
	
	mysql> select * from test where id like "%c";
	+------+
	| id   |
	+------+
	| abc  |
	+------+
	1 row in set (0.00 sec)
!"abcabc" が見つからない

パッチを作って、本家 ML に流したので、問題がなければ次のバージョンに
組み込まれると思います。
--
民斗 <tommy@xxxxxxxxxx>


--- sql/sql_string.cc.orig	Mon Oct 19 02:33:57 1998
+++ sql/sql_string.cc	Fri Oct 23 10:27:13 1998
@@ -416,6 +416,8 @@
 static int wild_case_compare(const char *str,const char *strend,
 			     const char *wildstr,const char *wildend,char escape)
 {
+  if (wildstr == wildend)
+    return (str != strend);
   int result= -1;				// Not found, using wildcards
   while (wildstr != wildend)
   {

---<cut>------<cut>------<cut>------<cut>------<cut>------<cut>------<cut>---



[前][次][番号順一覧][スレッド一覧]