1
Fork 0

rearrange the test code and add some notes on postgres

This commit is contained in:
Jake Wheat 2013-12-17 11:40:31 +02:00
parent 86ba354e26
commit 6ff8c9ddc5
10 changed files with 940 additions and 591 deletions

108
TODO
View file

@ -1,85 +1,100 @@
next release:
quoted identifiers: implement as a dot operator
review tests to copy from hssqlppp
lateral since it is easy. I think it is effectively just a prefix
operator on tablerefs (can appear like this from lateral a, from
lateral a,b, from a, lateral b, from a natural join lateral b
(although all of these are sematically garbage, this is the
valid syntax)
more dots: implement as dot operator
row ctor: row(a,b) is fine, but also when there is 2 or more elements,
the word row can be omitted: (a,b)
more symbolic operators, array access a[5]? don't think this is
standard sql, if not, leave for now. There is something about
arrays in sql:2008
window frames and named windows
dialect framework
try to implement fixity without the hse hack
position annotation?
row ctor
more symbolic operators, array access a[5]?
review abstract syntax (e.g. combine App with SpecialOp?)
more dots
review tests to copy from hssqlppp
order by nulls first/last
extend case
group by extensions
group by extensions. Question: some of the syntax can be represented
by app and row ctor, should this be reused or new syntax created
(the standard has special syntax for cube and rollup).
table, values
collate? -> postfix operator which binds very tightly:
collate? -> postfix operator which binds very tightly:
a < 'foo' collate 'C'
->
Op "<" [Iden "a", SpecialOp "collate" [StringLit 'foo', StringLit
'C']]
also postfix in order by:
select a from t order by a collate 'C': add to order by syntax
select a from t order by a collate 'C': add to order by syntax, one
collation per column
function table reference
much more table reference tests
much more table reference tests, for joins and aliases etc.
ansi standard versions of limit and offset
sql server top
OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY
-> + fix the abstract syntax to match this instead of postgres
(keep the postgres syntax version parser)
in the postgresql docs, the start and count must be in parens unless
they are a single integer
+ sql server top syntax
quoted identifiers and proper character sets for identifiers
run through postgres docs and add example sql as tests
review internal sql collection for more syntax/tests
all ansi sql operators
escapes in string literals
----
add to website: pretty printed tpch, maybe other queries as
demonstration
demo: convert tpch to sql server syntax
review internal sql collection for more syntax/tests
run through postgres docs and add example sql as tests
demo: convert tpch to sql server syntax exe processor
----
dialect framework
try to implement fixity without the hse hack
position annotation?
review abstract syntax (e.g. combine App with SpecialOp?)
----
Later general tasks:
run through other manuals for example queries and features: sql in a
nutshell, sql guide, sql reference guide, sql standard, sql server
manual, oracle manual, teradata manual + re-through postgresql
manual and make notes in each case of all syntax and which isn't
currently supported also.
check the order of exports, imports and functions/cases in the files
fix up the import namespaces/explicit names nicely
do some tests for parse errors?
dialect switching
left factor parsing code in remaining places
reimplement the fixity thing natively
position annotation?
quasi quotes?
= sql support
scalar function syntax:
placeholder/positional arg
review all ansi sql operators
placeholder/positional arg
other missing operators
row constructors -> needed for stuff like
'where (a,b) = any (select a,b from t)'
review allowed identifier syntax
add quoted identifiers
more dots in identifiers
order by nulls first/last
extend case
escapes in string literals
full number literals -> other bases?
group by (), grouping sets(), cube, rollup
lateral
named windows
table, values
apply, pivot
collate
within group aggregate syntax
support the ansi version for limit and offset, plus review other
dialects
try to do full review of sql2003 query syntax
make ansi dialect which only supports ansi sql. Maybe there is a use
@ -94,3 +109,4 @@ mysql?
db2?
maybe later: other dml
insert, update, delete, truncate, merge + set, show?