6.9 KiB
6.9 KiB
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复制 | 低(直接替换) |
八、注意事项
- Black-white-box-Merge 的新功能:
run.py全流程入口、black-box-data-create/黑盒LLM模块是独立新增,不受此差异影响 - 测试文件差异:Black-white-box-Merge 删除了16个测试文件,需确认是否恢复
- YAML schema差异:Black-white-box-Merge 删除了3个YAML文件(已恢复)
- 设计书差异:Black-white-box-Merge 删除了20+个设计书(在
jcl-cobol-data-create/中)