- 新增三个 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 种规则全覆盖)
35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# 代码审查报告
|
||
|
||
**文件:** `data\demo-sqlfluff\src\05b_layout_misc.sql`
|
||
**语言:** sql
|
||
**耗时:** 89.3s
|
||
**分析工具:** sqlfluff
|
||
|
||
---
|
||
|
||
总计: 5 | 错误: 3 | 警告: 1 | 建议: 1
|
||
|
||
静态分析 · 3 个问题
|
||
|
||
- 🔴 `sqlfluff:LT14` L2
|
||
L2:'GROUP' 关键字应始终另起一行。
|
||
建议: 将 GROUP BY 子句移到新行。例如:SELECT id FROM my_table
|
||
GROUP BY id;
|
||
- 🔴 `sqlfluff:LT15` L8
|
||
L8:连续空行过多。
|
||
建议: 将第6-8行的连续空行减少为一个空行(删除第7和第8行)。
|
||
- 🔴 `sqlfluff:LT12` L10
|
||
L10:文件必须以单个尾随换行符结尾。
|
||
建议: 确保文件末尾只有一个换行符,删除多余的空行或在末尾添加一个换行符。
|
||
|
||
AI 审查 · 2 条建议
|
||
|
||
- 🟡 [AI] [bug] `inconsistent-query-semantics` L5
|
||
**去重逻辑不一致**
|
||
第2行使用 GROUP BY id 去重,而第5行和第9行使用 SELECT id 返回所有行,导致相同的表在不同行返回的行数可能不同。如果意图是去重,应统一使用 SELECT DISTINCT id; 如果意图是返回所有行,则第2行应去掉 GROUP BY。
|
||
建议: 统一使用 SELECT DISTINCT id FROM my_table; 以明确表达去重意图。
|
||
- 🔵 [AI] [design] `group-by-without-aggregation` L2
|
||
**GROUP BY 未使用聚合函数**
|
||
第2行的 GROUP BY id 没有聚合函数,仅用于去重。使用 GROUP BY 去重可读性较差,且可能引入不必要的分组开销。建议使用 SELECT DISTINCT id 替代。
|
||
建议: 将 SELECT id FROM my_table GROUP BY id; 替换为 SELECT DISTINCT id FROM my_table;,以更高效、清晰地表达去重语义。
|