Files
2026Technology-Competition/data/demo-sqlfluff/reports/06_references-review.md
T
范智鹏 c92249a044 docs: 归档 demo 工程样例与插件实测报告
- 新增三个 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 种规则全覆盖)
2026-08-25 22:00:19 +08:00

54 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 代码审查报告
**文件:** `data\demo-sqlfluff\src\06_references.sql`
**语言:** sql
**耗时:** 155.4s
**分析工具:** sqlfluff
---
总计: 11 | 错误: 8 | 警告: 2 | 建议: 1
静态分析 · 8 个问题
- 🔴 `sqlfluff:RF01` L3
第 3 行:引用 'missing_tbl.column_a' 指向在 FROM 子句(或上层语句)中不存在的表/视图。
建议: 若该列实际属于 my_table,请将引用改为 my_table.column_a;若确实需要查询 missing_tbl,请将其加入 FROM 子句,例如 JOIN missing_tbl ON ...。
- 🔴 `sqlfluff:RF02` L9
第 9 行:SELECT 中存在未限定的引用 'column_a',但语句中引用了多张表/视图。
建议: 为该列添加表名或别名前缀:若来自 my_table,请使用 a.column_a;若来自 other_table,请使用 b.column_a。
- 🔴 `sqlfluff:AM05` L12
第 12 行:JOIN 子句应使用完全限定名称。
建议: 确保 JOIN 条件中所有列都带表别名/表名限定,并将 JOIN 表表达式与其目标表放在同一行;推荐写法:JOIN other_table AS b ON a.id = b.ref_id。
- 🔴 `sqlfluff:LT02` L13
第 13 行:'ON' 前应有换行,且 'ON' 前不应有缩进。
建议: 将 JOIN 条件和表表达式分开:先把 other_table AS b 放在 JOIN 所在行,再在下一行写 ON a.id = b.ref_id,例如 JOIN other_table AS b
ON a.id = b.ref_id;。
- 🔴 `sqlfluff:RF04` L19
第 19 行:关键字不应作为标识符使用(此处将 'sum' 用作别名)。
建议: 将表别名从 sum 改为非关键字名称,例如 s 或 summary,并把 SELECT 中的 sum.a 改为 s.a。
- 🔴 `sqlfluff:RF05` L23
第 23 行:标识符中不应包含特殊字符。
建议: 如果 'my-column' 是列名,请将其重命名为不含连字符的名称,如 my_column,然后使用 my_column;如果它只是字符串字面量,请改用单引号:'my-column'。
- 🔴 `sqlfluff:RF06` L29
第 29 行:标识符 "SIMPLE_COL" 被不必要地加了引号。
建议: 直接去掉双引号:SELECT SIMPLE_COL FROM my_table;。
- 🔴 `sqlfluff:LT12` L32
第 32 行:文件必须以单个换行符结束。
建议: 检查文件末尾,确保最后一行后只有一个换行符;删除多余的空白行或在缺少换行符的文件末尾补一个换行。
AI 审查 · 3 条建议
- 🟡 [AI] [design] `demo-run-error-aborts-script` L3
**起始语句是无效引用,整个演示脚本会在第一条语句处终止**
第 3 行引用 missing_tbl.column_a,但 FROM 子句中只有 my_table。若按文件顺序执行,多数 SQL 引擎会在第一条语句报错并停止,后续用于演示 RF02/RF04/RF05/RF06 的语句都无法执行。
建议: 将故意写错的语句放到文件末尾,或为每个演示准备独立测试用例/事务,并捕获预期错误;确保合法语句先执行,非法语句最后执行。
- 🟡 [AI] [bug] `quoted-identifier-case-sensitivity` L29
**带引号的标识符 SIMPLE_COL 是大小写敏感的,可能匹配不到实际列**
双引号标识符在多数数据库中按精确大小写匹配。如果 my_table 中实际列名是 simple_col 或 Simple_ColSELECT "SIMPLE_COL" 会失败;RF06 只提示引号多余,未覆盖这一大小写风险。
建议: 先确认数据字典中的真实列名。若列名确为 SIMPLE_COL,直接去掉引号;否则改成与实际列名一致的大小写并去掉引号。
- 🔵 [AI] [design] `demo-comment-incomplete` L1
**演示注释未列出实际触发的全部规则**
第 1 行注释声明仅演示 RF01、RF02、RF04、RF05、RF06,但静态分析还发现 AM05、LT02、LT12;如果这是规则演示文件,注释不完整且会误导维护者。
建议: 更新注释以列出所有实际触发的规则,或修复 AM05/LT02/LT12 等非预期问题,使文件只演示声明的规则。