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

mysql:14810

From: Satoshi Tatsuoka <Satoshi Tatsuoka <satoshi@xxxxxxxxxx>>
Date: Sat, 18 Apr 2009 13:37:34 +0900
Subject: [mysql 14810] Re: SJISで文字コードがシフト?してしまい検索できない

立岡です。

ソースコード眺めてみたらおかしなところを発見しました。
ようするにUPPERとLOWERがlatin1と同じ関数が使われているようです。
これをマルチバイト用の関数に直したらうまく動きました。
(この関数がcp932とsjisに対応しているという前提ですが。。。)
動作は下記です。そのあとパッチです。
cp932だけでなくsjisもコードがおかしいようです。

mysql> show create table t;
+-------+-----------------------------------------------------------------------------------------+
| Table | Create Table
                          |
+-------+-----------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (
  `a` varchar(16) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp932 |
+-------+-----------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT a, HEX(a), HEX(UPPER(a)) FROM t;
+--------+----------+---------------+
| a      | HEX(a)   | HEX(UPPER(a)) |
+--------+----------+---------------+
| ビタ | 8372835E | 8372835E      |
| ABC    | 414243   | 414243        |
| abc    | 616263   | 414243        |
+--------+----------+---------------+
3 rows in set (0.02 sec)

mysql> select * from t WHERE upper(a)="ビタ";
+--------+
| a      |
+--------+
| ビタ |
+--------+
1 row in set (0.00 sec)

mysql> select * from t WHERE upper(a)="コタ";
Empty set (0.00 sec)


パッチ
--- mysql-5.0.77-org/strings/ctype-cp932.c	2009-01-30 06:45:47.000000000
+0900
+++ mysql-5.0.77-new/strings/ctype-cp932.c	2009-04-18 12:34:32.000000000
+0900
@@ -5485,10 +5485,10 @@
   my_numcells_cp932,
   my_mb_wc_cp932,	/* mb_wc */
   my_wc_mb_cp932,	/* wc_mb */
-  my_caseup_str_8bit,
-  my_casedn_str_8bit,
-  my_caseup_8bit,
-  my_casedn_8bit,
+  my_caseup_str_mb,
+  my_casedn_str_mb,
+  my_caseup_mb,
+  my_casedn_mb,
   my_snprintf_8bit,
   my_long10_to_str_8bit,
   my_longlong10_to_str_8bit,
satoshi@fasta:~/Downloads$ diff -u mysql-5.0.77-org/strings/ctype-sjis.c
mysql-5.0.77-new/strings/ctype-sjis.c
--- mysql-5.0.77-org/strings/ctype-sjis.c	2009-01-30 06:45:48.000000000
+0900
+++ mysql-5.0.77-new/strings/ctype-sjis.c	2009-04-18 12:35:00.000000000
+0900
@@ -4648,10 +4648,10 @@
   my_numcells_sjis,
   my_mb_wc_sjis,	/* mb_wc */
   my_wc_mb_sjis,	/* wc_mb */
-  my_caseup_str_8bit,
-  my_casedn_str_8bit,
-  my_caseup_8bit,
-  my_casedn_8bit,
+  my_caseup_str_mb,
+  my_casedn_str_mb,
+  my_caseup_mb,
+  my_casedn_mb,
   my_snprintf_8bit,
   my_long10_to_str_8bit,
   my_longlong10_to_str_8bit,

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

     14789 2009-04-15 19:14 [<ALCYONE@xxxxxxxxxx>] SJISで文字コードがシフト?してしまい検索できない
     14790 2009-04-15 19:28 ┣[Isamu Moriyama <mori]                                       
     14791 2009-04-15 19:43 ┃┗[<ALCYONE@xxxxxxxxxx>]                                     
     14792 2009-04-15 20:17 ┣[SAKAI Kei <sak2@xxxx]                                       
     14795 2009-04-16 15:06 ┃┣[<ALCYONE@xxxxxxxxxx>]                                     
     14796 2009-04-16 15:13 ┃┃┣[<ALCYONE@xxxxxxxxxx>]                                   
   @ 14800 2009-04-16 17:28 ┃┃┃┗[chuuken kenkou <ken_]                                 
     14803 2009-04-17 19:51 ┃┃┃ ┗[<ALCYONE@xxxxxxxxxx>]                               
     14805 2009-04-17 20:50 ┃┃┃  ┗[Satoshi Tatsuoka <sa]                             
     14802 2009-04-17 17:05 ┃┃┗[SAKAI Kei <sak2@xxxx]                                   
     14806 2009-04-17 20:55 ┃┃ ┗[<ALCYONE@xxxxxxxxxx>]                                 
     14801 2009-04-17 15:52 ┃┗[Mikiya Okuno <Mikiya]                                     
     14804 2009-04-17 20:38 ┃ ┗[<ALCYONE@xxxxxxxxxx>]                                   
     14807 2009-04-17 21:00 ┃  ┗[SAKAI Kei <sak2@xxxx]                                 
     14808 2009-04-17 21:12 ┃   ┣[SAKAI Kei <sak2@xxxx]                               
->   14810 2009-04-18 13:37 ┃   ┃┗[Satoshi Tatsuoka <sa]                             
     14811 2009-04-18 15:38 ┃   ┃ ┣[Yoshinori Matsunobu ]                           
     14813 2009-04-18 17:03 ┃   ┃ ┃┗[Satoshi Tatsuoka <sa]                         
     14814 2009-04-18 17:17 ┃   ┃ ┃ ┗[Yoshinori Matsunobu ]                       
     14815 2009-04-20 10:03 ┃   ┃ ┃  ┗[<ALCYONE@xxxxxxxxxx>]                     
     14821 2009-05-06 14:05 ┃   ┃ ┃   ┗[SAKAI Kei <sak2@xxxx]                   
     14840 2009-05-09 12:01 ┃   ┃ ┃    ┣[SAKAI Kei <sakaik@xx]                 
     14956 2009-07-06 16:57 ┃   ┃ ┃    ┗[SAKAI Kei <sak2@xxxx] MySQL 5.1.36 リリース(was Re:  Re: SJISで文字コードがシフト?してしまい検索できない
     14812 2009-04-18 16:10 ┃   ┃ ┗[SAKAI Kei <sak2@xxxx]                           
     14809 2009-04-17 21:23 ┃   ┗[Satoshi Tatsuoka <sa]                               
     14794 2009-04-15 23:37 ┗[とみたまさひろ <tomm]                                       
     14797 2009-04-16 15:34  ┗[<ALCYONE@xxxxxxxxxx>]                                     
     14798 2009-04-16 15:41   ┗["Y. Tsutsui" <tutui@]                                   
     14799 2009-04-16 16:44    ┗[<ALCYONE@xxxxxxxxxx>]