@@ -15,23 +15,6 @@ use a custom class instead that abstracts different products
15
15
*** TODO [#A] add proper identifier quoting
16
16
sqlsmiths fails horribly with databases containing identifiers that
17
17
require quoting.
18
- *** TODO [#A] Allow productions to fail in factories
19
- - Make productions throw a smith::no_candidate : std::runtime_error
20
- - Catch it and randomly pick another one.
21
- - Need to count errors and escalate at some point
22
- *** TODO Add functions :schema:
23
- - convenient for pulling values out of nowhere (version(), now(), etc)
24
- - Should be some coverage wrt. fuzzing (to_char...)
25
- *** TODO Add aggregates :schema:
26
- - in window functions
27
- - in group by
28
- - need to find a way to constrain column-referencing exprs to contain
29
- an aggregate *somewhere*
30
- expr->agg->expr agg->expr expr->agg
31
- - maybe use needs_aggreate bool default argument to expr constructors
32
- *** TODO UPDATE
33
- *** TODO INSERT
34
- *** TODO DELETE
35
18
*** TODO [#C] Generate data for literal use in queries
36
19
*** TODO Improve random generation
37
20
- Add Attributes to rules so factories can pick candidates in a
@@ -46,19 +29,10 @@ require quoting.
46
29
*** TODO DTRT with arrays
47
30
- review standard so we don't drift into non-standard pg stuff
48
31
*** TODO composite/record types
49
- ** TODO [#C] support more RDMBSs
50
- - Should add more than products early to avoid a point of no return
51
- - Allow blacklisting of productions for RDBMs with gaps wrt standards
52
- conformance (probably depends on improved random generation)
53
- - Should be easy to prune unsupported productions automatically on syntax errors.
54
- Or maybe it's better to add a calibration phase? -> conflicts with hard-coded grammar
55
- - Allow automatic detection of problematic productions via stats visitor.
56
- - Alternate approach: add a test_compat() method to rules
57
32
** relmodel
58
33
*** TODO [#C] operations on Tuples
59
34
instead of hacking up tuples inside productions it's more sensible to
60
35
implement operators in relmodel.cc join() project() union() select()
61
- *** TODO [#C] primitive cost model
62
36
*** TODO Load samples at startup to have a pool of values for literals
63
37
- how to do it in a reproducible fashion? TABLESAMPLE? ORDER BY?
64
38
- maybe use atomic value subselects to fetch compatible values
0 commit comments