From 3c7c3119959ea2e83cbfbe1c3e89c4b8d664885e Mon Sep 17 00:00:00 2001 From: Felipe Lessa Date: Fri, 12 Feb 2016 18:45:45 -0200 Subject: [PATCH] Revert "Fix pedantic errors" This reverts commit a104b30da2494b9258f5575c62b2d43957be41b1. --- src/Database/Esqueleto/Internal/Language.hs | 2 ++ src/Database/Esqueleto/Internal/Sql.hs | 6 +++--- test/Test.hs | 21 ++++++++++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/Database/Esqueleto/Internal/Language.hs b/src/Database/Esqueleto/Internal/Language.hs index ef0bc15..ff42e3d 100644 --- a/src/Database/Esqueleto/Internal/Language.hs +++ b/src/Database/Esqueleto/Internal/Language.hs @@ -44,6 +44,7 @@ module Database.Esqueleto.Internal.Language , else_ ) where +import Control.Applicative (Applicative(..), (<$>)) import Control.Exception (Exception) import Data.Int (Int64) import Data.Typeable (Typeable) @@ -51,6 +52,7 @@ import Database.Esqueleto.Internal.PersistentImport import Text.Blaze.Html (Html) import qualified Data.ByteString as B +import qualified Data.ByteString.Lazy as BL import qualified Data.Text as T import qualified Data.Text.Lazy as TL diff --git a/src/Database/Esqueleto/Internal/Sql.hs b/src/Database/Esqueleto/Internal/Sql.hs index dba8129..aa1f793 100644 --- a/src/Database/Esqueleto/Internal/Sql.hs +++ b/src/Database/Esqueleto/Internal/Sql.hs @@ -50,6 +50,7 @@ module Database.Esqueleto.Internal.Sql , veryUnsafeCoerceSqlExprValueList ) where +import Control.Applicative (Applicative(..), (<$>), (<$)) import Control.Arrow ((***), first) import Control.Exception (throw, throwIO) import Control.Monad (ap, MonadPlus(..), liftM) @@ -59,7 +60,7 @@ import Control.Monad.Trans.Resource (MonadResource) import Data.Acquire (with, allocateAcquire, Acquire) import Data.Int (Int64) import Data.List (intersperse) -import Data.Monoid (Last(..), (<>)) +import Data.Monoid (Last(..), Monoid(..), (<>)) import Data.Proxy (Proxy(..)) import Database.Esqueleto.Internal.PersistentImport import Database.Persist.Sql.Util (entityColumnNames, entityColumnCount, parseEntityValues, isIdField, hasCompositeKey) @@ -416,7 +417,6 @@ instance Esqueleto SqlQuery SqlExpr SqlBackend where where toDistinctOn :: SqlExpr OrderBy -> SqlExpr DistinctOn toDistinctOn (EOrderBy _ f) = EDistinctOn f - toDistinctOn EOrderRandom = error "toDistinctOn get an EOrderRandom but expect an EOrderBy" sub_select = sub SELECT sub_selectDistinct = sub_select . distinct @@ -647,7 +647,7 @@ unsafeSqlBinOpComposite op sep a b = ERaw Parens $ compose (listify a) (listify deconstruct :: (TLB.Builder, [PersistValue]) -> ([TLB.Builder], [PersistValue]) deconstruct ("?", [PersistList vals]) = (replicate (length vals) "?", vals) - deconstruct (b', []) = (TLB.fromLazyText <$> TL.splitOn "," (TLB.toLazyText b'), []) + deconstruct (b, []) = (TLB.fromLazyText <$> TL.splitOn "," (TLB.toLazyText b), []) deconstruct x = err $ "cannot deconstruct " ++ show x ++ "." compose f1 f2 info diff --git a/test/Test.hs b/test/Test.hs index 2a57761..80c6784 100644 --- a/test/Test.hs +++ b/test/Test.hs @@ -18,17 +18,21 @@ #-} module Main (main) where +import Control.Applicative ((<$>)) +import Control.Arrow ((&&&)) +import Control.Exception (IOException) import Control.Monad (forM_, replicateM, replicateM_, void) import Control.Monad.IO.Class (MonadIO(liftIO)) import Control.Monad.Logger (MonadLogger(..), runStderrLoggingT, runNoLoggingT) import Control.Monad.Trans.Control (MonadBaseControl(..)) import Control.Monad.Trans.Reader (ReaderT) import Data.Char (toLower, toUpper) +import Data.List (sortBy) import Data.Monoid ((<>)) +import Data.Ord (comparing) import Database.Esqueleto #if defined (WITH_POSTGRESQL) import Database.Persist.Postgresql (withPostgresqlConn) -import qualified Database.Esqueleto.PostgreSQL as EP #elif defined (WITH_MYSQL) import Database.Persist.MySQL ( withMySQLConn , connectHost @@ -49,6 +53,7 @@ import qualified Control.Monad.Trans.Resource as R import qualified Data.List as L import qualified Data.Set as S import qualified Data.Text.Lazy.Builder as TLB +import qualified Database.Esqueleto.PostgreSQL as EP import qualified Database.Esqueleto.Internal.Sql as EI @@ -803,6 +808,8 @@ main = do orderBy [asc title] return title liftIO $ ret `shouldBe` [ Value t1, Value t2, Value t3 ] + it "works on a simple example (selectDistinct)" $ + selDistTest selectDistinct it "works on a simple example (select . distinct)" $ selDistTest (select . distinct) @@ -1300,15 +1307,15 @@ main = do -- reaction to the clause. let sanityCheck kind syntax = do let complexQuery = - from $ \(pl `InnerJoin` pr) -> do - on (pl ^. PersonName ==. pr ^. PersonName) - where_ (pl ^. PersonFavNum >. val 2) - orderBy [desc (pr ^. PersonAge)] + from $ \(p1 `InnerJoin` p2) -> do + on (p1 ^. PersonName ==. p2 ^. PersonName) + where_ (p1 ^. PersonFavNum >. val 2) + orderBy [desc (p2 ^. PersonAge)] limit 3 offset 9 - groupBy (pl ^. PersonId) + groupBy (p1 ^. PersonId) having (countRows <. val (0 :: Int)) - return (pl, pr) + return (p1, p2) queryWithClause1 = do r <- complexQuery locking kind