Skip to content

perf(array): move struct fields into slots#8958

Draft
joseph-isaacs wants to merge 4 commits into
developfrom
agent/struct-slots-no-clone
Draft

perf(array): move struct fields into slots#8958
joseph-isaacs wants to merge 4 commits into
developfrom
agent/struct-slots-no-clone

Conversation

@joseph-isaacs

Copy link
Copy Markdown
Contributor

Summary

  • make make_struct_slots consume Vec<ArrayRef>
  • move Struct fields directly into the generated StructSlots
  • update construction and deserialization call sites to transfer ownership

Why

ArraySlots owns its children, so a borrowed &[ArrayRef] necessarily clones each handle when building the slots. The preceding API PR makes the field collection owned; this PR consumes that vector and moves its entries into slot storage, avoiding the per-field ArrayRef clone/refcount increment.

No field array buffers are copied.

Stack

Checks

  • RUSTC_WRAPPER= cargo check -p vortex-array --all-targets
  • cargo clippy -p vortex-array --all-targets -- -D warnings (run on the combined stack)
  • cargo +nightly fmt --all -- --check
  • git diff --check

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
…-macro-design-pemah1

Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

# Conflicts:
#	vortex-array/src/arrays/masked/execute.rs
#	vortex-compressor/src/compressor/cascade.rs
Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
@joseph-isaacs
joseph-isaacs force-pushed the agent/struct-owned-field-api branch from 408e2e4 to 95d9aad Compare July 24, 2026 16:24
@joseph-isaacs
joseph-isaacs changed the base branch from agent/struct-owned-field-api to develop July 24, 2026 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant