persistent-relational-record 0.1.1.0 → 0.1.2.0
raw patch · 15 files changed
+74/−87 lines, 15 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Database.Persist.Relational.Instances: instance Database.Record.KeyConstraint.HasColumnConstraint Database.Record.KeyConstraint.NotNull GHC.Types.Int
- Database.Persist.Relational.Instances: instance Database.Record.Persistable.PersistableWidth GHC.Types.Int
Files
- .travis.yml +7/−13
- .travis/stack-lts-5.yaml +0/−12
- .travis/stack-lts-7.yaml +0/−11
- .travis/stack-lts-8-hrrhead.yaml +0/−16
- .travis/stack-lts-8.yaml +0/−16
- .travis/stack-lts-9-hrrhead.yaml +21/−0
- .travis/stack-lts-9.yaml +8/−0
- ChangeLog.md +4/−0
- examples/Types.hs +6/−0
- examples/main.hs +5/−0
- persistent-relational-record.cabal +1/−1
- src/Database/Persist/Relational.hs +2/−2
- src/Database/Persist/Relational/TH.hs +11/−2
- stack.yaml +2/−5
- tests/unit.hs +7/−9
.travis.yml view
@@ -8,33 +8,23 @@ apt: sources: [ hvr-ghc ] packages: [ ghc-7.8.4 ]- - env: GHCVER=7.10.3 STACK_LTS=lts-5 STACK_TEMPLATE=stack-lts-5.yaml- addons:- apt:- sources: [ hvr-ghc ]- packages: [ ghc-7.10.3 ] - env: GHCVER=7.10.3 STACK_LTS=lts-6 STACK_TEMPLATE=stack-lts-6.yaml addons: apt: sources: [ hvr-ghc ] packages: [ ghc-7.10.3 ]- - env: GHCVER=8.0.1 STACK_LTS=lts-7 STACK_TEMPLATE=stack-lts-7.yaml- addons:- apt:- sources: [ hvr-ghc ]- packages: [ ghc-8.0.1 ]- - env: GHCVER=8.0.2 STACK_LTS=lts-8 STACK_TEMPLATE=stack-lts-8.yaml+ - env: GHCVER=8.0.2 STACK_LTS=lts-9 STACK_TEMPLATE=stack-lts-9.yaml addons: apt: sources: [ hvr-ghc ] packages: [ ghc-8.0.2 ]- - env: GHCVER=8.0.2 STACK_LTS=lts-8 STACK_TEMPLATE=stack-lts-8-hrrhead.yaml+ - env: GHCVER=8.0.2 STACK_LTS=lts-9 STACK_TEMPLATE=stack-lts-9-hrrhead.yaml addons: apt: sources: [ hvr-ghc ] packages: [ ghc-8.0.2 ] allow_failures:- - env: GHCVER=8.0.2 STACK_LTS=lts-8 STACK_TEMPLATE=stack-lts-8-hrrhead.yaml+ - env: GHCVER=8.0.2 STACK_LTS=lts-9 STACK_TEMPLATE=stack-lts-9-hrrhead.yaml before_install: # Download and unpack the stack executable@@ -59,3 +49,7 @@ cache: directories: - ~/.stack++notifications:+ slack:+ secure: "Ijre6+6b3uf6M8goKFvUg71KtgwYdGCgXeOdpnQDjS5Q30od9XxlVupNk/zIEMgp8OckZSuY8dR4oxP3yGJ1gO289lNhJ5eMvfph9tsVtuYuyoLFo6iDLsl6QRwW5C88ZOrzuqjIEAKFhbt16dOkBOVhMJ3uXTYUbF/RXQtbKmNO1rPaD6seBHdzz+TUfDKG7AUx4OWgBz0dagFWK/kp5hyQjXz+0v6NYhPiHf6ZgS2v8hqUqZ2cQy1jPnWkQDYxwXC+naDytFHIyxrTbpyiU/ZRb9juGZY5Xcvd5HZK09osU27zsg6HvnejFpNsFegQ3maNVKX43oJsjLNUodau4Hd1xbwD03oz8SbKjuLlaKLibF1PcWSQFZPpy4RrXuHYMPn4MjgAzmDgl4FxAUyn2rYpqjBuiWqBTH5QplXuyCU12mTNVguWgY64d48GGyN7nprOxY0ViZIxYuBcGnljVXRJll2mDaDgRQatTpELeN4ITiw//wtCtFlz2VuVHGne3LZdQiSmjFCWQ6M2P1zF9b3fMBNmOC05FOVkH54BnKk6te2muFTN2FrOc6fQCyxlR4lxAI3nOulfLcrkQ7m0q6q43JAIkoivIMDfuECX5olq/RorL/zqBSizBbIpPSlGfz7FgnHAhYTsPaoEHr42OYN3W42mGNEiHiaJg+XGt8o="
− .travis/stack-lts-5.yaml
@@ -1,12 +0,0 @@-resolver: __RESOLVER__-packages:-- '.'-extra-deps:-- names-th-0.2.0.2-- persistable-record-0.5.0.1-- relational-query-0.9.1.0-- sql-words-0.1.4.1-- th-data-compat-0.0.2.2-- th-reify-compat-0.0.1.1-flags: {}-extra-package-dbs: []
− .travis/stack-lts-7.yaml
@@ -1,11 +0,0 @@-resolver: __RESOLVER__-packages:-- '.'-extra-deps:-- persistent-mysql-2.6-- mysql-simple-0.4.0.0-- mysql-0.1.3-flags:- persistent-relational-record:- test-examples: True-extra-package-dbs: []
− .travis/stack-lts-8-hrrhead.yaml
@@ -1,16 +0,0 @@-resolver: __RESOLVER__-packages:-- '.'-- location:- git: https://github.com/khibino/haskell-relational-record.git- commit: master- subdirs:- - names-th- - persistable-record- - relational-query- - sql-words-extra-deps: []-flags:- persistent-relational-record:- test-examples: True-extra-package-dbs: []
− .travis/stack-lts-8.yaml
@@ -1,16 +0,0 @@-resolver: __RESOLVER__-packages:-- '.'-- location:- git: https://github.com/khibino/haskell-relational-record.git- commit: master- subdirs:- - names-th- - persistable-record- - relational-query- - sql-words-extra-deps: []-flags:- persistent-relational-record:- test-examples: True-extra-package-dbs: []
+ .travis/stack-lts-9-hrrhead.yaml view
@@ -0,0 +1,21 @@+resolver: __RESOLVER__+packages:+- '.'+- location:+ git: https://github.com/khibino/haskell-relational-record.git+ commit: master+ subdirs:+ - names-th+ - persistable-record+ - relational-query+ - sql-words+ extra-dep: true+- location:+ git: https://github.com/khibino/haskell-product-isomorphic.git+ commit: master+ extra-dep: true+extra-deps: []+flags:+ persistent-relational-record:+ test-examples: True+extra-package-dbs: []
+ .travis/stack-lts-9.yaml view
@@ -0,0 +1,8 @@+resolver: __RESOLVER__+packages:+- '.'+extra-deps: []+flags:+ persistent-relational-record:+ test-examples: True+extra-package-dbs: []
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.1.2.0++- Support relational-query >= 0.10.0+ ## 0.1.1.0 - Support persistable-record >= 0.5.0
examples/Types.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TemplateHaskell #-} @@ -8,8 +9,13 @@ import Database.Persist.Relational import Database.Persist.Sql import Database.Record.TH (deriveNotNullType, deriveNotNullType)+#if MIN_VERSION_relational_query(0, 10, 0)+import Database.Relational+import Database.Relational.TH (defineScalarDegree, defineScalarDegree)+#else import Database.Relational.Query import Database.Relational.Query.TH (defineScalarDegree, defineScalarDegree)+#endif data ImageType = JPEG | PNG | BMP | GIF deriving (Show, Eq, Enum)
examples/main.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} @@ -13,7 +14,11 @@ import Database.Persist import Database.Persist.MySQL import Database.Persist.Relational+#if MIN_VERSION_relational_query(0, 10, 0)+import Database.Relational as HRR hiding (fromMaybe, ($$))+#else import Database.Relational.Query as HRR hiding (fromMaybe)+#endif import System.Environment import qualified Image
persistent-relational-record.cabal view
@@ -1,5 +1,5 @@ name: persistent-relational-record-version: 0.1.1.0+version: 0.1.2.0 synopsis: relational-record on persisten backends. homepage: http://github.com/himura/persistent-relational-record license: BSD3
src/Database/Persist/Relational.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies #-} -- |@@ -38,7 +37,8 @@ import Database.Persist.Relational.ToPersistEntity import Database.Persist.Sql (SqlBackend) import qualified Database.Persist.Sql as PersistSql-import Database.Record (ToSql, recordToSql, runFromRecord, runToRecord)+import Database.Record.ToSql (ToSql, recordToSql, runFromRecord)+import Database.Record.FromSql (runToRecord) import Database.Relational.Query -- | Execute a HRR 'Query' and return the stream of its results.
src/Database/Persist/Relational/TH.hs view
@@ -30,8 +30,14 @@ #endif ) import Database.Record.ToSql-import Database.Relational.Query hiding ((!))+#if MIN_VERSION_relational_query(0, 10, 0)+import Database.Relational+import Database.Relational.TH (defineTable, defineScalarDegree)+#else+import Database.Relational.Query import Database.Relational.Query.TH (defineTable, defineScalarDegree)+#endif+import GHC.Generics import Language.Haskell.TH ftToType :: FieldType -> TypeQ@@ -63,12 +69,15 @@ (t:_) -> do let columns = makeColumns t tableName = T.unpack . unDBName . entityDB $ t+ -- (mkName Generic) != ''Generic == GHC.Generics.Generic+ deriveNames = filter (/= "Generic") . entityDerives $ t+ derives = ''Generic : map (mkName . T.unpack) deriveNames tblD <- defineTable config schema tableName columns- (map (mkName . T.unpack) . entityDerives $ t)+ derives [0] (Just 0) entI <- makeToPersistEntityInstance config schema tableName persistentRecordName columns
stack.yaml view
@@ -1,10 +1,7 @@-resolver: lts-7.5+resolver: lts-9.14 packages: - '.'-extra-deps:-- persistent-mysql-2.6-- mysql-simple-0.4.0.0-- mysql-0.1.3+extra-deps: [] flags: persistent-relational-record: test-examples: True
tests/unit.hs view
@@ -1,10 +1,15 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-} module Main where +#if MIN_VERSION_relational_query(0, 10, 0)+import Database.Relational as HRR+#else import Database.Relational.Query as HRR+#endif import Fixtures.BlogSample.Model import qualified Fixtures.BlogSample.Post as Post import qualified Fixtures.BlogSample.PostTag as PostTag@@ -53,8 +58,7 @@ case_inner_join_query :: Assertion case_inner_join_query =- show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 \- \FROM post T0 INNER JOIN user T1 ON (T1.id = T0.user_id) WHERE (T1.age > 18)"+ show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 FROM post T0 INNER JOIN user T1 ON (T1.id = T0.user_id) WHERE (T1.age > 18)" where subject = relation $ do post <- query Post.post@@ -65,13 +69,7 @@ case_inner_join_with_subquery :: Assertion case_inner_join_with_subquery =- show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 \- \FROM post T0 \- \INNER JOIN (SELECT ALL T2.post_id AS f0 FROM tag T1 \- \INNER JOIN post_tag T2 ON (T1.id = T2.tag_id) \- \WHERE (T1.name IN ('haskell', 'hrr')) \- \GROUP BY T2.post_id HAVING (COUNT(T2.post_id) = 2)) T3 \- \ON (T0.id = T3.f0)"+ show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 FROM post T0 INNER JOIN (SELECT ALL T2.post_id AS f0 FROM tag T1 INNER JOIN post_tag T2 ON (T1.id = T2.tag_id) WHERE (T1.name IN ('haskell', 'hrr')) GROUP BY T2.post_id HAVING (COUNT(T2.post_id) = 2)) T3 ON (T0.id = T3.f0)" where subject = relation $ do post <- query Post.post