relational-query 0.11.3.0 → 0.11.4.0
raw patch · 9 files changed
+83/−60 lines, 9 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Database.Relational.Arrow: deleteNoPH :: TableDerivable r => RestrictedStatement r () -> Delete ()
+ Database.Relational.Arrow: insertValueNoPH :: TableDerivable r => Register r () -> Insert ()
+ Database.Relational.Arrow: updateAllColumn :: (PersistableWidth r, TableDerivable r) => RestrictedStatement r (PlaceHolders p) -> Update (r, p)
+ Database.Relational.Arrow: updateAllColumn' :: (PersistableWidth r, TableDerivable r) => Config -> RestrictedStatement r (PlaceHolders p) -> Update (r, p)
+ Database.Relational.Arrow: updateAllColumnNoPH :: (PersistableWidth r, TableDerivable r) => RestrictedStatement r () -> Update r
+ Database.Relational.Arrow: updateNoPH :: TableDerivable r => AssignStatement r () -> Update ()
Files
- ChangeLog.md +4/−0
- relational-query.cabal +1/−1
- src/Database/Relational/Arrow.hs +58/−23
- src/Database/Relational/Effect.hs +4/−5
- src/Database/Relational/OverloadedInstances.hs +1/−6
- src/Database/Relational/Sequence.hs +2/−2
- src/Database/Relational/Type.hs +3/−3
- test/sqlsEq.hs +7/−14
- test/sqlsEqArrow.hs +3/−6
ChangeLog.md view
@@ -1,5 +1,9 @@ <!-- -*- Markdown -*- --> +## 0.11.4.0++- add xxxNoPH effect APIs of arrow-interface.+ ## 0.11.3.0 - add some overloaded projection instances for tuple types.
relational-query.cabal view
@@ -1,5 +1,5 @@ name: relational-query-version: 0.11.3.0+version: 0.11.4.0 synopsis: Typeful, Modular, Relational, algebraic query engine description: This package contiains typeful relation structure and relational-algebraic query building DSL which can
src/Database/Relational/Arrow.hs view
@@ -47,9 +47,10 @@ assign, - update', update,- insertValue', insertValue,- delete', delete,+ update', update, updateNoPH,+ updateAllColumn', updateAllColumn, updateAllColumnNoPH,+ insertValue', insertValue, insertValueNoPH,+ delete', delete, deleteNoPH, QueryA, @@ -81,9 +82,10 @@ relation, relation', aggregateRelation, aggregateRelation', uniqueRelation', groupBy', key, key', set, bkey, rollup, cube, groupingSets, orderBy', orderBy, asc, desc, partitionBy, over,- update', update, derivedUpdate', derivedUpdate,- insertValue', insertValue, derivedInsertValue', derivedInsertValue,- delete', delete, derivedDelete', derivedDelete,+ update', update, updateNoPH, derivedUpdate', derivedUpdate,+ updateAllColumn', updateAllColumn, updateAllColumnNoPH,+ insertValue', insertValue, insertValueNoPH, derivedInsertValue', derivedInsertValue,+ delete', delete, deleteNoPH, derivedDelete', derivedDelete, QuerySimple, QueryAggregate, QueryUnique, Window, Register) import qualified Database.Relational as Monadic import qualified Database.Relational.Monad.Trans.Aggregating as Monadic@@ -421,68 +423,101 @@ -> Assignings r m (Record Flat v) () assign t = queryA (`Monadic.assignTo` t) --- | Same as 'Monadic.derivedUpdate''.+-- | Same as 'Monadic.update''. -- Make 'Update' from assigning statement arrow using configuration. update' :: TableDerivable r => Config -> AssignStatement r (PlaceHolders p) -> Update p update' config = Monadic.update' config . runQueryA --- | Same as 'Monadic.derivedUpdate'.+-- | Same as 'Monadic.update'. -- Make 'Update' from assigning statement arrow. update :: TableDerivable r => AssignStatement r (PlaceHolders p) -> Update p update = Monadic.update . runQueryA --- | Same as 'Monadic.derivedInsertValue''.+-- | Same as 'Monadic.updateNoPH'.+-- Make 'Update' from assigning statement arrow.+updateNoPH :: TableDerivable r => AssignStatement r () -> Update ()+updateNoPH = Monadic.updateNoPH . runQueryA++-- | Same as 'Monadic.updateAllColumn''.+-- Make 'Update' from restrected statement arrow.+updateAllColumn' :: (PersistableWidth r, TableDerivable r)+ => Config+ -> RestrictedStatement r (PlaceHolders p)+ -> Update (r, p)+updateAllColumn' config = Monadic.updateAllColumn' config . runQueryA++-- | Same as 'Monadic.updateAllColumn'.+-- Make 'Update' from restrected statement arrow.+updateAllColumn :: (PersistableWidth r, TableDerivable r)+ => RestrictedStatement r (PlaceHolders p)+ -> Update (r, p)+updateAllColumn = Monadic.updateAllColumn . runQueryA++-- | Same as 'Monadic.updateAllColumnNoPH'.+-- Make 'Update' from restrected statement arrow.+updateAllColumnNoPH :: (PersistableWidth r, TableDerivable r)+ => RestrictedStatement r ()+ -> Update r+updateAllColumnNoPH = Monadic.updateAllColumnNoPH . runQueryA++-- | Same as 'Monadic.insertValue''. -- Make 'Insert' from register arrow using configuration. insertValue' :: TableDerivable r => Config -> Register r (PlaceHolders p) -> Insert p insertValue' config = Monadic.insertValue' config . ($ ()) . runQueryA --- | Same as 'Monadic.derivedInsertValue'.+-- | Same as 'Monadic.insertValue'. -- Make 'Insert' from register arrow. insertValue :: TableDerivable r => Register r (PlaceHolders p) -> Insert p insertValue = Monadic.insertValue . ($ ()) . runQueryA --- | Same as 'Monadic.derivedDelete''.+-- | Same as 'Monadic.insertValueNoPH'.+-- Make 'Insert' from register arrow.+insertValueNoPH :: TableDerivable r => Register r () -> Insert ()+insertValueNoPH = Monadic.insertValueNoPH . ($ ()) . runQueryA+++-- | Same as 'Monadic.delete''. -- Make 'Update' from restrict statement arrow using configuration. delete' :: TableDerivable r => Config -> RestrictedStatement r (PlaceHolders p) -> Delete p delete' config = Monadic.delete' config . runQueryA --- | Same as 'Monadic.derivedDelete'.+-- | Same as 'Monadic.delete'. -- Make 'Update' from restrict statement arrow. delete :: TableDerivable r => RestrictedStatement r (PlaceHolders p) -> Delete p delete = Monadic.delete . runQueryA +-- | Same as 'Monadic.deleteNoPH'.+-- Make 'Update' from restrict statement arrow.+deleteNoPH :: TableDerivable r => RestrictedStatement r () -> Delete ()+deleteNoPH = Monadic.deleteNoPH . runQueryA+ {-# DEPRECATED derivedUpdate' "use `update'` instead of this." #-}--- | Same as 'Monadic.derivedUpdate''.+-- | Same as 'Monadic.update''. -- Make 'Update' from assigning statement arrow using configuration. derivedUpdate' :: TableDerivable r => Config -> AssignStatement r (PlaceHolders p) -> Update p derivedUpdate' = update' {-# DEPRECATED derivedUpdate "use `update` instead of this." #-}--- | Same as 'Monadic.derivedUpdate'.--- Make 'Update' from assigning statement arrow.+-- | Deprecated. derivedUpdate :: TableDerivable r => AssignStatement r (PlaceHolders p) -> Update p derivedUpdate = update {-# DEPRECATED derivedInsertValue' "use `insertValue'` instead of this." #-}--- | Same as 'Monadic.derivedInsertValue''.--- Make 'Insert' from register arrow using configuration.+-- | Deprecated. derivedInsertValue' :: TableDerivable r => Config -> Register r (PlaceHolders p) -> Insert p derivedInsertValue' = insertValue' {-# DEPRECATED derivedInsertValue "use `insertValue` instead of this." #-}--- | Same as 'Monadic.derivedInsertValue'.--- Make 'Insert' from register arrow.+-- | Deprecated. derivedInsertValue :: TableDerivable r => Register r (PlaceHolders p) -> Insert p derivedInsertValue = insertValue {-# DEPRECATED derivedDelete' "use `derivedDelete'` instead of this." #-}--- | Same as 'Monadic.derivedDelete''.--- Make 'Update' from restrict statement arrow using configuration.+-- | Deprecated. derivedDelete' :: TableDerivable r => Config -> RestrictedStatement r (PlaceHolders p) -> Delete p derivedDelete' = delete' {-# DEPRECATED derivedDelete "use `derivedDelete` instead of this." #-}--- | Same as 'Monadic.derivedDelete'.--- Make 'Update' from restrict statement arrow.+-- | Deprecated. derivedDelete :: TableDerivable r => RestrictedStatement r (PlaceHolders p) -> Delete p derivedDelete = delete
src/Database/Relational/Effect.hs view
@@ -48,8 +48,7 @@ import qualified Database.Relational.Record as Record import Database.Relational.ProjectableClass (ShowConstantTermsSQL) import Database.Relational.Projectable- (PlaceHolders, unitPlaceHolder,- pwPlaceholder, placeholder, (><), value, )+ (PlaceHolders, unitPH, pwPlaceholder, placeholder, (><), value, ) import Database.Relational.Monad.Trans.Assigning (assignings, (<-#)) import Database.Relational.Monad.Restrict (RestrictedStatement) import qualified Database.Relational.Monad.Restrict as Restrict@@ -64,7 +63,7 @@ -- | Finalize 'Restrict' monad and generate 'Restriction'. restriction :: RestrictedStatement r () -> Restriction () r-restriction = Restriction . ((>> return unitPlaceHolder) .)+restriction = Restriction . ((>> return unitPH) .) -- | Finalize 'Restrict' monad and generate 'Restriction' with place-holder parameter 'p' restriction' :: RestrictedStatement r (PlaceHolders p) -> Restriction p r@@ -90,7 +89,7 @@ -- | Finalize 'Target' monad and generate 'UpdateTarget'. updateTarget :: AssignStatement r () -> UpdateTarget () r-updateTarget = UpdateTarget . ((>> return unitPlaceHolder) .)+updateTarget = UpdateTarget . ((>> return unitPH) .) -- | Finalize 'Target' monad and generate 'UpdateTarget' with place-holder parameter 'p'. updateTarget' :: AssignStatement r (PlaceHolders p)@@ -145,7 +144,7 @@ -- | Finalize 'Register' monad and generate 'InsertTarget'. insertTarget :: Register r () -> InsertTarget () r-insertTarget = InsertTarget . (>> return unitPlaceHolder)+insertTarget = InsertTarget . (>> return unitPH) -- | Finalize 'Target' monad and generate 'UpdateTarget' with place-holder parameter 'p'. insertTarget' :: Register r (PlaceHolders p)
src/Database/Relational/OverloadedInstances.hs view
@@ -21,12 +21,7 @@ import Control.Applicative ((<$>)) #if __GLASGOW_HASKELL__ >= 800-import Database.Record.Persistable- (PersistableWidth, persistableWidth,- PersistableRecordWidth, runPersistableRecordWidth)--import Database.Relational.Pi.Unsafe (definePi)-import Database.Relational.OverloadedProjection (HasProjection (projection))+import Database.Relational.OverloadedProjection (projection) #endif import Database.Relational.InternalTH.Overloaded (tupleProjection)
src/Database/Relational/Sequence.hs view
@@ -41,7 +41,7 @@ import Database.Relational.Pi (Pi) import Database.Relational.Constraint (HasConstraintKey (..), Key, Primary, projectionKey)-import Database.Relational.Projectable ((.<=.), value, unitPlaceHolder, (!))+import Database.Relational.Projectable ((.<=.), value, unitPH, (!)) import Database.Relational.ProjectableClass (ShowConstantTermsSQL) import Database.Relational.Relation (tableOf) import qualified Database.Relational.Relation as Relation@@ -144,7 +144,7 @@ let iv = value i seqKey seqt <-# iv wheres $ proj ! seqKey seqt .<=. iv -- fool proof- return unitPlaceHolder+ return unitPH -- | Update statement for sequence table updateNumber :: (PersistableWidth s, Integral i, ShowConstantTermsSQL i)
src/Database/Relational/Type.hs view
@@ -212,9 +212,9 @@ -- | Make typed 'Update' from 'Config', derived table and 'AssignStatement'. -- Update target is all column. updateAllColumn' :: (PersistableWidth r, TableDerivable r)- => Config- -> RestrictedStatement r (PlaceHolders p)- -> Update (r, p)+ => Config+ -> RestrictedStatement r (PlaceHolders p)+ -> Update (r, p) updateAllColumn' config = typedUpdateAllColumn' config derivedTable .restriction' {-# DEPRECATED derivedUpdateAllColumn' "use `updateAllColumn'` instead of this." #-}
test/sqlsEq.hs view
@@ -75,9 +75,8 @@ return $ a ! intA0' assignX :: Update ()-assignX = update $ \_proj -> do+assignX = updateNoPH $ \_proj -> intA0' <-# value (0 :: Int32)- return unitPlaceHolder registerX :: Insert (String, Maybe String) registerX = insertValue $ do@@ -634,15 +633,13 @@ updateKeyX = primaryUpdate tableOfSetA updateX :: Update ()-updateX = update $ \proj -> do+updateX = updateNoPH $ \proj -> do strA2' <-# value "X" wheres $ proj ! strA1' .=. value "A"- return unitPlaceHolder deleteX :: Delete ()-deleteX = delete $ \proj -> do+deleteX = deleteNoPH $ \proj -> wheres $ proj ! strA1' .=. value "A"- return unitPlaceHolder effs :: [Test] effs =@@ -665,42 +662,38 @@ ] updateExistsX :: Update ()-updateExistsX = update $ \proj -> do+updateExistsX = updateNoPH $ \proj -> do strA2' <-# value "X" wheres . exists =<< (queryList . relation $ do b <- query setB wheres $ b ! intB0' .=. proj ! intA0' return b)- return unitPlaceHolder updateScalarX :: Update ()-updateScalarX = update $ \proj -> do+updateScalarX = updateNoPH $ \proj -> do strA2' <-# value "X" sb <- queryScalar . unsafeUnique . relation $ do b <- query setB wheres $ b ! intB0' .=. value 0 return $ b ! intB0' wheres $ just (proj ! intA0') .=. sb- return unitPlaceHolder deleteExistsX :: Delete ()-deleteExistsX = delete $ \proj -> do+deleteExistsX = deleteNoPH $ \proj -> wheres . exists =<< (queryList . relation $ do b <- query setB wheres $ b ! intB0' .=. proj ! intA0' return b)- return unitPlaceHolder deleteScalarX :: Delete ()-deleteScalarX = delete $ \proj -> do+deleteScalarX = deleteNoPH $ \proj -> do sb <- queryScalar . unsafeUnique . relation $ do b <- query setB wheres $ b ! intB0' .=. value 0 return $ b ! intB0' wheres $ just (proj ! intA0') .=. sb- return unitPlaceHolder correlated :: [Test] correlated =
test/sqlsEqArrow.hs view
@@ -75,9 +75,8 @@ returnA -< a ! intA0' assignX :: Update ()-assignX = update $ proc _proj -> do+assignX = updateNoPH $ proc _proj -> assign intA0' -< value (0 :: Int32)- returnA -< unitPlaceHolder registerX :: Insert (String, Maybe String) registerX = insertValue $ proc () -> do@@ -545,15 +544,13 @@ updateKeyX = primaryUpdate tableOfSetA updateX :: Update ()-updateX = update $ proc proj -> do+updateX = updateNoPH $ proc proj -> do assign strA2' -< value "X" wheres -< proj ! strA1' .=. value "A"- returnA -< unitPlaceHolder deleteX :: Delete ()-deleteX = delete $ proc proj -> do+deleteX = deleteNoPH $ proc proj -> do wheres -< proj ! strA1' .=. value "A"- returnA -< unitPlaceHolder effs :: [Test] effs =