Ruby/MySQL 3.0.1 alpha

Ruby/MySQL 3.0.1 を作りました。相変わらずアルファ版です。

インストールは次のように。

# sudo gem install tmtm-ruby-mysql --source http://gems.github.com

3.0.0 からの変更点

  • Mysql#query で勝手にプリペアドステートメントを使うのをやめました。いろいろと複雑になってたので。ただし、クエリ文字列以外の引数がついている場合はプリペアドステートメントを使用します。
mysql.query("select 1,2,3")           # プリペアドステートメントではない
mysql.query("select ?,?,?", 1, 2, 3)  # プリペアドステートメント
  • Mysql::Result#fetch 等が返すレコードの値は、Ruby の適切な値に変換するようにしました。
mysql.query("select 123,'abc'").fetch  # => [123, "abc"]
  • Mysql::Statement#execute も Mysql::Result を返すようにしました。正確には Mysql::Result のサブクラスですが。それに伴い Mysql::Statement#each, #fetch 等は廃止しました。

Ruby/MySQL 3.0 全体については id:tmtms:20090322:1237719050 をどうぞ。

MySQL/Ruby 2.x でできるのに Ruby/MySQL 3.0 でできないこと

両方とも誰も使ってないですよね (^^;

[追記]

  • LOAD DATA LOCAL INFILE 命令は発行できません。
  • my.cnf ファイルを読み込む機能がありません。

それ以外はたいていは機能としては存在すると思います。MySQL/Ruby 2.x との互換が重要な場合には、require "mysql/compat" しておけば、ある程度はそれなりに動くんではないかと思います。

3.0.0 から4ヶ月も経ってる割にはこの程度… まあ、実質は数日程なのですが。今後はもうちょっと更新頻度をあげたいところです。
ということで、よろしければどうぞ。