fix rendering of joins

This commit is contained in:
Philipp Balzarek 2015-04-21 17:45:44 +02:00
parent 2f70220d55
commit da40706163

View File

@ -934,19 +934,20 @@ makeFrom info mode fs = ret
where where
ret = case collectOnClauses fs of ret = case collectOnClauses fs of
Left expr -> throw $ mkExc expr Left expr -> throw $ mkExc expr
Right fs' -> keyword $ uncommas' (map (mk Never mempty) fs') Right fs' -> keyword $ uncommas' (map (mk Never) fs')
keyword = case mode of keyword = case mode of
UPDATE -> id UPDATE -> id
_ -> first ("\nFROM " <>) _ -> first ("\nFROM " <>)
mk _ onClause (FromStart i def) = base i def <> onClause mk _ (FromStart i def) = base i def
mk paren onClause (FromJoin lhs kind rhs monClause) = mk paren (FromJoin lhs kind rhs monClause) =
first (parensM paren) $ first (parensM paren) $
mconcat [ mk Parens onClause lhs mconcat [ mk Never lhs
, (fromKind kind, mempty) , (fromKind kind, mempty)
, mk Never (maybe mempty makeOnClause monClause) rhs , mk Parens rhs
, maybe mempty makeOnClause monClause
] ]
mk _ _ (OnClause _) = error "Esqueleto/Sql/makeFrom: never here (is collectOnClauses working?)" mk _ (OnClause _) = error "Esqueleto/Sql/makeFrom: never here (is collectOnClauses working?)"
base ident@(I identText) def = base ident@(I identText) def =
let db@(DBName dbText) = entityDB def let db@(DBName dbText) = entityDB def