2014-04-16 17:58:17 +02:00
|
|
|
continue 2003 review and tests
|
|
|
|
tutorial parser:
|
|
|
|
expr hack as best as can
|
|
|
|
left factor as much as possible
|
|
|
|
table expression in syntax
|
|
|
|
replace into this project
|
|
|
|
finish off ansi 2003 support or specific subset
|
|
|
|
summarize todos
|
|
|
|
start looking at error messages
|
|
|
|
change the booleans in the ast to better types for less ambiguity
|
|
|
|
represent missing optional bits in the ast as nothing instead of the
|
|
|
|
default
|
|
|
|
look at fixing the expression parsing completely
|
|
|
|
represent natural and using/on in the syntax more close to the
|
|
|
|
concrete syntax - don't combine
|
2014-04-15 12:47:34 +02:00
|
|
|
|
2014-04-16 17:58:17 +02:00
|
|
|
big feature summary:
|
|
|
|
all ansi sql queries
|
|
|
|
better expression tree parsing
|
|
|
|
error messages, left factor
|
|
|
|
dml, ddl, procedural sql
|
|
|
|
position annotation
|
|
|
|
type checker/ etc.
|
|
|
|
lexer
|
|
|
|
dialects
|
|
|
|
quasi quotes
|
|
|
|
typesafe sql dbms wrapper support for haskell
|
|
|
|
extensibility
|
|
|
|
performance analysis
|
2014-04-15 12:47:34 +02:00
|
|
|
|
|
|
|
|
2013-12-18 10:37:35 +01:00
|
|
|
= next release
|
2013-12-17 12:58:44 +01:00
|
|
|
|
2013-12-19 11:15:05 +01:00
|
|
|
try and use the proper css theme
|
2013-12-19 16:50:25 +01:00
|
|
|
create a header like in the haddock with simple-sql-parser +
|
|
|
|
contents link
|
|
|
|
change the toc gen so that it works the same as in haddock (same
|
|
|
|
div, no links on the actual titles
|
|
|
|
fix the page margins, and the table stuff: patches to the css?
|
2013-12-19 11:15:05 +01:00
|
|
|
|
2013-12-19 10:46:51 +01:00
|
|
|
release checklist:
|
|
|
|
hlint
|
|
|
|
haddock review
|
|
|
|
spell check
|
|
|
|
update changelog
|
|
|
|
update website text
|
2014-01-22 21:07:58 +01:00
|
|
|
regenerate the examples on the index.txt
|
2013-12-19 10:46:51 +01:00
|
|
|
|
|
|
|
= Later general tasks:
|
|
|
|
|
|
|
|
docs
|
2013-12-17 21:15:42 +01:00
|
|
|
|
2013-12-17 20:12:16 +01:00
|
|
|
add to website: pretty printed tpch, maybe other queries as
|
|
|
|
demonstration
|
|
|
|
|
2013-12-17 21:15:42 +01:00
|
|
|
add preamble to the rendered test page
|
|
|
|
|
2013-12-18 10:37:35 +01:00
|
|
|
add links from the supported sql page to the rendered test page for
|
2013-12-18 15:27:06 +01:00
|
|
|
each section -> have to section up the tests some more
|
2013-12-18 10:37:35 +01:00
|
|
|
|
2013-12-19 10:46:51 +01:00
|
|
|
testing
|
2013-12-18 10:37:35 +01:00
|
|
|
|
2013-12-17 10:40:31 +01:00
|
|
|
review tests to copy from hssqlppp
|
|
|
|
|
2014-01-22 21:07:58 +01:00
|
|
|
add lots more tests using SQL from the xb2 manual
|
|
|
|
|
2013-12-18 10:37:35 +01:00
|
|
|
much more table reference tests, for joins and aliases etc.?
|
|
|
|
|
|
|
|
review internal sql collection for more syntax/tests
|
|
|
|
|
2013-12-19 10:46:51 +01:00
|
|
|
other
|
2013-12-17 10:40:31 +01:00
|
|
|
|
2013-12-17 12:41:06 +01:00
|
|
|
review syntax to replace maybe and bool with better ctors
|
2013-12-17 21:15:42 +01:00
|
|
|
|
2013-12-19 10:46:51 +01:00
|
|
|
----
|
2013-12-17 10:40:31 +01:00
|
|
|
|
2013-12-18 10:37:35 +01:00
|
|
|
demo program: convert tpch to sql server syntax exe processor
|
2013-12-17 10:40:31 +01:00
|
|
|
|
|
|
|
review abstract syntax (e.g. combine App with SpecialOp?)
|
|
|
|
|
2013-12-17 17:42:00 +01:00
|
|
|
more operators
|
|
|
|
|
2013-12-17 15:00:17 +01:00
|
|
|
sql server top syntax
|
|
|
|
|
2013-12-17 15:15:19 +01:00
|
|
|
named windows
|
|
|
|
|
2013-12-17 14:21:43 +01:00
|
|
|
extended string literals, escapes and other flavours (like pg and
|
|
|
|
oracle custom delimiters)
|
|
|
|
|
2013-12-17 10:40:31 +01:00
|
|
|
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.
|
|
|
|
|
2013-12-14 19:20:41 +01:00
|
|
|
check the order of exports, imports and functions/cases in the files
|
|
|
|
fix up the import namespaces/explicit names nicely
|
|
|
|
|
2013-12-17 19:27:11 +01:00
|
|
|
ast checker: checks the ast represents valid syntax, the parser
|
|
|
|
doesn't check as much as it could, and this can also be used to
|
|
|
|
check generated trees. Maybe this doesn't belong in this package
|
|
|
|
though?
|
|
|
|
|
2013-12-13 13:08:33 +01:00
|
|
|
= sql support
|
|
|
|
|
2013-12-19 09:27:44 +01:00
|
|
|
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, one
|
|
|
|
collation per column
|
|
|
|
and on group by
|
|
|
|
a collation in ansi sql is a optional qualifier plus identifier, not a
|
|
|
|
string
|
|
|
|
have to do fixity for this to work
|
|
|
|
|
2013-12-19 16:50:25 +01:00
|
|
|
see what schema.fun(a) parses to and decide if this is correct
|
|
|
|
|
2013-12-19 09:27:44 +01:00
|
|
|
all ansi string literal syntax?
|
|
|
|
|
|
|
|
check ansi standard for operators (keywords and symbols)
|
|
|
|
|
2013-12-17 17:42:00 +01:00
|
|
|
proper character sets for identifiers, escapes, etc.
|
|
|
|
|
2013-12-17 10:40:31 +01:00
|
|
|
placeholder/positional arg
|
2013-12-13 13:08:33 +01:00
|
|
|
|
2013-12-13 17:50:41 +01:00
|
|
|
full number literals -> other bases?
|
2013-12-13 13:08:33 +01:00
|
|
|
apply, pivot
|
|
|
|
within group aggregate syntax
|
2013-12-13 14:05:32 +01:00
|
|
|
|
2013-12-13 13:08:33 +01:00
|
|
|
try to do full review of sql2003 query syntax
|
|
|
|
|
2013-12-13 17:50:41 +01:00
|
|
|
make ansi dialect which only supports ansi sql. Maybe there is a use
|
|
|
|
for a separate SQL 92, 99 and 2003 dialects?
|
|
|
|
|
2013-12-19 09:27:44 +01:00
|
|
|
string literals:
|
|
|
|
N'
|
|
|
|
B'
|
|
|
|
X'
|
|
|
|
U&' ?
|
|
|
|
looks like two string literals separated by any whitespace are
|
2013-12-19 12:38:52 +01:00
|
|
|
merged, which isn't what the postgres manual claims is the standard
|
|
|
|
plus something introducer, character set thing
|
2013-12-19 09:27:44 +01:00
|
|
|
union join?
|
|
|
|
corresponding by
|
|
|
|
from in substring is not optional in ansi
|
|
|
|
the keyword from is optional in trim iff there is neither
|
|
|
|
leading,etc. and explicit char
|
|
|
|
extract can accept 'timezone hour' and 'timezone minute' for the
|
|
|
|
extraction field. Could hardcode the complete allowed list in the
|
|
|
|
parser?
|
|
|
|
bunch of timezone keyword stuff
|
|
|
|
interval a to b
|
|
|
|
array specification int array or int array[5] - type name
|
|
|
|
typenames: scope, multiset,row type, ref type
|
|
|
|
unique subquery -> returns true if all the rows in the subquery are
|
|
|
|
distinct
|
|
|
|
match predicate <row value constructor> MATCH [ UNIQUE ] [ PARTIAL |
|
|
|
|
FULL ] <table subquery>
|
|
|
|
clob type: CLOB(4M) - M suffix on the precision
|
|
|
|
array element reference a[4]
|
|
|
|
regular expression substring function
|
|
|
|
between symmetric
|
|
|
|
unicode delimited identifier
|
|
|
|
character set postfix type op for string types + collate on string types
|
|
|
|
next value for
|
|
|
|
treat as
|
|
|
|
generalized invocation?
|
|
|
|
position using
|
|
|
|
multiset stuff
|
|
|
|
table sample
|
|
|
|
unnest
|
|
|
|
only
|
|
|
|
window frame exclusion: complete window support?
|
2013-12-19 12:38:52 +01:00
|
|
|
select t.* as (a,b,c) from t
|
2013-12-19 09:27:44 +01:00
|
|
|
search or cycle clause for ctes
|
|
|
|
normalized
|
|
|
|
|
2013-12-13 17:50:41 +01:00
|
|
|
other dialect targets:
|
|
|
|
postgres
|
|
|
|
oracle
|
|
|
|
teradata
|
|
|
|
ms sql server
|
|
|
|
mysql?
|
|
|
|
db2?
|
2014-04-16 17:58:17 +02:00
|
|
|
what other major dialects are there?
|
|
|
|
sqlite
|
|
|
|
sap dbmss (can't work out what are separate products or what are the
|
|
|
|
dialects)
|
2013-12-13 17:50:41 +01:00
|
|
|
|
|
|
|
maybe later: other dml
|
2013-12-17 10:40:31 +01:00
|
|
|
insert, update, delete, truncate, merge + set, show?
|
2013-12-17 20:34:01 +01:00
|
|
|
copy, execute?, explain?, begin/end/rollback?
|
2014-01-22 21:07:58 +01:00
|
|
|
|