cherrypick unsafeSqlCastAs
This commit is contained in:
parent
b91e0ad9b8
commit
c9ff21d30a
@ -33,6 +33,7 @@ module Database.Esqueleto.Internal.Sql
|
|||||||
, unsafeSqlBinOp
|
, unsafeSqlBinOp
|
||||||
, unsafeSqlBinOpComposite
|
, unsafeSqlBinOpComposite
|
||||||
, unsafeSqlValue
|
, unsafeSqlValue
|
||||||
|
, unsafeSqlCastAs
|
||||||
, unsafeSqlFunction
|
, unsafeSqlFunction
|
||||||
, unsafeSqlExtractSubField
|
, unsafeSqlExtractSubField
|
||||||
, UnsafeSqlFunctionArgument
|
, UnsafeSqlFunctionArgument
|
||||||
@ -766,6 +767,13 @@ unsafeSqlFunctionParens name arg =
|
|||||||
in (name <> parens argsTLB, argsVals)
|
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
|
class UnsafeSqlFunctionArgument a where
|
||||||
toArgList :: a -> [SqlExpr (Value ())]
|
toArgList :: a -> [SqlExpr (Value ())]
|
||||||
instance (a ~ Value b) => UnsafeSqlFunctionArgument (SqlExpr a) where
|
instance (a ~ Value b) => UnsafeSqlFunctionArgument (SqlExpr a) where
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user