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

mysql:14811

From: Yoshinori Matsunobu <Yoshinori Matsunobu <Yoshinori.Matsunobu@xxxxxxxxxx>>
Date: Fri, 17 Apr 2009 20:38:39 -1000
Subject: [mysql 14811] Re: SJISで文字コードがシフト?してしまい検索できない

松信です。

立岡さん、バグ情報ばかりか
パッチまで作成してくださってありがとうございます。
5.0だけでなく、5.1と6.0でもsjis/cp932について
コードは同じなので、新規のバグかと思います。

立岡さんのパッチで良いと思います。
eucjpms/ujis/utf8ではそうなっていますから、
日本語環境ではsjis/cp932のみで発生する現象
(といっても0x5CとかシフトJIS固有の問題ではなく単なるバグ)
ということになるでしょう。

お手数ですが、本現象とパッチについて、
バグレポートの方に登録して頂くことはできませんでしょうか?
http://bugs.mysql.com/report.php

ご面倒でしたらこちらでやっておきますのでお知らせください。

以上です。よろしくお願い致します。

-- 
Yoshinori Matsunobu
Principal MySQL Consultant
Sun Microsystems

MySQL Consulting Services:
http://www-jp.mysql.com/consulting/


> 立岡です。
> 
> ソースコード眺めてみたらおかしなところを発見しました。
> ようするに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>]