esqueleto 1.3.5 → 1.3.6
raw patch · 3 files changed
+17/−2 lines, 3 files
Files
esqueleto.cabal view
@@ -1,5 +1,5 @@ name: esqueleto-version: 1.3.5+version: 1.3.6 synopsis: Bare bones, type-safe EDSL for SQL queries on persistent backends. homepage: https://github.com/meteficha/esqueleto license: BSD3
src/Database/Esqueleto.hs view
@@ -237,7 +237,7 @@ -- -- Since @age@ is an optional @Person@ field, we use 'just' lift -- @val 18 :: SqlExpr (Value Int)@ into @just (val 18) ::--- SqlExpr (Value (Just Int))@.+-- SqlExpr (Value (Maybe Int))@. -- -- Implicit joins are represented by tuples. For example, to get -- the list of all blog posts and their authors, we could write:
src/Database/Esqueleto/Internal/Sql.hs view
@@ -30,6 +30,7 @@ , unsafeSqlBinOp , unsafeSqlValue , unsafeSqlFunction+ , unsafeSqlExtractSubField , UnsafeSqlFunctionArgument , rawSelectSource , runSource@@ -479,6 +480,19 @@ uncommas' $ map (\(ERaw _ f) -> f info) $ toArgList arg in (name <> parens argsTLB, argsVals) +-- | (Internal) An unsafe SQL function to extract a subfield from a compound+-- field, e.g. datetime. See 'unsafeSqlBinOp' for warnings.+--+-- Since: 1.3.6.+unsafeSqlExtractSubField :: UnsafeSqlFunctionArgument a =>+ TLB.Builder -> a -> SqlExpr (Value b)+unsafeSqlExtractSubField subField arg =+ ERaw Never $ \info ->+ let (argsTLB, argsVals) =+ uncommas' $ map (\(ERaw _ f) -> f info) $ toArgList arg+ in ("EXTRACT" <> parens (subField <> " FROM " <> argsTLB), argsVals)++ class UnsafeSqlFunctionArgument a where toArgList :: a -> [SqlExpr (Value ())] instance (a ~ Value b) => UnsafeSqlFunctionArgument (SqlExpr a) where@@ -501,6 +515,7 @@ , UnsafeSqlFunctionArgument d ) => UnsafeSqlFunctionArgument (a, b, c, d) where toArgList = toArgList . from4+ -- | (Internal) Coerce a value's type from 'SqlExpr (Value a)' to