Manually avoid spurious warnings.
http://hackage.haskell.org/trac/ghc/ticket/6124
This commit is contained in:
parent
ea4a58a970
commit
1230245749
@ -111,11 +111,13 @@ instance Esqueleto SqlQuery SqlExpr SqlPersist where
|
|||||||
|
|
||||||
EEntity (I ident) ^. field = ERaw $ \esc -> (ident <> ("." <> name esc field), [])
|
EEntity (I ident) ^. field = ERaw $ \esc -> (ident <> ("." <> name esc field), [])
|
||||||
where name esc = esc . fieldDB . persistFieldDef
|
where name esc = esc . fieldDB . persistFieldDef
|
||||||
|
_ ^. _ = error "Esqueleto/Sql/(^.): never here (see GHC #6124)"
|
||||||
|
|
||||||
val = ERaw . const . (,) "?" . return . toPersistValue
|
val = ERaw . const . (,) "?" . return . toPersistValue
|
||||||
|
|
||||||
not_ (ERaw f) = ERaw $ \esc -> let (b, vals) = f esc
|
not_ (ERaw f) = ERaw $ \esc -> let (b, vals) = f esc
|
||||||
in ("NOT " <> parens b, vals)
|
in ("NOT " <> parens b, vals)
|
||||||
|
not_ _ = error "Esqueleto/Sql/not_: never here (see GHC #6124)"
|
||||||
|
|
||||||
(==.) = binop " = "
|
(==.) = binop " = "
|
||||||
(>=.) = binop " >= "
|
(>=.) = binop " >= "
|
||||||
@ -141,6 +143,7 @@ binop op (ERaw f1) (ERaw f2) = ERaw f
|
|||||||
(b2, vals2) = f2 esc
|
(b2, vals2) = f2 esc
|
||||||
in ( parens b1 <> op <> parens b2
|
in ( parens b1 <> op <> parens b2
|
||||||
, vals1 <> vals2 )
|
, vals1 <> vals2 )
|
||||||
|
binop _ _ _ = error "Esqueleto/Sql/binop: never here (see GHC #6124)"
|
||||||
|
|
||||||
|
|
||||||
-- | Execute an Esqueleto's 'SqlQuery' inside @persistent@'s
|
-- | Execute an Esqueleto's 'SqlQuery' inside @persistent@'s
|
||||||
@ -227,6 +230,7 @@ makeFrom esc = uncommas . map mk
|
|||||||
makeWhere :: Escape -> WhereClause -> (TLB.Builder, [PersistValue])
|
makeWhere :: Escape -> WhereClause -> (TLB.Builder, [PersistValue])
|
||||||
makeWhere _ NoWhere = mempty
|
makeWhere _ NoWhere = mempty
|
||||||
makeWhere esc (Where (ERaw f)) = first ("\nWHERE " <>) (f esc)
|
makeWhere esc (Where (ERaw f)) = first ("\nWHERE " <>) (f esc)
|
||||||
|
makeWhere _ _ = error "Esqueleto/Sql/makeWhere: never here (see GHC #6124)"
|
||||||
|
|
||||||
|
|
||||||
parens :: TLB.Builder -> TLB.Builder
|
parens :: TLB.Builder -> TLB.Builder
|
||||||
@ -268,6 +272,7 @@ instance PersistEntity a => SqlSelect (SqlExpr (Entity a)) (Entity a) where
|
|||||||
in (length (entityFields ed) + 1, process ed, mempty)
|
in (length (entityFields ed) + 1, process ed, mempty)
|
||||||
getEntityVal :: SqlExpr (Entity a) -> a
|
getEntityVal :: SqlExpr (Entity a) -> a
|
||||||
getEntityVal = error "Database.Esqueleto.SqlSelect.getEntityVal"
|
getEntityVal = error "Database.Esqueleto.SqlSelect.getEntityVal"
|
||||||
|
sqlSelectCols _ _ = error "Esqueleto/Sql/sqlSelectCols[Entity]: never here (see GHC #6124)"
|
||||||
sqlSelectProcessRow (idCol:ent) =
|
sqlSelectProcessRow (idCol:ent) =
|
||||||
Entity <$> fromPersistValue idCol
|
Entity <$> fromPersistValue idCol
|
||||||
<*> fromPersistValues ent
|
<*> fromPersistValues ent
|
||||||
@ -276,6 +281,7 @@ instance PersistEntity a => SqlSelect (SqlExpr (Entity a)) (Entity a) where
|
|||||||
instance PersistField a => SqlSelect (SqlExpr (Single a)) (Single a) where
|
instance PersistField a => SqlSelect (SqlExpr (Single a)) (Single a) where
|
||||||
sqlSelectCols esc (ERaw f) = let (b, vals) = f esc
|
sqlSelectCols esc (ERaw f) = let (b, vals) = f esc
|
||||||
in (1, parens b, vals)
|
in (1, parens b, vals)
|
||||||
|
sqlSelectCols _ _ = error "Esqueleto/Sql/sqlSelectCols[Single]: never here (see GHC #6124)"
|
||||||
sqlSelectProcessRow [pv] = Single <$> fromPersistValue pv
|
sqlSelectProcessRow [pv] = Single <$> fromPersistValue pv
|
||||||
sqlSelectProcessRow _ = Left "SqlSelect (Single a): wrong number of columns."
|
sqlSelectProcessRow _ = Left "SqlSelect (Single a): wrong number of columns."
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user