- 新增三个 demo 工程(demo-eslint / demo-sqlfluff / demo-stylelint):各含 src/ 样例代码与覆盖率映射(run-coverage.mjs、coverage_map.json、stylelint_line_map.json) - 归档各 demo 的插件实测导出报告(reports/): - demo-eslint:common.js / esm-demo.js / legacysyntax.cjs / typescript.ts 审查报告 + 覆盖率报告(292/292 条零偏差,126 种规则全覆盖) - demo-sqlfluff:11 个 SQL 样例审查报告 + 覆盖率报告(113/113 条零偏差,57 种规则全覆盖,含 JJ01 行号缺陷修复后的复测验证) - demo-stylelint:common.css / empty-source.css 审查报告 + 覆盖率报告(145/145 条零偏差,68 种规则全覆盖)
1.5 KiB
1.5 KiB
代码审查报告
文件: data\demo-sqlfluff\src\08_jinja.sql
语言: sql
耗时: 56.7s
分析工具: sqlfluff
总计: 4 | 错误: 2 | 警告: 1 | 建议: 1
静态分析 · 2 个问题
- 🔴
sqlfluff:JJ01L2 第2行:Jinja 标签应在两侧各有一个空格:{{1}} 建议: 将 {{1}} 改为 {{ 1 }},即表达式与花括号之间各留一个空格。 - 🔴
sqlfluff:LT12L6 第6行:文件必须以单个尾随换行符结尾。 建议: 在文件末尾(当前最后一行 my_table; 后)补一个换行符,并确保没有多余空行。
AI 审查 · 2 条建议
- 🟡 [AI] [performance]
unfiltered-select-allL3 查询未加过滤条件,可能全表扫描并返回全部数据 第3~6行的 SELECT 仅选择 id 且没有 WHERE 或 LIMIT;若直接用于生产,会读取 my_table 全表数据,可能造成性能问题,同时将全部 id 暴露给调用方。 建议: 如果只需要部分数据,增加明确的 WHERE 条件(如按时间或状态过滤);若用于分页/展示,应添加 LIMIT;若确实需要全量 id,请补充注释说明用途及执行窗口。 - 🔵 [AI] [design]
unqualified-table-referenceL6 表名未限定 schema/database 第6行直接使用 my_table,未加 schema 或 database 限定;当数据库搜索路径变化时,可能解析到非预期表,导致查询错误。 建议: 将表名改为明确的限定名,例如 my_schema.my_table(按实际环境替换 schema 名)。