2013年6月13日木曜日

MySQL 5.7 クライアントの新機能(?)

ちょっと感動したMySQL 5.7.1 クライアント(mysqldではない)の新機能。


まずは取り敢えずこのBugs。

MySQL Bugs: #66583: Ctrl-C behavior violates principle of least astonishment http://bugs.mysql.com/bug.php?id=66583

mysqlコマンドラインクライアントに向かってCtrl+Cを叩くとmysqlコマンドラインクライアントが落ちるという、
ごくごく馴染みの動作に対するFeature Request。

MySQL 4.1.6からは--sigint-ignoreというオプションで(そんな昔からあったのか)
SIGINTそのものを無効化してmysqlコマンドラインクライアントが終了しないようにできるものの、
これだとクエリを止めようと思ってもCtrl+Cで止まらなくなる。

$ mysql56 --sigint-ignore
..
mysql56> SELECT SLEEP(10);
^C^C^C^C^C^C^C^C^C+-----------+
| SLEEP(10) |
+-----------+
|         0 |
+-----------+
1 row in set (10.00 sec)

(´・ω・`) ショボーン

だが、MySQL 5.7.0以降では、SIGINTは無効化せず、
SIGINTでmysqlコマンドラインクライアントが終了する動作だけをハンドルしてくれるようになったのだ!
(何もオプション要らない。デフォルト。むしろ--sigint-ignore使うと↑と同じ動作になる)

$ mysql57 -S/usr/mysql/5.6.12/data/mysql.sock
..
mysql57> SELECT SLEEP(10);
^C^C -- query aborted
+-----------+
| SLEEP(10) |
+-----------+
+-----------+
1 row in set (0.51 sec)

mysql57> ^C
mysql57> ^C

mysqldの機能ではなく、mysqlコマンドラインクライアントの機能です。


ところでMySQL 5.7.1って、もうm11(milestone 11)なのね。
MySQL 5.6.6がm9でその次がMySQL 5.6.7-rc(release candidate)だったので、
結構もりもりやってると期待して良いのかしら。


【2013/06/13 17:44】
くだらないこと書いてやったぜー、と思っていたら、御大が既に書いていらっしゃった。。orz

http://nippondanji.blogspot.jp/2013/05/mysqlmysql-57.html

0 件のコメント :

コメントを投稿