hasql-dynamic-statements-0.3.1.2: Toolkit for constructing Hasql statements dynamically
Safe HaskellNone
LanguageHaskell2010

Hasql.DynamicStatements.Snippet

Synopsis

Documentation

data Snippet Source #

Composable SQL snippet with parameters injected. Abstracts over placeholders and matching of encoders.

It has an instance of IsString, so having the OverloadedStrings extension enabled you can construct it directly from string literals.

Here's an example:

selectSubstring :: Text -> Maybe Int32 -> Maybe Int32 -> Snippet
selectSubstring string from to =
  "select substring(" <> param string <>
  foldMap (\ x -> " from " <> param x) from <>
  foldMap (\ x -> " for " <> param x) to <>
  ")"

Having a decoder you can lift it into Statement using dynamicallyParameterized or directly execute it in Session using dynamicallyParameterizedStatement.

Instances

Instances details
IsString Snippet Source # 
Instance details

Defined in Hasql.DynamicStatements.Snippet.Defs

Methods

fromString :: String -> Snippet

Semigroup Snippet Source # 
Instance details

Defined in Hasql.DynamicStatements.Snippet.Defs

Methods

(<>) :: Snippet -> Snippet -> Snippet

sconcat :: NonEmpty Snippet -> Snippet

stimes :: Integral b => b -> Snippet -> Snippet

Monoid Snippet Source # 
Instance details

Defined in Hasql.DynamicStatements.Snippet.Defs

param :: DefaultParamEncoder param => param -> Snippet Source #

Parameter encoded using an implicitly derived encoder from the type.

encoderAndParam :: NullableOrNot Value param -> param -> Snippet Source #

Parameter with an explicitly defined encoder.

sql :: ByteString -> Snippet Source #

SQL chunk in ASCII.