-
fix(sync): 增量列患者的 UNION 分支包裹 manifest query —— 别名列 + 顶层表名 · 4cfecec8
测试服 dry-run 实测翻车(未落库,水位未污染): Missing columns: 'last_visit_time' 'patient_id' while processing query: 'SELECT patient_id, brand FROM dw_group.fact_complex_cases_out WHERE last_visit_time > …' listPatientPairs 构造 UNION 分支时是第三处朴素正则 `/FROM\s+([\w.]+)/`: ① 主档 query 现在带 SELECT 列子查询 → 抓到子查询的 FROM,表名取成 fact_complex_cases_out, cursor 列却仍是主档的 last_visit_time,两个错叠在一起 ② 分支直查物理表 → 读不到 query 里的 `customer_id AS patient_id` 别名(该表物理列名是 customer_id),patient_id 根本不存在 改为**包裹 manifest 的 query**(复用已按顶层 FROM 解析的 injectIncrementalCursor): SELECT <keys> FROM (SELECT … AS patient_id … FROM <表> WHERE <cursor> AND <业务过滤>) 别名在子查询里成立;顺带继承该 query 的业务过滤,与真实拉取同口径 —— 否则"游标之后但 会被业务条件过滤掉"的行会把无关患者拖进 cohort(同 extractBusinessFilters 那次的教训)。 解析不了则回退旧形态(表名改用顶层解析),不比改动前差。 补 2 项回归锁这两条,共 21 项。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>luoqi committed
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| asr-sensevoice | Loading commit data... | |
| pac-docs | Loading commit data... | |
| pac-service | Loading commit data... | |
| pac-web | Loading commit data... |