psql パッケージ
github.com/stephenafamo/bob/dialect/psql は「式(Expression)」や「生SQL構築ヘルパー」を提供します。
sm は「句(Modifier)」、psql は「式(Expression)」という役割の違いがあります。
よく使う psql の関数
psql.Raw(sql, args...)
→ プレースホルダ付きの生SQLを Expression として作る
例:sm.Where(psql.Raw("title = ? OR title = ?", "abc", "def"))
psql.Quote(table, column)
→ "table"."column" のカラム参照を安全に作る
例:psql.Quote("master_books","title").EQ(psql.Arg("abc"))
psql.Arg(value)
→ 値を Expression に変換して安全に埋め込む
psql.Or(expr1, expr2, ...), psql.And(...)
→ 複数条件をまとめる
使い方
sm.Where 内で生SQLっぽく書きたいときは psql.Raw
カラム引用は psql.Quote
値埋め込みは psql.Arg
複合条件は psql.Or / psql.And