Emit every merge parent from dolt_diff to_commit filters - #2550
Conversation
buildCommitDiffPair resolved only parent 0, so WHERE to_commit=<merge> silently dropped the other parent pairs. The unconstrained scan already emits one pair per parent, and Dolt 2.3.1 does too under the same filter. Loop parents the way buildDiffPairs does. Root commits still emit a single empty-from pair. test/doltlite_diff_table.sh covers the issue repro (unary + vs EQ) and HEAD. The Dolt oracle pins both parent rows. Fixes #2538 Co-Authored-By: Grok 4.6 <noreply@x.ai>
|
SummaryThe run broadly exercised versioned data changes across ordinary commits, merges, root histories, branch boundaries, unknown targets, and working-versus-staged snapshots. It also covered resilience and concurrency behavior, including retry recovery and consistency during branch changes, while adversarial review confirmed that schema-only cases match the intended product behavior. Safe to merge — the tested application behaviors are healthy with no PR-attributable regressions, new failures, or previously flagged failures remaining. The reviewed schema-only observations are intended behavior rather than merge blockers. Tests run by Ito
Tip Reply with @itoqa to send us feedback on this test run. |
DoltLite source coverage
Merged 202 pooled raw profiles from the distributed Linux correctness jobs. Per-file coverage (98 files)
|
DoltLite performance vs PR base
blobpk details
compositepk details
int details
textpk details
vc details
All relative performance gates passed. |

Fixes #2538.
WHERE to_commit = <hash of a merge commit>(andto_commit='HEAD'when HEAD is a merge) went throughbuildCommitDiffPair, which built a single pair from parent 0. The unconstraineddolt_diff_<t>scan already emits one pair per parent, and Dolt 2.3.1 returns both under the same hash filter. Unary+to_commitblocked the EQ pushdown and showed the true count;omit=1on the constraint meant the missing parent never came back via a recheck.Loop every parent in the pushdown path, skipping a parent only when that parent's table/schema roots match the merge. Root commits still emit one empty-from pair.
test/doltlite_diff_table.shis the issue repro: filtered count matches+to_commit, both keys appear,to_commit='HEAD'resolves both parents.vc_oracle_diff_tvf_test.shpins Dolt 2.3.1 on the hash filter.Co-Authored-By: Grok 4.6 noreply@x.ai