mysql:1794
From: <takeshi@xxxxxxxxxx>
Date: Wed, 22 Mar 2000 04:23:34 +0900
Subject: [mysql 01794] Re: sjis & order by
どうもありがとうございます At Wed, 22 Mar 2000 01:52:02 +0900, とみたまさひろ <tommy@xxxxxxxxxx> wrote: > > とみたです。 > > At Tue, 21 Mar 2000 20:18:42 +0900, > takeshi@xxxxxxxxxx wrote: > > > 現在の MySQL のコードでは、char 型に代入された SJIS 文字の > > 2byte 目が 0x41-0x5a (=[a-z]), 0x61-0x7a (=[A-Z]) の時に、 > > 2byte 目が ケース非依存でソートされてしまいます。 > > ああ、SJIS にはそういう問題があったんですね。試してみると確かに "1", > "A", "B" が "B", "1", "A" の順に並んじゃいますね。気づきませんでし > た。 > > > MySQL を --with-charset=sjis で作成して、 > > char 型(binary 属性はつけない)に sjis データを入れた時、 > > order by が一部、正しく出なかったのを修正するパッチです。 > > 検証してみてください。 > > 3.22.32用のパッチです > > いくつかまずいところがあるようです。実際に問題が発生するのを確認したわけ > ではありませんが。バッファをオーバーしてデータを読み書きする可能性があっ > たり、「\」の後に2バイトデータが来ることが考慮されてなかったり…。 「\」の後に2バイト文字 か... 考慮外でした。 > # GBK という名称が残ってたり… :-) やっぱり削られた. :) # 半角かなのソートオーダーを後で組み込むとき, # GBK のルーチンが色々使えないかなと思って残してたけど > ということで私もパッチを作ってみました(ctype-sjis.c だけ)。strnxfrm とか > like_range とかを良く理解せずに書いているので、変かもしれません… (^^; > > # ぢつわ GBK のコードの方が正しかったりして… (^^;; コード空間が GBK, SJIS はほとんど同じなので、 もし GBK で問題がでるのなら、同じ問題が SJIS でも起こるはず、 と思ってます。 # ごめんなさい、この続きは来週から又とりくみます. # 取り急ぎ. -- 村上 毅 takeshi@xxxxxxxxxx
1790 2000-03-21 20:18 [<takeshi@xxxxxxxxxx>] sjis & order by 1792 2000-03-22 01:52 ┗[とみたまさひろ <tomm] -> 1794 2000-03-22 04:23 ┗[<takeshi@xxxxxxxxxx>]