Skip to content

Add native Arrow CSR query result path#426

Open
adsharma wants to merge 1 commit intomainfrom
read_csr
Open

Add native Arrow CSR query result path#426
adsharma wants to merge 1 commit intomainfrom
read_csr

Conversation

@adsharma
Copy link
Copy Markdown
Contributor

Detect CSR-compatible rowid projections in the Arrow collector path and attach CSR metadata directly to ArrowQueryResult instead of rebuilding it later from a materialized row result.

This adds collector-side tracking for:

  • src,dst rowid projections
  • src,rel,dst rowid projections

The Arrow result still preserves any additional projected columns in the Arrow table, while exposing CSR metadata alongside the chunked Arrow batches for the relationship-shaped prefix.

On the Python side, query_as_arrow() now maps to the native Arrow execution path and the dedicated Arrow result type in the submodule can read CSR from ArrowQueryResult metadata without going through the older row-oriented QueryResult path.

CSR metadata is intentionally dropped when multiple local Arrow collectors merge, because unordered fan-in would make the grouped CSR structure invalid.

Detect CSR-compatible rowid projections in the Arrow collector path and
attach CSR metadata directly to ArrowQueryResult instead of rebuilding it
later from a materialized row result.

This adds collector-side tracking for:
- src,dst rowid projections
- src,rel,dst rowid projections

The Arrow result still preserves any additional projected columns in the
Arrow table, while exposing CSR metadata alongside the chunked Arrow
batches for the relationship-shaped prefix.

On the Python side, query_as_arrow() now maps to the native Arrow
execution path and the dedicated Arrow result type in the submodule can
read CSR from ArrowQueryResult metadata without going through the older
row-oriented QueryResult path.

CSR metadata is intentionally dropped when multiple local Arrow
collectors merge, because unordered fan-in would make the grouped CSR
structure invalid.
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