hpgsql-simple-compat-0.1.0.0: src/Database/PostgreSQL/Query/Functions.hs
module Database.PostgreSQL.Query.Functions
( pgQuery,
)
where
import Control.Monad.IO.Class (liftIO)
import Database.PostgreSQL.Query.SqlBuilder (ToSqlBuilder (..), defaultLogMasker, runSqlBuilder)
import Database.PostgreSQL.Query.Types (HasPostgres (..), MonadPostgres)
import Database.PostgreSQL.Simple (query)
import Database.PostgreSQL.Simple.FromRow (FromRow)
import GHC.Stack (HasCallStack)
-- | Execute a query generated by 'sqlExp' and return results.
--
-- @
-- let userName = "Vovka Erohin" :: Text
-- pgQuery [sqlExp| SELECT id, name FROM users WHERE name = \#{userName}|]
-- @
pgQuery ::
(MonadPostgres m, ToSqlBuilder q, FromRow r, HasCallStack) =>
q ->
m [r]
pgQuery q = withPGConnection $ \conn -> liftIO $ do
(simpleQ, row) <- runSqlBuilder conn defaultLogMasker (toSqlBuilder q)
query conn simpleQ row