Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a testing implementation for H2 #23

Closed
mrigger opened this issue Jun 7, 2020 · 6 comments
Closed

Add a testing implementation for H2 #23

mrigger opened this issue Jun 7, 2020 · 6 comments
Labels

Comments

@mrigger
Copy link
Contributor

mrigger commented Jun 7, 2020

It would be interesting to test H2, especially since one of H2's maintainers expressed interest on Hacker News in the SQLancer thread:

Neat! Perhaps you could run this against H2 (I’m a maintainer). Although best to run against our current master, release is a little old.

@grandinj
Copy link

grandinj commented Jun 7, 2020

thanks!

repo is here
https://github.com/h2database/h2database

and build instructions are here
http://h2database.com/html/build.html

We try to be SQL Standard compliant as far as possible

@mrigger
Copy link
Contributor Author

mrigger commented Aug 15, 2020

@mrigger
Copy link
Contributor Author

mrigger commented Oct 2, 2020

Addressed by #217.

@grandinj @katzyn do you have any plans about integrating SQLancer into your Travis CI tests? The DuckDB developers have, for example, adopted this approach (see https://github.com/cwida/duckdb/blob/77599e4ae91f08255a1c65772bbe827a75e77882/.travis.yml#L382). If yes, please let me know.

Next, we want to add a Travis CI gate for SQLancer to verify that SQLancer does not find any errors on the latest (tested) version of H2 (see #231).

@mrigger mrigger closed this as completed Oct 2, 2020
@grandinj
Copy link

grandinj commented Oct 2, 2020

Thanks a lot for your work, that was very useful, we will indeed look into that

@mrigger
Copy link
Contributor Author

mrigger commented Oct 2, 2020

Thanks! If you intend to do so, I think it would be important to add the Travis CI gate for SQLancer first (see #231), to avoid that bugs in SQLancer cause the H2 Travis CI tests to fail, which would be annoying for you. We can add the gate to SQLancer once the next release of H2 is available.

We implemented support for H2 to do an experiment for one of our papers, for which a preprint is available at https://www.manuelrigger.at/preprints/TLP.pdf. The H2 implementation and experiment is described in Section 5.4. If you have time to look into this section, I would greatly appreciate any feedback that you might have, either by posting them in this thread or by sending me an email (manuel.rigger@inf.ethz.ch).

@mrigger
Copy link
Contributor Author

mrigger commented Dec 13, 2020

@grandinj @katzyn SQLancer now continuously runs H2 in its CI tests, to prevent that new bugs in SQLancer break its supports for H2. If you are interested in using SQLancer in your Travis CI tests, this should easily possible. You should basically be able to clone SQLancer (see the quickstart instructions), build the latest version of H2, and use it to replace the latest Maven JAR:

cp bin/h2-2.0.201.jar ../../target/lib/h2-1.4.200.jar
.

Then you can run SQLancer for a while (e.g., 10 minutes) to validate that no bugs are introduced that SQLancer can detect:

java -jar target/SQLancer-*.jar --num-queries 1000 --num-threads 4 --random-seed 0 --timeout-seconds 600 h2

I'd be happy to help with this, if you are interested!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants