Expand description
proc-macro 编译期 SQL 验证模块
扩展 v3.5.0 既有 query! 宏的 db-verify 能力到 QueryBuilder 生态。
通过 sqlparser 在编译期解析 SQL 字符串,校验:
- SQL 语法正确性
- 表/列存在性(连真 DB 执行 EXPLAIN,仅查询不修改)
- 类型匹配
§启用方式
export DATABASE_URL="mysql://root:test123@127.0.0.1:3306/sz_orm_test"
export SZ_ORM_QUERY_VERIFY=1
cargo build --features sql-verify-proc§降级模式
当 DATABASE_URL 未设置或 SZ_ORM_QUERY_VERIFY 未启用时,自动回退到仅语法校验,
输出降级警告 warning: sql-verify-proc degraded to syntax-only。
§覆盖路径
覆盖所有 QueryBuilder 路径:
- SELECT/INSERT/UPDATE/DELETE 基础路径
- JOIN(INNER/LEFT/RIGHT/FULL)
- 子查询(WHERE/SELECT/FROM)
- CTE(WITH/WITH RECURSIVE)
- 窗口函数(OVER/PARTITION BY/FRAME)
Structs§
- Verify
Result - SQL 验证结果
Enums§
- SqlPath
- SQL 语句路径分类(覆盖所有 QueryBuilder 路径)
- Verify
Dialect - SQL 方言枚举(用于选择解析器方言)
- Verify
Mode - 验证模式
Functions§
- build_
explain_ sql - 为指定方言构造 EXPLAIN SQL
- check_
path_ coverage - 验证 SQL 路径覆盖度
- classify_
sql_ path - 识别 SQL 语句的路径分类
- current_
verify_ mode - 获取当前验证模式
- is_
db_ verify_ enabled - 检查是否启用连真 DB 验证
- is_
read_ only - 验证 SQL 是否为只读查询(SELECT/EXPLAIN,不包含 INSERT/UPDATE/DELETE/DROP 等)
- sql_
hash - 计算 SQL 的哈希值(用于缓存键)
- verify_
degraded - 降级模式验证(仅语法校验,输出降级警告)
- verify_
full - 完整验证(语法 + 路径分类 + EXPLAIN 构造)
- verify_
smart - 智能验证调度
- verify_
sql_ syntax - 编译期 SQL 语法验证(不连 DB)