Files
cobol-java-v3/docs/branch-diff-report.md
T

6.9 KiB
Raw Blame History

Black-white-box-Merge vs feat/phase2-review-fixes 分支差异报告

生成时间: 2026-08-23 基准分支: feat/phase2-review-fixes 对比分支: Black-white-box-Merge 总计: 19个文件变更,-3,379行,+358行


一、cobol_testgen/__init__.py -1,021行)

Black-white-box-Merge 删除了以下高级功能:

功能 行数 说明
_coordinate_multi_file_keys() ~120行 跨文件键值协同
_coordinate_range_matching() ~80行 金额-区间对齐
_serialize_read_into_records() ~60行 READ INTO 序列化
_inject_merge_input_records() ~60行 MERGE 输入记录注入
_inject_end_of_page_records() ~40行 LINAGE 分页注入
_inject_sort_limit_records() ~40行 SORT 上限注入
_provision_sub_input_files() ~50行 子程序输入供给
_coordinate_tertiary_fd() ~80行 多文件照合前置序列
_inject_leave_type_scenarios() ~60行 休暇種別覆盖
_find_key_pairs_inner() ~50行 キーフィールドペア検出
_inject_c01_coverage_records() 保留 C01覆盖率注入

main() 函数变化:

  • P6-P12 注入步骤被删除
  • scan_all_file_directions()scan_open_statements()(简化)

二、cobol_testgen/to_sql.py -668行)

Black-white-box-Merge 删除了以下高级功能:

功能 说明
_scan_between_spans() BETWEEN跨度扫描
_restore_between_placeholders() BETWEEN占位符还原
_parse_between_operand() BETWEEN操作数解析
_parse_between_placeholder() BETWEEN占位符解析
_rec_get() / _rec_has() 记录值获取(兼容flat/嵌套格式)
_norm_col() / _norm_table() 列名/表名规范化
_declared_cols_for() 声明列查询(兼容下划线/连字符)
_hostvar_root() 宿主变量链追溯
_resolve_runtime_hostvar() 运行时宿主变量解析
_resolve_where_hostvar() WHERE宿主变量解析
_runtime_or_where_hostvar() 运行时/WHERE合并解析
_derive_runtime_hostvar() 运行时值推导
_between_seed_value() BETWEEN种子值计算
_input_pk_field() 输入PK字段查找
_insert_collision_row() PK碰撞行构建
_dispatch_field_and_sets() 事务调度字段分类
_trace_input_root() 调度字段根追溯
_classify_record_dispatches() 记录调度分类

build_db_input() 变化:

  • INSERT 碰撞行逻辑简化
  • DELETE/UPDATE 仅对实际执行的记录建行
  • SELECT 种子逻辑简化

三、orchestrator_db.py -727行)

Black-white-box-Merge 删除了以下功能:

功能 说明
_merge_schema_columns() YAML schema列类型合并
_insert_pk_map() PK映射表构建
_deduplicate_r01_pk() R01 PK去重
_inject_extra_seed_rows() 额外种子行注入
_inject_aggregation_boundaries() 聚合边界数据注入
_coordinate_db_rule_matching() DB属性区间对齐
_coordinate_seed_numeric_types() DB种子值数字化
CONNECT补丁 gixpp CONNECT修复
CWD/kin.db复制 SQLite连接路径修复

run_scenario() 变化:

  • EMP-ID SPACE 清理逻辑简化
  • PK去重逻辑简化
  • gcov 合并逻辑简化

四、runners/gixsql_runner.py -192行)

Black-white-box-Merge 删除了以下功能:

功能 说明
_strip_schema_qualifiers() DB2 schema修饰符剥离
_normalize_schema_qualifiers() EXEC SQL块内schema规范化
_normalize_current_timestamp() CURRENT TIMESTAMP规范化
_patch_sql_identifiers() SQL连字符→下划线
_patch_sqlcode_normalize() SQLCODE -1555→-803映射
_patch_sqlcode_override() SQLCODE=0覆盖
COMP-5→COMP SQLCA字节序修正

CONNECT 处理变化:

  • sqlite://localhost/kinsqlite:///C:/Temp/gix/{pid}.db

五、其他文件差异

文件 变更 说明
cond.py -108行 删除 class condition、复合条件MC/DC
core.py -158行 删除 SEARCH 路径枚举、CALL级联
coverage.py -96行 删除搜索路径、覆盖合并优化
design.py -211行 删除 class condition、SEARCH枚举、CALL一致性
design_mcdc.py -177行 删除 SEARCH MC/DC、复合条件MC/DC
pipeline_bridge.py -71行 删除旧解析器比较逻辑
read.py -73行 删除 MERGE/SORT方向扫描、PIC N支持
runner.py -43行 删除 abend 单独执行、命令行参数
file_io.py -17行 COMP字节序大端→小端、COMP-3小数位
flatfile.py -17行 删除非数字值SPACE回退、sysin RESET模式
grammar.lark +2行 删除 COMP-4、POINTER
output.py +5行 删除 is_filler 检查
data_merger.py +8行 合并顺序颠倒(additional→main
config/program_schema.py -9行 删除 schema 模块

六、本质差异

维度 Black-white-box-Merge feat/phase2-review-fixes
设计哲学 精简核心,专注白盒+黑盒流程 全功能,覆盖所有边界场景
跨文件照合 不支持 完整支持
MERGE/SORT 基础支持 完整注入
SEARCH MC/DC 不支持 完整支持
CLASS condition 不支持 完整支持
DB种子 基础 高级(碰撞行、区间对齐、数字化)
SQL兼容 基础 DB2→SQLite完整适配
文件布局 基础COMP/COMP-3 大端COMP、小数位精确

七、恢复建议

从 feat/phase2-review-fixes 恢复到 Black-white-box-Merge 的功能:

优先级 功能 恢复复杂度
P0 SQLCA COMP-5→COMP 字节序 低(直接替换)
P0 DB2 schema修饰符剥离 低(正则替换)
P0 SQL连字符→下划线 低(正则替换)
P0 SQLCODE -1555→-803映射 低(正则替换)
P1 BETWEEN跨度扫描 中(需适配简化后的build_db_input
P1 跨文件键值协同 高(依赖file_sec和open_dir
P1 MERGE输入记录注入 高(依赖file_sec
P2 SEARCH MC/DC 高(依赖cond_tree
P2 CLASS condition 高(依赖cond.py
P2 子程序输入供给 中(独立模块)
P3 CONNECT补丁 低(直接替换)
P3 CWD/kin.db复制 低(直接替换)

八、注意事项

  1. Black-white-box-Merge 的新功能run.py 全流程入口、black-box-data-create/ 黑盒LLM模块是独立新增,不受此差异影响
  2. 测试文件差异Black-white-box-Merge 删除了16个测试文件,需确认是否恢复
  3. YAML schema差异Black-white-box-Merge 删除了3个YAML文件(已恢复)
  4. 设计书差异Black-white-box-Merge 删除了20+个设计书(在 jcl-cobol-data-create/ 中)