Skip to content

feat: dynamic-SQL hints — 模板表驱动的 EXECUTE IMMEDIATE 外部标注扩展点 #114

Description

@c2j

关联

背景

AAS 项目中 PAR_INST_XML_MODEL 这类配置表驱动的动态 SQL 是核心业务模式(parse.log 中 3,280 条 DYNAMIC_SQL 类警告大多源于此)。codeweb 的 value-set 分析对这种"SQL 模板存在数据库表中、运行时拼接"的模式无能为力——这是静态分析的天花板,不是 bug。

建议:通用外部关系标注扩展点

与现有 codeweb mark(用于 WDR SQL detail CSV 标注)的机制对齐,提供动态 SQL 模板表标注入口:

// dynamic-sql-hints.json
[
  {
    "template_table": "par_inst_xml_model",
    "target_tables": ["dat_inst_base_info", "dat_inst_status_info"],
    "source_procedures": ["pkg_xml_parser.prc_render"]
  }
]
codeweb analyze --dynamic-sql-hints ./dynamic-sql-hints.json
# 或复用 mark 子命令
codeweb mark --type dynamic-sql --hints ./hints.json

标注后在图中以 Edge::CustomEdge { custom_type: "dynamic_sql_hint", ... } 形式落地,参与 detail / lineage / partition 计算并显式标记为 [hint] 来源。

辅助:codeweb dynamic-sql 报告子命令

列出所有 EXECUTE IMMEDIATE 位置 + 变量来源 + 是否被 hints 覆盖,方便人工补全 hints 文件。

范围说明

这是行业共性难题,建议作为可插拔扩展点而非完整解决方案。优先级可放 P2/P3。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions