#fuzzer #sql #random #parquet #generate #queries #local

bin+lib sqlfuzz

从任何本地的 Parquet、CSV、JSON 或 Avro 数据集中生成随机(有时甚至有效!)的查询

4 个版本 (2 个破坏性更新)

0.3.0 2022 年 7 月 10 日
0.2.0 2022 年 7 月 10 日
0.1.1 2022 年 7 月 9 日
0.1.0 2022 年 7 月 9 日

#660测试

Apache-2.0

33KB
761

SQL Fuzz 测试工具

从任何本地 Parquet、CSV、JSON 或 Avro 格式的数据集中生成随机(有时甚至有效!)的 SQL 查询。

安装

cargo install sqlfuzz

查询模糊测试

sqlfuzz query \
  --table ./testdata/test0.parquet ./testdata/test1.parquet \
  --join-type inner left right full semi anti \
  --count 5 \
  --max-depth 5

示例生成的查询

SELECT __c320, __c321, __c322, __c323
FROM (
    (SELECT test1.c0 AS __c320, test1.c1 AS __c321, test1.c2 AS __c322, test1.c3 AS __c323
    FROM (test1))
    INNER JOIN
    (SELECT test1.c0 AS __c324, test1.c1 AS __c325, test1.c2 AS __c326, test1.c3 AS __c327
    FROM (test1))
    ON __c320 = __c327)
WHERE __c323 > __c320;

数据生成器

如果您还没有合适的数据,您可以生成随机数据文件来运行查询模糊测试。

sqlfuzz data --path ./testdata --num-files 4 --row-count 20

依赖项

~38–51MB
~1M SLoC