= next release Most important goal is to replace the fixity code and fix all the bugs here. Could also review parens and fixity at query expr level, and in tablerefs == docs add to website: pretty printed tpch, maybe other queries as demonstration add preamble to the rendered test page add links from the supported sql page to the rendered test page for each section -> have to section up the tests some more == testing review tests to copy from hssqlppp much more table reference tests, for joins and aliases etc.? review internal sql collection for more syntax/tests == other change any/some/all to be proper infix operators like in ?? review syntax to replace maybe and bool with better ctors = Later general tasks: demo program: convert tpch to sql server syntax exe processor dialect framework try to implement fixity without the hse hack source position annotation? review abstract syntax (e.g. combine App with SpecialOp?) more operators sql server top syntax named windows extended string literals, escapes and other flavours (like pg and oracle custom delimiters) 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? left factor parsing code in remaining places quasi quotes? 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? = sql support 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 all ansi string literal syntax? check ansi standard for operators (keywords and symbols) proper character sets for identifiers, escapes, etc. placeholder/positional arg full number literals -> other bases? apply, pivot within group aggregate syntax try to do full review of sql2003 query syntax make ansi dialect which only supports ansi sql. Maybe there is a use for a separate SQL 92, 99 and 2003 dialects? string literals: N' B' X' U&' ? looks like two string literals separated by any whitespace are merged, which isn't what the postgres manual claims is the standard plus something introducer, character set thing 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 MATCH [ UNIQUE ] [ PARTIAL | FULL ] clob type: CLOB(4M) - M suffix on the precision array element reference a[4] regular expression substring function between symmetric match predicate 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? select t.* as (a,b,c) from t ?? search or cycle clause for ctes normalized other dialect targets: postgres oracle teradata ms sql server mysql? db2? maybe later: other dml insert, update, delete, truncate, merge + set, show? copy, execute?, explain?, begin/end/rollback?