cherrypick unsafeSqlCastAs

This commit is contained in:
Harpo Reder 2018-07-15 05:47:50 +00:00
parent b91e0ad9b8
commit c9ff21d30a

View File

@ -33,6 +33,7 @@ module Database.Esqueleto.Internal.Sql
, unsafeSqlBinOp
, unsafeSqlBinOpComposite
, unsafeSqlValue
, unsafeSqlCastAs
, unsafeSqlFunction
, unsafeSqlExtractSubField
, UnsafeSqlFunctionArgument
@ -766,6 +767,13 @@ unsafeSqlFunctionParens name arg =
in (name <> parens argsTLB, argsVals)
-- | explicit cast using CAST(value as type)
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 )
class UnsafeSqlFunctionArgument a where
toArgList :: a -> [SqlExpr (Value ())]
instance (a ~ Value b) => UnsafeSqlFunctionArgument (SqlExpr a) where