1
Fork 0

change set quantifier and sort direction to represent default separately

This commit is contained in:
Jake Wheat 2014-04-18 11:18:21 +03:00
parent c814cc9437
commit 3df87a3cf9
8 changed files with 55 additions and 49 deletions

View file

@ -33,7 +33,7 @@ Some tests for parsing full queries.
> ,qeGroupBy = [SimpleGroup $ Iden "a"]
> ,qeHaving = Just $ BinOp (App "count" [NumLit "1"])
> ">" (NumLit "5")
> ,qeOrderBy = [SortSpec (Iden "s") Asc NullsOrderDefault]
> ,qeOrderBy = [SortSpec (Iden "s") DirDefault NullsOrderDefault]
> }
> )
> ]

View file

@ -30,7 +30,7 @@ These are a few misc tests which don't fit anywhere else.
> duplicates :: TestItem
> duplicates = Group "duplicates" $ map (uncurry TestQueryExpr)
> [("select a from t" ,ms All)
> [("select a from t" ,ms SQDefault)
> ,("select all a from t" ,ms All)
> ,("select distinct a from t", ms Distinct)
> ]
@ -96,11 +96,11 @@ These are a few misc tests which don't fit anywhere else.
> orderBy :: TestItem
> orderBy = Group "orderBy" $ map (uncurry TestQueryExpr)
> [("select a from t order by a"
> ,ms [SortSpec (Iden "a") Asc NullsOrderDefault])
> ,ms [SortSpec (Iden "a") DirDefault NullsOrderDefault])
> ,("select a from t order by a, b"
> ,ms [SortSpec (Iden "a") Asc NullsOrderDefault
> ,SortSpec (Iden "b") Asc NullsOrderDefault])
> ,ms [SortSpec (Iden "a") DirDefault NullsOrderDefault
> ,SortSpec (Iden "b") DirDefault NullsOrderDefault])
> ,("select a from t order by a asc"
> ,ms [SortSpec (Iden "a") Asc NullsOrderDefault])
@ -144,10 +144,10 @@ These are a few misc tests which don't fit anywhere else.
> combos :: TestItem
> combos = Group "combos" $ map (uncurry TestQueryExpr)
> [("select a from t union select b from u"
> ,CombineQueryExpr ms1 Union Distinct Respectively ms2)
> ,CombineQueryExpr ms1 Union SQDefault Respectively ms2)
> ,("select a from t intersect select b from u"
> ,CombineQueryExpr ms1 Intersect Distinct Respectively ms2)
> ,CombineQueryExpr ms1 Intersect SQDefault Respectively ms2)
> ,("select a from t except all select b from u"
> ,CombineQueryExpr ms1 Except All Respectively ms2)
@ -160,8 +160,8 @@ These are a few misc tests which don't fit anywhere else.
> -- TODO: union should be left associative. I think the others also
> -- so this needs to be fixed (new optionSuffix variation which
> -- handles this)
> ,CombineQueryExpr ms1 Union Distinct Respectively
> (CombineQueryExpr ms1 Union Distinct Respectively ms1))
> ,CombineQueryExpr ms1 Union SQDefault Respectively
> (CombineQueryExpr ms1 Union SQDefault Respectively ms1))
> ]
> where
> ms1 = makeSelect

View file

@ -1794,7 +1794,7 @@ operator is ||, same as the string concatenation operator.
> ,ArrayCtor (makeSelect
> {qeSelectList = [(Star,Nothing)]
> ,qeFrom = [TRSimple "t"]
> ,qeOrderBy = [SortSpec (Iden "a") Asc NullsOrderDefault] }))
> ,qeOrderBy = [SortSpec (Iden "a") DirDefault NullsOrderDefault] }))
> ]
== 6.37 <multiset value expression> (p286)
@ -2911,22 +2911,22 @@ TODO: review sort specifications
> sortSpecificationList :: TestItem
> sortSpecificationList = Group "sort specification list" $ map (uncurry TestQueryExpr)
> [("select * from t order by a"
> ,qe {qeOrderBy = [SortSpec (Iden "a") Asc NullsOrderDefault]})
> ,qe {qeOrderBy = [SortSpec (Iden "a") DirDefault NullsOrderDefault]})
> ,("select * from t order by a,b"
> ,qe {qeOrderBy = [SortSpec (Iden "a") Asc NullsOrderDefault
> ,SortSpec (Iden "b") Asc NullsOrderDefault]})
> ,qe {qeOrderBy = [SortSpec (Iden "a") DirDefault NullsOrderDefault
> ,SortSpec (Iden "b") DirDefault NullsOrderDefault]})
> ,("select * from t order by a asc,b"
> ,qe {qeOrderBy = [SortSpec (Iden "a") Asc NullsOrderDefault
> ,SortSpec (Iden "b") Asc NullsOrderDefault]})
> ,SortSpec (Iden "b") DirDefault NullsOrderDefault]})
> ,("select * from t order by a desc,b"
> ,qe {qeOrderBy = [SortSpec (Iden "a") Desc NullsOrderDefault
> ,SortSpec (Iden "b") Asc NullsOrderDefault]})
> ,SortSpec (Iden "b") DirDefault NullsOrderDefault]})
> ,("select * from t order by a collate x desc,b"
> ,qe {qeOrderBy = [SortSpec (Collate (Iden "a") "x") Desc NullsOrderDefault
> ,SortSpec (Iden "b") Asc NullsOrderDefault]})
> ,SortSpec (Iden "b") DirDefault NullsOrderDefault]})
> ,("select * from t order by 1,2"
> ,qe {qeOrderBy = [SortSpec (NumLit "1") Asc NullsOrderDefault
> ,SortSpec (NumLit "2") Asc NullsOrderDefault]})
> ,qe {qeOrderBy = [SortSpec (NumLit "1") DirDefault NullsOrderDefault
> ,SortSpec (NumLit "2") DirDefault NullsOrderDefault]})
> ]
> where
> qe = makeSelect

