2个不稳定版本

0.1.0 2024年2月24日
0.0.0 2022年6月9日

1583数据库接口


用于 optd-sqlplannertest

MIT/Apache

16KB
319

SQLPlannerTest

基于yaml的SQL规划器测试框架。

SQLPlannerTest是一个回归测试框架。它将读取一个特殊的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);"]
  tasks:
  - logical
  - physical

基本上,它就像

- 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
  tasks:                      # run logical and physical test for this case
  - logical
  - physical

它将生成一个描述结果的文件。开发者可以通过比较回归测试结果来查看在整个过程中发生了什么变化。

NaiveDB

用于测试sqlplannertest的简单数据库系统。

更新测试用例

cargo run -p naivedb --bin apply

验证测试用例

cargo test -p naivedb
# or use nextest
cargo nextest run -p naivedb

依赖项

~6–16MB
~185K SLoC