Skip to content

fix(columnar): retain canonical input relation names - #934

Merged
justinjoy merged 1 commit into
mainfrom
agent/fix-issue-931-relation-name-lifetime
Jul 30, 2026
Merged

fix(columnar): retain canonical input relation names#934
justinjoy merged 1 commit into
mainfrom
agent/fix-issue-931-relation-name-lifetime

Conversation

@justinjoy

Copy link
Copy Markdown
Collaborator

Summary

  • retain session-owned canonical relation names for pending insert/remove evaluation
  • use canonical names consistently for retraction relation construction and cache invalidation
  • add mirrored Easy/Advanced regressions for mutable caller buffers across snapshot and delta evaluation

Root cause

The session synchronously resolved a relation but stored the caller-provided
relation-name pointer in last_inserted_relation / last_removed_relation.
Reusing or freeing that buffer before step() or snapshot() changed the
later affected-strata lookup and could silently suppress incremental deltas.

The pending state now stores the canonical col_rel_t::name, whose lifetime
is owned by the session.

Validation

  • Easy/Advanced/parity and differential/retraction/callback/compound focused tests: 8/8 passed
  • ABI suite: 32/32 passed
  • original mutable-buffer shared-library reproducer: deltas=1, exit 0 (previously deltas=0, exit 14)
  • git diff --check

Closes #931

@justinjoy
justinjoy force-pushed the agent/fix-issue-931-relation-name-lifetime branch from 8349d31 to 1941e7a Compare July 30, 2026 12:45
@justinjoy
justinjoy marked this pull request as ready for review July 30, 2026 12:45
@justinjoy
justinjoy enabled auto-merge (rebase) July 30, 2026 12:45
@justinjoy
justinjoy force-pushed the agent/fix-issue-931-relation-name-lifetime branch from 1941e7a to 98ac976 Compare July 30, 2026 13:14
@justinjoy
justinjoy merged commit 623e8cf into main Jul 30, 2026
27 checks passed
@justinjoy
justinjoy deleted the agent/fix-issue-931-relation-name-lifetime branch July 30, 2026 14:02
@justinjoy justinjoy mentioned this pull request Jul 30, 2026
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant