postgresql-simple-interpolate alternatives and similar packages
Based on the "postgresql" category.
Alternatively, view postgresql-simple-interpolate alternatives based on common mentions on social networks and blogs.
-
postgresql-simple-named
:question: Implementation of named parameters for `postgresql-simple` library -
postgresql-placeholder-converter
Converter for question mark style and dollar sign style of PostgreSQL SQL.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of postgresql-simple-interpolate or a related project?
README
postgresql-simple-interpolate
Write natural SQL statements in Haskell using a QuasiQuotes!
{-# LANGUAGE QuasiQuotes #-}
import Data.Char (toLower)
import qualified Database.PostgreSQL.Simple as Pg
import Database.PostgreSQL.Simple.SqlQQ.Interpolated (isql)
import Control.Exception (bracket)
main :: IO ()
main = do
bracket (Pg.connectPostgreSQL "host=localhost") Pg.close $ \conn -> do
let limit = 10
ages <- uncurry (query conn) [isql|SELECT age FROM table WHERE name = ${map toLower "CLIVE"} LIMIT ${limit}|]
print (ages :: [Pg.Only Int])
|]
Hacking
With Nix you can quickly play around with this using a PostgreSQL database:
nix-shell -p '(import ./. {}).haskellPackages.ghcWithPackages (p: [p.gargoyle-postgresql-connect p.postgresql-simple-interpolate])' --run ghci
Then run
:set -XQuasiQuotes
import Gargoyle.PostgreSQL.Connect (withDb)
import Data.Pool (withResource)
import Database.PostgreSQL.Simple (Only (..), query)
import Database.PostgreSQL.Simple.SqlQQ.Interpolated (isql)
[isql|SELECT ${1 + 1}|]
-- ("SELECT ?",[Plain "2"])
withDb "db" $ \pool -> withResource pool $ \c -> (uncurry (query c) [isql|SELECT ${1 + 1}, ${reverse "HELLO"}::text|] :: IO [(Int, String)])
-- [(2,"OLLEH")]
Acknowledgements
This library is basically just a copy of the here
package by Taylor M. Hedberg with slight modifications!