- 新增三个 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 种规则全覆盖)
32 lines
1.7 KiB
Markdown
32 lines
1.7 KiB
Markdown
# 代码审查报告
|
|
|
|
**文件:** `data\demo-sqlfluff\src\09_aliasing_length.sql`
|
|
**语言:** sql
|
|
**耗时:** 132.7s
|
|
**分析工具:** sqlfluff
|
|
|
|
---
|
|
|
|
总计: 4 | 错误: 1 | 警告: 1 | 建议: 2
|
|
|
|
静态分析 · 1 个问题
|
|
|
|
- 🔴 `sqlfluff:AL06` L8
|
|
L8: 别名长度不应超过30个字符。
|
|
建议: 将别名 this_alias_is_way_longer_than_thirty_characters_ok 缩短为不超过30字符的语义化名称(如 long_alias),并确保第6行和第8行的引用同步更新。
|
|
|
|
AI 审查 · 3 条建议
|
|
|
|
- 🟡 [AI] [design] `repeated-alias-reference` L6
|
|
**长别名在 SELECT 和 FROM 中重复出现,修改时易遗漏**
|
|
同一个超长别名在 SELECT 子句(第6行)和 FROM 子句(第8行)中出现了两次。静态分析仅标记第8行的定义超长,但修复时若只修改定义处而遗漏引用处,SQL 会因别名不匹配而失败。
|
|
建议: 将 this_alias_is_way_longer_than_thirty_characters_ok 统一替换为简短别名(如 long_alias),并同时更新两处引用。
|
|
- 🔵 [AI] [performance] `missing-where-clause` L8
|
|
**缺少 WHERE 子句可能导致全表扫描**
|
|
查询未包含 WHERE 或 LIMIT,会读取并返回 my_table 的全部行。当表数据量大时,可能产生较高的 I/O 和网络开销。
|
|
建议: 根据业务需求添加过滤条件(例如 WHERE id > ?),或添加 LIMIT 限制返回行数。
|
|
- 🔵 [AI] [design] `missing-order-by` L8
|
|
**缺少 ORDER BY 导致结果顺序不确定**
|
|
查询未指定排序字段,数据库返回结果集的顺序可能因执行计划而变化,影响结果的可预测性。
|
|
建议: 在查询末尾添加 ORDER BY this_alias_is_way_longer_than_thirty_characters_ok.id(或根据业务选择排序列)。
|