2024-01-12 20:25:13 +01:00
|
|
|
Some random notes on what could be done with the package in the future. None of this is scheduled.
|
2024-01-10 13:54:01 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
The most important thing is adding more support for needed SQL. Everything else is very secondary to this.
|
2019-08-31 10:13:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
Infrastructure
|
|
|
|
--------------
|
2019-08-31 10:13:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
write a CI script
|
2019-08-31 10:13:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
decide if to use a code formatter - pro: it will preserve git blame stuff better
|
2019-08-31 10:13:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
switch the website to use markdown
|
2019-08-31 10:13:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
try to improve the usability of the rendered test cases
|
2019-08-31 10:13:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
add automated tests for the examples on the website
|
2016-02-22 22:24:25 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
add a few more examples to the website:
|
|
|
|
parse some sql and detect if it has a particular feature
|
|
|
|
do a transformation on some sql
|
|
|
|
idea: convert tpch to sql server syntax
|
|
|
|
generate some sql
|
|
|
|
format some sql
|
|
|
|
check if some sql parses
|
|
|
|
trivial documentation generation for ddl
|
|
|
|
trivial lint checker
|
|
|
|
demos:
|
|
|
|
crunch sql: this takes sql and tries to make it as small as possible
|
|
|
|
(combining nested selects where possible and inlining
|
|
|
|
ctes)
|
|
|
|
expand sql:
|
|
|
|
breaks apart complex sql using nested queries and ctes, try to make
|
|
|
|
queries easier to understand in stages
|
2016-02-22 22:24:25 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
write a beginners tutorial for how to add support for some new sql syntax
|
|
|
|
show how to develop parsers interactively, then tidy them up for merging
|
|
|
|
to the main branch
|
2016-02-22 22:28:59 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
review code coverage and see if there are any important gaps to fill in
|
|
|
|
set up hlint to run easily
|
2016-02-22 22:16:15 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
Code
|
|
|
|
----
|
2016-02-22 22:16:15 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
There could be more negative tests for lexing and dialect options.
|
2015-08-01 11:13:53 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
Check the fixity in the tableref parsing, see if there is anywhere else that needs tweaking.
|
2014-06-20 11:27:23 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
Do all sql dialects have compatible fixities? If not, want to add dialect control over the fixity.
|
2014-06-20 11:27:23 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
add parse error recovery
|
2014-05-09 20:37:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
add ability to type check:
|
|
|
|
uuagc still seems like the nicest option?
|
|
|
|
uuagc has an option to attach to an external ast now, so could
|
|
|
|
put the type checker in a separate package
|
2014-05-09 20:37:09 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
figure out how to support parsing some sql, transforming it, pretty printing it
|
|
|
|
while perserving as much of the original formatting as possible, and all the comments
|
|
|
|
an intermediate step is to minimise the difference in non whitespace/comment tokens
|
|
|
|
when you parse then pretty print any supported sql
|
2014-04-19 20:17:19 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
add an annotation field to the syntax to make it more useful
|
|
|
|
add source positions to this annotation when parsing
|
2014-05-07 20:53:24 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
can you make it properly extensible? the goal is for users to work with asts that
|
|
|
|
represent only the dialect they are working in
|
2014-05-07 20:53:24 +02:00
|
|
|
|
2014-04-20 15:13:14 +02:00
|
|
|
review names in the syntax for correspondence with sql standard, avoid
|
2024-01-12 20:25:13 +01:00
|
|
|
gratuitous differences
|
2013-12-17 19:27:11 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
reduce use of booleans in the syntax
|
2013-12-13 13:08:33 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
quasi quotation support
|
2013-12-19 09:27:44 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
use this lib to build a typesafe sql wrapper for haskell
|
2014-04-20 18:24:03 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
optimise the lexer:
|
|
|
|
add some benchmarks
|
|
|
|
do some experiments with left factoring
|
|
|
|
try to use the token approach with megaparsec
|
2014-04-20 18:24:03 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
rewrite bits of the parser, lots of it is a bit questionable
|
|
|
|
- an expert with megaparsec would write something simpler
|
|
|
|
I think it's not worth doing for the sake of it, but if a bit
|
|
|
|
is too difficult to add new features to, or to improve
|
|
|
|
the error messages, then it might be worth it
|
2013-12-13 17:50:41 +01:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
work on error messages
|
2015-08-08 19:07:44 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
review the crazy over the top lexer testing
|
|
|
|
maybe it's enough to document an easy way to skip these tests
|
2015-08-08 19:07:44 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
check more of the formatting of the pretty printing and add regression tests for this
|
2015-08-08 19:07:44 +02:00
|
|
|
|
2024-01-12 20:25:13 +01:00
|
|
|
is there a way to get incremental parsing like attoparsec?
|