diff --git a/src/Database/Esqueleto/Internal/Language.hs b/src/Database/Esqueleto/Internal/Language.hs index 37be821..c1a8cd7 100644 --- a/src/Database/Esqueleto/Internal/Language.hs +++ b/src/Database/Esqueleto/Internal/Language.hs @@ -550,6 +550,7 @@ data JoinKind = | LeftOuterJoinKind -- ^ @LEFT OUTER JOIN@ | RightOuterJoinKind -- ^ @RIGHT OUTER JOIN@ | FullOuterJoinKind -- ^ @FULL OUTER JOIN@ + deriving Eq -- | (Internal) Functions that operate on types (that should be) diff --git a/src/Database/Esqueleto/Internal/Sql.hs b/src/Database/Esqueleto/Internal/Sql.hs index 4876334..1cd8893 100644 --- a/src/Database/Esqueleto/Internal/Sql.hs +++ b/src/Database/Esqueleto/Internal/Sql.hs @@ -152,7 +152,9 @@ collectOnClauses = go [] matchR = (\r' -> FromJoin l k r' onClause) <$> tryMatch expr r matchL = (\l' -> FromJoin l' k r onClause) <$> tryMatch expr l matchC = case onClause of - Nothing -> return (FromJoin l k r (Just expr)) + Nothing | k /= CrossJoinKind + -> return (FromJoin l k r (Just expr)) + | otherwise -> mzero Just _ -> mzero tryMatch _ _ = mzero