postgresql-query-3.7.0: Sql interpolating quasiquote plus some kind of primitive ORM using it

Safe HaskellNone
LanguageHaskell2010

Database.PostgreSQL.Query.Internal

Contents

Synopsis

Low level generators

buildFields :: [FN] -> SqlBuilder Source #

Generates comma separated list of field names

>>> runSqlBuilder con $ buildFields ["u" <> "name", "u" <> "phone", "e" <> "email"]
"\"u\".\"name\", \"u\".\"phone\", \"e\".\"email\""

updateTable Source #

Arguments

:: (ToSqlBuilder q, ToMarkedRow flds) 
=> FN

table name

-> flds

fields to update

-> q

condition

-> SqlBuilder 

generates UPDATE query

>>> let name = "%vip%"
>>> runSqlBuilder con $ updateTable "ships" (MR [("size", mkValue 15)]) [sqlExp|WHERE size > 15 AND name NOT LIKE #{name}|]
"UPDATE \"ships\" SET  \"size\" = 15  WHERE size > 15 AND name NOT LIKE '%vip%'"

insertInto Source #

Arguments

:: ToMarkedRow b 
=> FN

table name

-> b

list of pairs (name, value) to insert into

-> SqlBuilder 

Generate INSERT INTO query for entity

>>> runSqlBuilder con $ insertInto "foo" $ MR [("name", mkValue "vovka"), ("hobby", mkValue "president")]
"INSERT INTO \"foo\" (\"name\", \"hobby\") VALUES ('vovka', 'president')"