Skip to content

Deprecate FromArrowArray in favour of ArrowSession array imports - #8927

Open
robert3005 wants to merge 3 commits into
rk/deprecatefrom
rk/deprecate-arrow-arrays
Open

Deprecate FromArrowArray in favour of ArrowSession array imports#8927
robert3005 wants to merge 3 commits into
rk/deprecatefrom
rk/deprecate-arrow-arrays

Conversation

@robert3005

@robert3005 robert3005 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Remove all usages of FromArrowArray and ToArrowArray in favour of using ArrowSession

@codspeed-hq

codspeed-hq Bot commented Jul 23, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 45.38%

❌ 1 regressed benchmark
✅ 1894 untouched benchmarks
⏩ 43 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation decompress[u64, (1000, 16)] 73.3 µs 134.2 µs -45.38%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing rk/deprecate-arrow-arrays (ffd3548) with rk/deprecate (1d9071b)

Open in CodSpeed

Footnotes

  1. 43 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@robert3005
robert3005 force-pushed the rk/deprecate-arrow-arrays branch from 2bdf0b7 to 154677c Compare July 23, 2026 16:23
@robert3005
robert3005 force-pushed the rk/deprecate-arrow-arrays branch from 154677c to 97e60f3 Compare July 23, 2026 21:49
@robert3005
robert3005 force-pushed the rk/deprecate-arrow-arrays branch 2 times, most recently from ff9c087 to 3c9fce8 Compare July 23, 2026 22:52
@robert3005
robert3005 force-pushed the rk/deprecate-arrow-arrays branch from 3c9fce8 to 7b17f7f Compare July 31, 2026 14:44
@robert3005
robert3005 force-pushed the rk/deprecate-arrow-arrays branch from 7b17f7f to 4ece166 Compare August 5, 2026 17:27
robert3005 and others added 3 commits August 5, 2026 20:08
Follow-up to #8918: `FromArrowArray` is now #[deprecated] and every usage is
replaced with `ArrowSession` methods, making the session the authoritative
Arrow array import path.

- `ArrowSession` gains `from_arrow_array_nullable(&dyn Array, bool)` for
  imports with no Arrow `Field` in hand; nested fields still dispatch
  extension import plugins.
- `ArrowImportVTable::from_arrow_array` now receives the `ArrowSession` so
  plugins convert storage through the session (uuid, geo, json, tensor,
  parquet-variant updated).
- All consumers (datafusion, python, ffi, tui, bench, compat-gen, layout,
  facade doc snippet) migrated to `from_arrow_array` /
  `from_arrow_array_nullable` / `from_arrow_record_batch`.
- `vx_array_from_arrow` now imports through the session using the FFI
  schema's field, so Arrow extension types round-trip.
- `IntoArrowArray` was already deprecated and has no remaining users.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Robert Kruszewski <github@robertk.io>
…ions

- `ParquetVariant::from_arrow_variant{,_nullable}` take an `&ArrowSession`
  threaded from vtables/kernels, so shredded storage children resolve
  through the registered import plugins.
- `native_geometry_scalar_from_wkb` takes an `&ArrowSession`; vortex-duckdb
  passes its crate session.
- `vx_array_from_arrow` takes a `const vx_session*` (header regenerated).
- Extract each `FromArrowArray` impl body into a named, invocable
  `vortex_arrow::convert::from_arrow_*` function (primitive, decimal,
  temporal, bytes, byte-view, boolean, struct, list, list-view,
  fixed-size-list, null, dictionary, run-ends, dyn dispatch, record batch);
  the deprecated trait impls are now thin shims so the trait can eventually
  be deleted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Robert Kruszewski <github@robertk.io>
Array::from_arrow takes a Session; C header regenerated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Robert Kruszewski <github@robertk.io>
@robert3005
robert3005 force-pushed the rk/deprecate-arrow-arrays branch from 4ece166 to ffd3548 Compare August 5, 2026 19:18
@robert3005
robert3005 marked this pull request as ready for review August 5, 2026 20:18
@robert3005 robert3005 added the changelog/chore A trivial change label Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/chore A trivial change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant