@@ -189,8 +189,8 @@ queryBinop = asErrorMessage "query operator" $ PC.choice
189
189
[ keyword " limit" $> Sig.Limit
190
190
, keyword " offset" $> Sig.Offset
191
191
, keyword " sample" $> Sig.Sample
192
+ , PC .try $ keyword " union" *> keyword " all" $> Sig.UnionAll
192
193
, keyword " union" $> Sig.Union
193
- , keyword " union" *> keyword " all" $> Sig.UnionAll
194
194
, PC .try $ keyword " intersect" *> keyword " all" $> Sig.IntersectAll
195
195
, keyword " intersect" $> Sig.Intersect
196
196
, keyword " except" $> Sig.Except
@@ -278,7 +278,7 @@ derefExpr = do
278
278
, indexDerefExpr
279
279
]
280
280
281
- fieldDeref = do
281
+ fieldDeref = PC .try do
282
282
operator " ."
283
283
k ← ident <|> anyKeyword <|> stringLiteral
284
284
pure \e → C .binop Sig.FieldDeref e (C .ident k)
@@ -435,12 +435,12 @@ literal = withToken "literal" case _ of
435
435
| s == " null" → pure $ embed $ Sig.Literal $ EJ.Null
436
436
| s == " true" → pure $ embed $ Sig.Literal $ EJ.Boolean true
437
437
| s == " false" → pure $ embed $ Sig.Literal $ EJ.Boolean false
438
- _ → P .fail " not a literal "
438
+ t → P .fail (printToken t)
439
439
440
440
stringLiteral ∷ ∀ m . Monad m ⇒ P.ParserT TokenStream m String
441
441
stringLiteral = withToken " string literal" case _ of
442
442
Lit (String s) → pure s
443
- _ → P .fail " not a string "
443
+ t → P .fail (printToken t)
444
444
445
445
arrayLiteral ∷ ∀ m t . SqlParser' m t
446
446
arrayLiteral = do
0 commit comments