1
Fork 0

implement complete interval literals

This commit is contained in:
Jake Wheat 2014-04-18 21:38:24 +03:00
parent f64632bbac
commit 3b86a06e5c
6 changed files with 64 additions and 37 deletions
Language/SQL/SimpleSQL

View file

@ -37,10 +37,12 @@ which have been changed to try to improve the layout of the output.
> valueExpr (StringLit s) = quotes $ text $ doubleUpQuotes s
> valueExpr (NumLit s) = text s
> valueExpr (IntervalLit v u p) =
> text "interval" <+> quotes (text v)
> <+> text u
> <+> me (parens . text . show ) p
> valueExpr (IntervalLit s v f t) =
> text "interval"
> <+> me (\x -> if x then text "+" else text "-") s
> <+> quotes (text v)
> <+> intervalTypeField f
> <+> me (\x -> text "to" <+> intervalTypeField x) t
> valueExpr (Iden i) = names i
> valueExpr Star = text "*"
> valueExpr Parameter = text "?"
@ -273,13 +275,8 @@ which have been changed to try to improve the layout of the output.
> f (n,t) = name n <+> typeName t
> typeName (IntervalTypeName f t) =
> text "interval"
> <+> it f
> <+> me (\x -> text "to" <+> it x) t
> where
> it (Itf n p) =
> text n
> <+> me (\(x,x1) -> parens (text (show x)
> <+> me (\y -> (sep [comma,text (show y)])) x1)) p
> <+> intervalTypeField f
> <+> me (\x -> text "to" <+> intervalTypeField x) t
> typeName (ArrayTypeName tn sz) =
> typeName tn <+> text "array" <+> me (brackets . text . show) sz
@ -287,6 +284,13 @@ which have been changed to try to improve the layout of the output.
> typeName (MultisetTypeName tn) =
> typeName tn <+> text "multiset"
> intervalTypeField :: IntervalTypeField -> Doc
> intervalTypeField (Itf n p) =
> text n
> <+> me (\(x,x1) ->
> parens (text (show x)
> <+> me (\y -> (sep [comma,text (show y)])) x1)) p
= query expressions