packages feed

persistable-types-HDBC-pg-0.0.1.2: example/DS.hs

{-# LANGUAGE TemplateHaskell #-}

module DS (definePgTable) where

import Language.Haskell.TH (Q, Dec, Name)
import Database.HDBC.PostgreSQL (connectPostgreSQL)
import Database.HDBC.Query.TH (defineTableFromDB)
import Database.HDBC.Schema.Driver (Driver (..))
import Database.HDBC.Schema.PostgreSQL (driverPostgreSQL)
import Data.PostgreSQL.NetworkAddress

addNetAddress :: Driver conn -> Driver conn
addNetAddress d =
  d { typeMap = [ ("inet", [t| Inet |]), ("cidr", [t| Cidr |] ) ] ++ typeMap d }

definePgTable :: String -> String -> [Name] -> Q [Dec]
definePgTable =
  defineTableFromDB (connectPostgreSQL "dbname=testdb") (addNetAddress driverPostgreSQL)