haskelldb-th 1.0 → 1.1
raw patch · 2 files changed
+26/−20 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- haskelldb-th.cabal +1/−1
- src/Database/HaskellDB/CodeGen.hs +25/−19
haskelldb-th.cabal view
@@ -1,5 +1,5 @@ Name: haskelldb-th-Version: 1.0+Version: 1.1 Cabal-version: >= 1.2 Build-type: Simple Homepage: http://patch-tag.com/publicrepos/haskelldb-th
src/Database/HaskellDB/CodeGen.hs view
@@ -228,34 +228,40 @@ This is a Template Haskell function which must be spliced in and is intended to use the @'@ (quote) facility for capturing names. An example: - + +> import Status_v (Status_v, status_v) +> import qualified Status_v as Status_v +> +> import Dtls_v (Dtls_v, dtls_v) +> import qualified Dtls_v as Dtls_v +> +> > qry = do -> dtls <- pts_dlvry_order_dtls; -> status <- table pts_dlvry_status_v; -> restrict (status ! Pts_dlvry_status_v.pts_dlvry_order_dtl_id .==. dtls ! Pts_dlvry_order_dtl_v.pts_dlvry_order_dtl_id) -> project $(mkRecord [('dtls, ['Pts_dlvry_order_dtl_v.prt_desc -> , 'Pts_dlvry_order_dtl_v.pts_dlvry_order_hdr_id -> , 'Pts_dlvry_order_dtl_v.prt_id -> , 'Pts_dlvry_order_dtl_v.pts_dlvry_order_dtl_id]) -> ,('status, ['Pts_dlvry_status_v.item_stat_nbr])]) +> status <- table status_v; +> dtls <- table dtls_v; +> project $(mkRecord [('dtls, ['Dtls_v.desc +> , 'Dtls_v.hdr_id +> , 'Dtls_v.prt_id +> , 'Dtls_v.dtl_id]) +> ,('status, ['Status_v.stat_nbr])]) The type of qry is then -> (RecCons Pts_dlvry_order_dtl_v.Prt_desc (Expr (Maybe BStr40)) -> (RecCons Pts_dlvry_order_dtl_v.Pts_dlvry_order_hdr_id (Expr (Maybe Int)) -> (RecCons Pts_dlvry_order_dtl_v.Prt_id (Expr (Maybe BStr30)) -> (RecCons Pts_dlvry_order_dtl_v.Pts_dlvry_order_dtl_id (Expr (Maybe Int)) -> (RecCons Pts_dlvry_status_v.Item_stat_nbr (Expr (Maybe Int)) RecNil)))))) +> (RecCons Dtls_v.Desc (Expr (Maybe BStr40)) +> (RecCons Dtls_v.Hdr_id (Expr (Maybe Int)) +> (RecCons Dtls_v.Prt_id (Expr (Maybe BStr30)) +> (RecCons Dtls_v.Dtl_id (Expr (Maybe Int)) +> (RecCons Status_v.Stat_nbr (Expr (Maybe Int)) RecNil)))))) If other fields need to be added to the record, they must come before the call to mkRecord: > project $ filtered << someTable ! someField # -> $(mkRecord [('dtls, ['Pts_dlvry_order_dtl_v.prt_desc -> , 'Pts_dlvry_order_dtl_v.pts_dlvry_order_hdr_id -> , 'Pts_dlvry_order_dtl_v.prt_id -> , 'Pts_dlvry_order_dtl_v.pts_dlvry_order_dtl_id]) -> ,('status, ['Pts_dlvry_status_v.item_stat_nbr])]) +> $(mkRecord [('dtls, ['Dtls_v.prt_desc +> , 'Dtls.hdr_id +> , 'Dtls.prt_id +> , 'Dtls.dtl_id]) +> ,('status, ['Status_v.stat_nbr])]) -} mkRecord :: [(TH.Name, [TH.Name])] -> ExpQ