content: {-# LANGUAGE OverloadedStrings
   #-}
  -- | This module contain PostgreSQL-specific functions.
  --
  -- /Since: 2.2.8/
  module Database.Esqueleto.PostgreSQL
    ( arrayAgg
    , stringAgg
    , chr
    ) where
  
  import Database.Esqueleto.Internal.Language
  import Database.Esqueleto.Internal.Sql
  
  
  -- | (@array_agg@) Concatenate input values, including @NULL@s,
  -- into an array.
  --
  -- /Since: 2.2.8/
  arrayAgg :: SqlExpr (Value a) -> SqlExpr (Value [a])
  arrayAgg = unsafeSqlFunction "array_agg"
  
  
  -- | (@string_agg@) Concatenate input values separated by a
  -- delimiter.
  --
  -- /Since: 2.2.8/
  stringAgg
    :: SqlString s
    => SqlExpr (Value s) -- ^ Input values.
    -> SqlExpr (Value s) -- ^ Delimiter.
    -> SqlExpr (Value s) -- ^ Concatenation.
  stringAgg expr delim = unsafeSqlFunction "string_agg" (expr, delim)
  
  
  -- | (@chr@) Translate the given integer to a character. (Note the result will
  -- depend on the character set of your database.)
  --
  -- /Since: 2.2.11/
  chr :: SqlString s => SqlExpr (Value Int) -> SqlExpr (Value s)
  chr = unsafeSqlFunction "chr"
  