やわらかテック読者になるやわらかテック興味のあること。業務を通して得られた発見。gemを使って、postgresqlに接続してクエリの実行結果を見ていたところ、boolean型のカラムの戻り値がTRUEの場合にt、FALSEの場合にfとなる現象を確認しました。fとなるのはPostgreSQLの仕様のようでした。先ほど添付したSQLも以下のリンク先の公式ドキュメントから転載しました。8.2にあるように、常にtかfを出力します。fと表示しているのか背景を調べてみたところ、メモリ領域を節約するためとのことでした。tと表示するのではなくtrueと表示するためにはtと表示するのと比べて単純に4倍のメモリ領域が必要になります。内部では正しくboolean型の値を記録しているそうで、表示上のパフォーマンスを考慮した決定だったようです。fとなってしまうため扱いが面倒です。Ruby何か回避方法はないか調べてみたところ、明示的に型をキャストすることで、この問題を解決することが出来ました。falseにして欲しいので::textを使用して、text型にキャストさせます。typename)、もしくは、x::typename式です。}無事に期待していた値を取得することが出来ました。CASE文を使って、明示的にboolean型に変換してみても、結果は変わりませんでした。fとせずにそのまま表記させるようなオプション値はないようです。www.postgresql.org::textとするのが一番楽ですね。Railsでこの現象に遭遇しないのはActiveRecordがパースする処理をしてくれているからのようです。table_nameを避ける方法についてActiveRecordって本当に便利ですよね。22:23名古屋発のベンチャーでWEBアプリのバックエンドをメインに作っています。エンジニア育成やチームビルディングにもちょっとだけ携わっています。3はてなブログをはじめよう!takamizawa46さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。