2012-10-01から1ヶ月間の記事一覧

ActiveRecord の scope で時刻が一度しか評価されない

表題の現象を確認するために、次のような scope を記述します。 class Hoge < ActiveRecord::Base scope :fuga, where(["some_time <= ?", Time.now]) end これは文法のエラーを起こさないので正しく動作しているように見えますが、実際にはアプリケーション…

PostgreSQL のインデックスはデフォルトで IS NULL 句に使用されない

表題の通り hoge テーブルの fuga 列にインデックスを作成しても CREATE INDEX hoge_fuga ON hoge(fuga); 条件に IS NULL を含む検索ではインデックスは利用されません。 SELECT * FROM hoge WHERE fuga IS NULL; 結果、上の SQL はレコード数が増えると低速…