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

3.8 KiB
Raw Blame History

代码审查报告

文件: 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 等非预期问题,使文件只演示声明的规则。