You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix incremental DDL dry run: save/restore tx snapshot between statements
The incremental dry run created a fresh durable transaction for each
statement but processed ops against an accumulated CatalogState from
previous dry runs. For the 2nd+ statement, the tx (reflecting durable
storage) and the state (reflecting accumulated changes) were out of
sync, causing 'retraction does not match existing value' panics when
applying diffs.
Fix: after each dry run, export the transaction's current state as a
Snapshot (Transaction::current_snapshot). On the next dry run, initialize
the transaction from this saved snapshot via
DurableCatalogState::transaction_from_snapshot, keeping tx and state in
sync. This preserves the O(N)-per-statement optimization.
0 commit comments