Skip to content

Upgrade polars 0.48.1 → 0.54.4#41

Open
ptournaris-ai wants to merge 1 commit into
nikoshet:mainfrom
ptournaris-ai:bump/polars-0.54
Open

Upgrade polars 0.48.1 → 0.54.4#41
ptournaris-ai wants to merge 1 commit into
nikoshet:mainfrom
ptournaris-ai:bump/polars-0.54

Conversation

@ptournaris-ai

Copy link
Copy Markdown

Upgrade polars 0.48.1 → 0.54.4

Bumps polars from 0.48.1 to 0.54.4 and adapts to its breaking API changes.

Motivation

The public DataframeOperator trait returns polars::prelude::DataFrame, so the pinned polars version is part of this crate's public API: downstream implementors are transitively locked to polars 0.48 and can't upgrade their own polars without a DataFrame type mismatch (Cargo otherwise compiles two polars versions side by side). This unblocks them and picks up the stabilized streaming engine and improved cloud Parquet pushdown.

Changes

Dependencies

  • polars 0.48.10.54.4; drop the removed streaming feature (engine is now always on).
  • MSRV raised to 1.88 (required transitively by simd-json / sysinfo under polars 0.54). rust-toolchain.toml bumped accordingly.

API migration

  • DataFrame::get_columns()DataFrame::columns() (postgres_operator_impl.rs, cdc_operator.rs).
  • DataFrame::get_column_names_str()DataFrame::get_column_names(), collected to Vec<String> to keep the existing retain/join logic (postgres_operator_impl.rs).
  • AnyValue::Decimal is now (value, precision, scale); the scale used to build rust_decimal::Decimal moved from the 2nd to the 3rd field. Updated the match to Decimal(value, _precision, scale) so numeric output is unchanged (postgres_row_struct.rs).
  • DataFrame::new(cols)DataFrame::new(height, cols) in unit tests.

Verification

cargo check --workspace --all-targets is clean on the new version. The DB-backed integration tests require the docker-compose Postgres/MinIO fixtures and were not run in this environment.

Compatibility

Breaking for consumers: the public DataFrame type changes major polars version and MSRV rises to 1.88. Recommend cutting this as a new minor (e.g. 0.2.0).

- drop removed 'streaming' feature (engine stabilized upstream)
- bump MSRV to 1.88 (polars 0.54 deps simd-json/sysinfo require it)
- DataFrame::get_columns() -> columns()
- DataFrame::get_column_names_str() -> get_column_names()
- AnyValue::Decimal gained a field: (value, scale) -> (value, precision, scale)
- DataFrame::new(cols) -> DataFrame::new(height, cols) (tests)
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.

2 participants