Commit d653b0c
committed
Replace polars with arrow for Rust↔Python data bridge
The upstream ggsql crate (v0.3.0) removed polars in favor of a custom
DataFrame built on Arrow RecordBatch. This updates the Python bindings
to match:
Rust side: IPC serialization now uses arrow::ipc::{StreamWriter,StreamReader}
instead of polars IpcWriter/IpcReader. The py_to_df() helper accepts any
object that pyarrow.table() can convert, so custom readers returning polars
DataFrames still work without changes.
Python side: render_altair() calls df.to_arrow() instead of df.to_polars().
Runtime dependency changed from polars to pyarrow.
Public API changes:
- DuckDBReader.execute_sql() returns pyarrow.Table (was polars.DataFrame)
- DuckDBReader.register() accepts pyarrow.Table (polars still works via
automatic conversion)
- Spec.data()/layer_data()/stat_data() return pyarrow.Table1 parent aff4627 commit d653b0c
7 files changed
Lines changed: 157 additions & 1934 deletions
File tree
- python/ggsql
- src
- tests
0 commit comments