module

Prostore::SQL

A literal SQL fragment passed verbatim to the backend.

SQL.expr("now()") is intended for static expressions in default:, backfill:, and where: (partial index predicate) options. The library does not parse the fragment — portability across SQLite and PostgreSQL is the user's responsibility when targeting both.

The macro wrapper at Prostore::SQL.expr rejects non-string-literal arguments at compile time to prevent accidental Crystal-value interpolation that would produce SQL injection.

Macros

expr(literal)

SQL.expr("...") — must be a string literal.

Compile error if argument is interpolation, a method call, or a variable.

Source

Nested types