From 2e16c72154d8c2200afeea0f295e935967bd8f4b Mon Sep 17 00:00:00 2001 From: Harpo Reder Date: Sun, 15 Jul 2018 06:08:23 +0000 Subject: [PATCH] add SqlCast composite key error --- src/Database/Esqueleto/Internal/Sql.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Database/Esqueleto/Internal/Sql.hs b/src/Database/Esqueleto/Internal/Sql.hs index 63c801c..e13877a 100644 --- a/src/Database/Esqueleto/Internal/Sql.hs +++ b/src/Database/Esqueleto/Internal/Sql.hs @@ -102,6 +102,7 @@ data CompositeKeyError = | FoldHelpError | SqlCaseError | SqlBinOpError + | SqlCastAsError | MakeOnClauseError | MakeExcError | MakeSetError @@ -766,13 +767,14 @@ unsafeSqlFunctionParens name arg = uncommas' $ map (\(ERaw p f) -> first (parensM p) (f info)) $ toArgList arg in (name <> parens argsTLB, argsVals) - --- | explicit cast using CAST(value as type) +-- | (Internal) An explicit SQL type cast using CAST(value as type). +-- See 'unsafeSqlBinOp' for warnings. unsafeSqlCastAs :: T.Text -> SqlExpr (Value a) -> SqlExpr (Value b) unsafeSqlCastAs t (ERaw p f) = ERaw Never $ \info -> let (b, v) = f info in ("CAST" <> parens ( parensM p b <> " AS " <> TLB.fromText t), v ) +unsafeSqlCastAs _ (ECompositeKey _) = throw (CompositeKeyErr SqlCastAsError) class UnsafeSqlFunctionArgument a where toArgList :: a -> [SqlExpr (Value ())]