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
{{ message }}
Repository navigation
Commit 970746c
Browse filesBrowse the repository at this point in the historyBrowse files
Export to Arrow with the session of the execution context
An Arrow export took an ArrowSession as its receiver and an ExecutionCtx
that carries its own VortexSession. The top-level dispatch and the target
checks used the receiver, while export plugins and the inference of nested
fields used the session of the context. So
`ArrowSession::default().execute_arrow(array, None, &mut other.create_execution_ctx())`
compiled and mixed the plugins of two sessions in one export.
Exports now go through the new `ExecuteArrowExt` extension trait on arrays
(`execute_arrow` and `execute_arrow_with_options`), which reads the
ArrowSession from the context and takes no other session. This replaces
`ArrowSession::execute_arrow`, `ArrowSession::exporter`, `ArrowExporter`,
and the deprecated `ArrowArrayExecutor` trait. ArrowSession has no public
constructor or Default anymore, so every ArrowSession belongs to a
VortexSession.
A lazily created ArrowSession was a bare default with an empty extension
dtype registry. It exported an extension type without a plugin under its
Vortex ID, but imported the same field back as plain storage. Only
`vortex_arrow::initialize` wired the registry, and it replaced any existing
ArrowSession, which dropped plugins that other crates had registered
earlier. `ArrowSessionExt::arrow` now builds the session from the dtype
registry on first use through the new `SessionExt::get_or_insert_with`, so
`vortex_arrow::initialize` is no longer needed and is removed.
Signed-off-by: Connor Tsui <[email protected]>
0 commit comments