2006-02-24 Ruby/DBI のバグらしきものを踏んだ 日記 Ruby Ruby/DBI の MySQL ドライバの不具合でハマった。TINYINT が String で返ってきて、別の DBMS から移植したプログラムが TypeError を吐きまくる。環境は Debian sarge。 調べてみたら、DBI::DBD::Mysql::Database::TYPE_MAP の初期化のところで、TYPE_CHAR (TYPE_TINY の別名) を認識できずに TINYINT の TYPE_MAP をデフォルト(:as_str)で上書きするようだ。 ライブラリを書き換えるのは面倒なので、DB 上の TINYINT を全部 INT にしてやった。