packages feed

hasql-cursor-query-0.4.5.4: src/integration-tests/Helpers/Statements.hs

module Helpers.Statements where

import Hasql.Decoders qualified as D
import Hasql.Encoders qualified as E
import Hasql.Statement
import Prelude

countPGType :: Statement () Int
countPGType =
  preparable sql encoder decoder
  where
    sql =
      "select count(*) from pg_type"
    encoder =
      E.noParams
    decoder =
      (D.singleRow . D.column . D.nonNullable . fmap fromIntegral) D.int8

selectOidAndTypeName :: Statement () [(Int64, Text)]
selectOidAndTypeName =
  preparable sql encoder decoder
  where
    sql =
      "select oid::int8, typname::text from pg_type"
    encoder =
      E.noParams
    decoder =
      D.rowList rowDecoder
      where
        rowDecoder =
          (,) <$> (D.column . D.nonNullable) D.int8 <*> (D.column . D.nonNullable) D.text