mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-09 01:35:18 +02:00
MR-794 step 2: rewire mutation.rs to in-memory accumulator + D₂
* Replace mutation.rs's MutationStaging.latest with the new pending + inline_committed shape from exec::staging. Inserts and updates push batches into pending; deletes still inline-commit via record_inline. * Rewrite execute_insert, execute_update, execute_delete*, validate_edge_insert_endpoints, ensure_node_id_exists for the new shape. Edge cardinality validates against committed scan + in-memory pending walk (validate_edge_cardinality_with_pending). * D₂ parse-time check: a query is either insert/update-only or delete-only. Mixed → reject before any I/O. * Drop CoordinatorRestoreGuard and the swap_coordinator_for_branch / restore_coordinator dance from mutate_with_current_actor. Branch is threaded explicitly through execute_named_mutation and the per-op functions. (merge.rs keeps its own swap pattern.) * apply_assignments updated to copy unassigned blob columns from the scan when present, enabling full-schema update batches; for blob-bearing tables we still project away the blob columns at scan time (Lance's filter pushdown panics otherwise) and accept the narrow-schema output for the v1 path. A failed mid-query op no longer advances Lance HEAD on staged tables — the next mutation proceeds normally with no ExpectedVersionMismatch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cdfbccbfdc
commit
e6f48ba24d
1 changed files with 368 additions and 388 deletions
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue