- 新增三个 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 种规则全覆盖)
31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
# 代码审查报告
|
|
|
|
**文件:** `data\demo-sqlfluff\src\08_jinja.sql`
|
|
**语言:** sql
|
|
**耗时:** 56.7s
|
|
**分析工具:** sqlfluff
|
|
|
|
---
|
|
|
|
总计: 4 | 错误: 2 | 警告: 1 | 建议: 1
|
|
|
|
静态分析 · 2 个问题
|
|
|
|
- 🔴 `sqlfluff:JJ01` L2
|
|
第2行:Jinja 标签应在两侧各有一个空格:{{1}}
|
|
建议: 将 {{1}} 改为 {{ 1 }},即表达式与花括号之间各留一个空格。
|
|
- 🔴 `sqlfluff:LT12` L6
|
|
第6行:文件必须以单个尾随换行符结尾。
|
|
建议: 在文件末尾(当前最后一行 my_table; 后)补一个换行符,并确保没有多余空行。
|
|
|
|
AI 审查 · 2 条建议
|
|
|
|
- 🟡 [AI] [performance] `unfiltered-select-all` L3
|
|
**查询未加过滤条件,可能全表扫描并返回全部数据**
|
|
第3~6行的 SELECT 仅选择 id 且没有 WHERE 或 LIMIT;若直接用于生产,会读取 my_table 全表数据,可能造成性能问题,同时将全部 id 暴露给调用方。
|
|
建议: 如果只需要部分数据,增加明确的 WHERE 条件(如按时间或状态过滤);若用于分页/展示,应添加 LIMIT;若确实需要全量 id,请补充注释说明用途及执行窗口。
|
|
- 🔵 [AI] [design] `unqualified-table-reference` L6
|
|
**表名未限定 schema/database**
|
|
第6行直接使用 my_table,未加 schema 或 database 限定;当数据库搜索路径变化时,可能解析到非预期表,导致查询错误。
|
|
建议: 将表名改为明确的限定名,例如 my_schema.my_table(按实际环境替换 schema 名)。
|