| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Hasql.Statement
Documentation
A specification of a strictly single-statement query, which can be parameterized and prepared.
Consists of the following:
- SQL template,
- params encoder,
- result decoder,
- a flag, determining whether it should be prepared.
The SQL template must be formatted according to Postgres' standard,
with any non-ASCII characters of the template encoded using UTF-8.
According to the format,
parameters must be referred to using the positional notation, as in the following:
$1, $2, $3 and etc.
Those references must be used to refer to the values of the Params encoder.
Following is an example of the declaration of a prepared statement with its associated codecs.
selectSum :: Hasql.Statement.Statement(Int64, Int64) Int64 selectSum = Hasql.Statement.Statementsql encoder decoder True where sql = "select ($1 + $2)" encoder =contramapfst(Hasql.Encoders.valueHasql.Encoders.int8)<>contramapsnd(Hasql.Encoders.valueHasql.Encoders.int8) decoder = Hasql.Decoders.singleRow(Hasql.Decoders.valueHasql.Decoders.int8)
The statement above accepts a product of two parameters of type Int64
and produces a single result of type Int64.
Constructors
| Statement ByteString (Params a) (Result b) Bool |