Michael>Tests are running quite slowly, but I left it overnight and haven't
found any crashes

There's https://github.com/anse1/sqlsmith which is supposed to be used
against PostgreSQL.
However, we could configure Calcite to be a proxy to the PostgreSQL, so
sqlsmith would use Calcite as if it was PostgreSQL.

Second option is to call sqlsmith to generate some queries, and then
execute it via Java-based API.

The third option is to implement Java-based (or Kotlin-based) fuzzer. I
think it might stress more aspects.
For instance, Calcite has various quoting rules, and sqlsmith just does not
support that.

Michael>Any suggestions on other things that might be relatively
straightforward to test?

My RexFuzzer.java is about 200-300 lines of straight-forward Java code that
produces random RexNodes, and it does find multiple bugs in RexSimplify in
a minute.
I think we might want to have a fuzzer for RelBuilder as well.
It should be more-or-less trivial, and it might find interesting cases.

As a bonus point, we can run the same SQL through regular PostgreSQL and
compare the outputs.

Vladimir

Reply via email to