SQLPlannerTest

A yaml-based SQL planner test framework.

SQLPlannerTest is a regression test framework. It will read a special yaml file for describing the test cases, call the database system to generate result, and store the result in a special regression test file format.

Here's an example of test description file:

yaml - id: sql1 sql: | CREATE TABLE t1(v1 int); - id: sql2 sql: | CREATE TABLE t2(v2 int); - sql: | SELECT * FROM t1, t2 WHERE t1.v1 = t2.v2; desc: Test whether join works correctly. before: ["*sql1", "*sql2", "CREATE TABLE t3(v3 int);"] test: - logical - physical

Basically, it is like:

yaml - id: <test case id> # which will be referenced by `before` sql: SELECT * FROM table; desc: Description of this test case before: - "*test_case_1" # use *id to reference to another test case - "*test_case_2" - CREATE TABLE t2(v2 int); # or directly write a SQL here test: # run logical and physical test for this case - logical - physical

And it will generate a file describing the result. Developers can diff the regression test result to see what have been changed throughout the process.