@@ -189,8 +189,8 @@ queryBinop = asErrorMessage "query operator" $ PC.choice
189189 [ keyword " limit" $> Sig.Limit
190190 , keyword " offset" $> Sig.Offset
191191 , keyword " sample" $> Sig.Sample
192+ , PC .try $ keyword " union" *> keyword " all" $> Sig.UnionAll
192193 , keyword " union" $> Sig.Union
193- , keyword " union" *> keyword " all" $> Sig.UnionAll
194194 , PC .try $ keyword " intersect" *> keyword " all" $> Sig.IntersectAll
195195 , keyword " intersect" $> Sig.Intersect
196196 , keyword " except" $> Sig.Except
@@ -278,7 +278,7 @@ derefExpr = do
278278 , indexDerefExpr
279279 ]
280280
281- fieldDeref = do
281+ fieldDeref = PC .try do
282282 operator " ."
283283 k ← ident <|> anyKeyword <|> stringLiteral
284284 pure \e → C .binop Sig.FieldDeref e (C .ident k)
@@ -435,12 +435,12 @@ literal = withToken "literal" case _ of
435435 | s == " null" → pure $ embed $ Sig.Literal $ EJ.Null
436436 | s == " true" → pure $ embed $ Sig.Literal $ EJ.Boolean true
437437 | s == " false" → pure $ embed $ Sig.Literal $ EJ.Boolean false
438- _ → P .fail " not a literal "
438+ t → P .fail (printToken t)
439439
440440stringLiteral ∷ ∀ m . Monad m ⇒ P.ParserT TokenStream m String
441441stringLiteral = withToken " string literal" case _ of
442442 Lit (String s) → pure s
443- _ → P .fail " not a string "
443+ t → P .fail (printToken t)
444444
445445arrayLiteral ∷ ∀ m t . SqlParser' m t
446446arrayLiteral = do
0 commit comments