View file

@ -330,14 +330,14 @@ target_string
> [("count(*)",App "count" [Star])
> ,("sum(a order by a)"
> ,AggregateApp "sum" Nothing [Iden "a"]
> [SortSpec (Iden "a") Asc NullsOrderDefault])
> ,AggregateApp "sum" SQDefault [Iden "a"]
> [SortSpec (Iden "a") DirDefault NullsOrderDefault])
> ,("sum(all a)"
> ,AggregateApp "sum" (Just All) [Iden "a"] [])
> ,AggregateApp "sum" All [Iden "a"] [])
> ,("count(distinct a)"
> ,AggregateApp "count" (Just Distinct) [Iden "a"] [])
> ,AggregateApp "count" Distinct [Iden "a"] [])
> ]
> windowFunctions :: TestItem
@ -353,46 +353,46 @@ target_string
> ,("sum(a) over (order by b)"
> ,WindowApp "sum" [Iden "a"] []
> [SortSpec (Iden "b") Asc NullsOrderDefault] Nothing)
> [SortSpec (Iden "b") DirDefault NullsOrderDefault] Nothing)
> ,("sum(a) over (order by b desc,c)"
> ,WindowApp "sum" [Iden "a"] []
> [SortSpec (Iden "b") Desc NullsOrderDefault
> ,SortSpec (Iden "c") Asc NullsOrderDefault] Nothing)
> ,SortSpec (Iden "c") DirDefault NullsOrderDefault] Nothing)
> ,("sum(a) over (partition by b order by c)"
> ,WindowApp "sum" [Iden "a"] [Iden "b"]
> [SortSpec (Iden "c") Asc NullsOrderDefault] Nothing)
> [SortSpec (Iden "c") DirDefault NullsOrderDefault] Nothing)
> ,("sum(a) over (partition by b order by c range unbounded preceding)"
> ,WindowApp "sum" [Iden "a"] [Iden "b"]
> [SortSpec (Iden "c") Asc NullsOrderDefault]
> [SortSpec (Iden "c") DirDefault NullsOrderDefault]
> $ Just $ FrameFrom FrameRange UnboundedPreceding)
> ,("sum(a) over (partition by b order by c range 5 preceding)"
> ,WindowApp "sum" [Iden "a"] [Iden "b"]
> [SortSpec (Iden "c") Asc NullsOrderDefault]
> [SortSpec (Iden "c") DirDefault NullsOrderDefault]
> $ Just $ FrameFrom FrameRange $ Preceding (NumLit "5"))
> ,("sum(a) over (partition by b order by c range current row)"
> ,WindowApp "sum" [Iden "a"] [Iden "b"]
> [SortSpec (Iden "c") Asc NullsOrderDefault]
> [SortSpec (Iden "c") DirDefault NullsOrderDefault]
> $ Just $ FrameFrom FrameRange Current)
> ,("sum(a) over (partition by b order by c rows 5 following)"
> ,WindowApp "sum" [Iden "a"] [Iden "b"]
> [SortSpec (Iden "c") Asc NullsOrderDefault]
> [SortSpec (Iden "c") DirDefault NullsOrderDefault]
> $ Just $ FrameFrom FrameRows $ Following (NumLit "5"))
> ,("sum(a) over (partition by b order by c range unbounded following)"
> ,WindowApp "sum" [Iden "a"] [Iden "b"]
> [SortSpec (Iden "c") Asc NullsOrderDefault]
> [SortSpec (Iden "c") DirDefault NullsOrderDefault]
> $ Just $ FrameFrom FrameRange UnboundedFollowing)
> ,("sum(a) over (partition by b order by c \n\
> \range between 5 preceding and 5 following)"
> ,WindowApp "sum" [Iden "a"] [Iden "b"]
> [SortSpec (Iden "c") Asc NullsOrderDefault]
> [SortSpec (Iden "c") DirDefault NullsOrderDefault]
> $ Just $ FrameBetween FrameRange
> (Preceding (NumLit "5"))
> (Following (NumLit "5")))