groundhog-mysql 0.4.1 → 0.4.2
raw patch · 2 files changed
+30/−25 lines, 2 filesdep ~groundhog
Dependency ranges changed: groundhog
Files
- Database/Groundhog/MySQL.hs +28/−23
- groundhog-mysql.cabal +2/−2
Database/Groundhog/MySQL.hs view
@@ -55,27 +55,35 @@ backendName _ = "mysql" instance SqlDb MySQL where- append a b = Expr $ function "concat" [toExpr a, toExpr b]+ append a b = mkExpr $ function "concat" [toExpr a, toExpr b]+ signum' a = mkExpr $ function "sign" [toExpr a]+ quotRem' x y = (mkExpr $ operator 70 " div " x y, mkExpr $ operator 70 " % " x y)+ equalsOperator a b = a <> "<=>" <> b+ notEqualsOperator a b = "NOT(" <> a <> "<=>" <> b <> ")" +instance FloatingSqlDb MySQL where+ log' a = mkExpr $ function "log" [toExpr a]+ logBase' b x = mkExpr $ function "log" [toExpr b, toExpr x]+ instance (MonadBaseControl IO m, MonadIO m, MonadLogger m) => PersistBackend (DbPersist MySQL m) where type PhantomDb (DbPersist MySQL m) = MySQL insert v = insert' v insert_ v = insert_' v- insertBy u v = H.insertBy escapeS queryRawTyped' True u v- insertByAll v = H.insertByAll escapeS queryRawTyped' True v- replace k v = H.replace escapeS queryRawTyped' executeRaw' insertIntoConstructorTable k v- replaceBy k v = H.replaceBy escapeS executeRaw' k v- select options = H.select escapeS queryRawTyped' noLimit renderCond' options- selectAll = H.selectAll escapeS queryRawTyped'- get k = H.get escapeS queryRawTyped' k- getBy k = H.getBy escapeS queryRawTyped' k- update upds cond = H.update escapeS executeRaw' renderCond' upds cond- delete cond = H.delete escapeS executeRaw' renderCond' cond- deleteBy k = H.deleteBy escapeS executeRaw' k- deleteAll v = H.deleteAll escapeS executeRaw' v- count cond = H.count escapeS queryRawTyped' renderCond' cond- countAll fakeV = H.countAll escapeS queryRawTyped' fakeV- project p options = H.project escapeS queryRawTyped' noLimit renderCond' p options+ insertBy u v = H.insertBy renderConfig queryRaw' True u v+ insertByAll v = H.insertByAll renderConfig queryRaw' True v+ replace k v = H.replace renderConfig queryRaw' executeRaw' insertIntoConstructorTable k v+ replaceBy k v = H.replaceBy renderConfig executeRaw' k v+ select options = H.select renderConfig queryRaw' noLimit options+ selectAll = H.selectAll renderConfig queryRaw'+ get k = H.get renderConfig queryRaw' k+ getBy k = H.getBy renderConfig queryRaw' k+ update upds cond = H.update renderConfig executeRaw' upds cond+ delete cond = H.delete renderConfig executeRaw' cond+ deleteBy k = H.deleteBy renderConfig executeRaw' k+ deleteAll v = H.deleteAll renderConfig executeRaw' v+ count cond = H.count renderConfig queryRaw' cond+ countAll fakeV = H.countAll renderConfig queryRaw' fakeV+ project p options = H.project renderConfig queryRaw' noLimit p options migrate fakeV = migrate' fakeV executeRaw _ query ps = executeRaw' (fromString query) ps@@ -243,10 +251,10 @@ _ <- MySQL.execute conn stmt (map P vals) return () -renderCond' :: Cond MySQL r -> Maybe (RenderS MySQL r)-renderCond' = renderCond escapeS renderEquals renderNotEquals where- renderEquals a b = a <> "<=>" <> b- renderNotEquals a b = "NOT(" <> a <> "<=>" <> b <> ")"+renderConfig :: RenderConfig+renderConfig = RenderConfig {+ esc = escapeS+} escapeS :: Utf8 -> Utf8 escapeS a = let q = fromChar '`' in q <> a <> q@@ -547,9 +555,6 @@ getStatement :: Utf8 -> MySQL.Query getStatement sql = MySQL.Query $ fromUtf8 sql--queryRawTyped' :: (MonadBaseControl IO m, MonadIO m, MonadLogger m) => Utf8 -> [DbType] -> [PersistValue] -> (RowPopper (DbPersist MySQL m) -> DbPersist MySQL m a) -> DbPersist MySQL m a-queryRawTyped' query _ vals f = queryRaw' query vals f queryRaw' :: (MonadBaseControl IO m, MonadIO m, MonadLogger m) => Utf8 -> [PersistValue] -> (RowPopper (DbPersist MySQL m) -> DbPersist MySQL m a) -> DbPersist MySQL m a queryRaw' query vals func = do
groundhog-mysql.cabal view
@@ -1,5 +1,5 @@ name: groundhog-mysql-version: 0.4.1+version: 0.4.2 license: BSD3 license-file: LICENSE author: Boris Lykah <lykahb@gmail.com>@@ -17,7 +17,7 @@ , mysql >= 0.1.1.3 && < 0.2 , bytestring >= 0.9 , transformers >= 0.2.1- , groundhog >= 0.4.1 && < 0.5.0+ , groundhog >= 0.4.2 && < 0.5.0 , monad-control >= 0.3 , monad-logger >= 0.3 , containers >= 0.2