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

171 lines
6.9 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.
# 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/kin``sqlite:///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/` 中)