テーブル名に2バイト目'60'文字を使用するとmysqlclientがいかれる件

http://bugs.mysql.com/bug.php?id=15338

MyNAのML(日本MySQLユーザ会メーリングリスト、いわゆるmysqlの日本人メーリングリスト最大手)にて報告されていた2バイト目が'60'の文字がテーブル名で使用できない件についてのバグ報告だが,Mr.CharsetことAlexander Barkov氏によって「単なるcharset設定ミス」と判定されてしまった(not a bug).

だから,違うってのにw

charsetなんてBugReport書く前からこっちはチェック済みで,charsetの設定とは無関係に発生するからレポートにもcharsetの話を「わざと抜いて行った」のに・・・!

charsetは関係ないですよって明記しとかなきゃいかんかったのかな orz

敢えて言うなら,これはcharacter_set_system的問題なわけなので,ユーザからは手出しができない話ということだと思うのだけれども.

自分に本体弄って直せる技術力があればなー.やってみたいけどWindows上でのmysqlコンパイルってどーするんだ.MSのIDE買わないといかんのかな?



ちょっと混乱してたみたいですが、もう一度整理.

  • これはmysqlclientの問題(Connector/Jでは発生しない)

my.iniに以下のように書くと問題ないのだけれども、

[mysql]
default-character-set=sjis

"SET NAMES sjis"では機能しない.つまり"SET NAMES"はサーバ側の変数しか変更されおらず,mysqlclient側には反映されていないのでSQL文を処理するmysqlclient側にまだ問題が残っているのでは,とコメント欄でTajika氏から指摘.

即ち,変数character_set_clientの意味する所が訳がわからない状態になってはいまいか,というのが現時点での問題点.

my.iniへの設定無しに実行.

D:\mysql\mysql-noinstall-5.0.16-win32\bin>mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 5.0.16-nt-max

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test
Database changed
mysql> show variables like 'character_set_client'\G
*************************** 1. row ***************************
Variable_name: character_set_client
        Value: latin1
1 row in set (0.01 sec)

mysql> set names sjis;
Query OK, 0 rows affected (0.02 sec)

mysql> show variables like 'character_set_client'\G
*************************** 1. row ***************************
Variable_name: character_set_client
        Value: sjis
1 row in set (0.00 sec)

mysql> create table `港` (c1 int);
    `> `
    -> \c
mysql>