* feat: rewrite do_get for streaming get flight data * feat: rewrite do_get call stack but leave the async stream adapter not modified yet * feat: rewrite the async stream adapter to accept greptime record batch stream * fix: resolve some PR comments * feat: rewrite tests to adapt to the streaming do_get * feat: add unit tests for streaming do_get * feat: rewrite timer metric of merge scan * remove unhelpful unit tests for streaming do_get * add a new metric timer for merge scan and fix some test errors * rewrite mysql writer to write query results in a streaming manner * fix: fix fmt errors * fix: rewrite sqlness runner to take into account the streaming do_get * fix: fix toml format errors * fix: resolve some PR comments * fix: resolve some PR comments * fix: refactor do_get to increase readability * fix: refactor mysql try_write_one to increase readability
Sqlness Test
Sqlness manual
Case file
Sqlness has two types of file
.sql: test input, SQL only.result: expected test output, SQL and its results
.result is the output (execution result) file. If you see .result files is changed,
it means this test gets a different result and indicates it fails. You should
check change logs to solve the problem.
You only need to write test SQL in .sql file, and run the test.
Case organization
The root dir of input cases is tests/cases. It contains several sub-directories stand for different test
modes. E.g., standalone/ contains all the tests to run under greptimedb standalone start mode.
Under the first level of sub-directory (e.g. the cases/standalone), you can organize your cases as you like.
Sqlness walks through every file recursively and runs them.
Run the test
Unlike other tests, this harness is in a binary target form. You can run it with
cargo sqlness
It automatically finishes the following procedures: compile GreptimeDB, start it, grab tests and feed it to
the server, then collect and compare the results. You only need to check if the .result files are changed.
If not, congratulations, the test is passed 🥳!