思いつくままプログラミングネタを書き殴ります。PL/pgSQLで検索条件を与えた時だけ検索する小ネタ例えば以下のような、ストアードプロシージャーをあります。plpgsql;このとき、引数の削除フラグがNULLの場合には、削除フラグが立っていようがいまいが検索したいとします。このままNULLを入れて呼び出すとフラグが設定されていないものだけ取ってきてしまうので、うまくいきません。単純に考えればIF文で判定してSELECT文を分ければ問題ありません。plpgsql;しかし、同じようなSELECT文を書かなければならず冗長です。以下のようにしてみました。plpgsql;これですと、p_delete_flagがNULLの時はWHERE句のORの前がTRUEになり、削除フラグがどんな値でも検索します。p_delete_flagに値が入っている時は、ORの後の判定が有効になるので、指定した削除フラグの行が検索できます。おまけとして、引数のDEFAULT値をNULLにしておきました。指定無しの場合はNULLになります。複雑な検索系の画面で、検索条件が与えられている時だけWHERE句に追加したいみたいなSQLを作りたい時に役に立つと思います。(12/28)PostgreSQLとRubyを組み合わせてブラックリストチェックの速度を測ってみた。