cargo sea-query 1.0.0

latest release: 1.0.1
3 days ago

(since 1.0.0-rc.34)

Highlights

  • Published the stable sea-query 1.0.0 release.
  • Published the companion crates as final non-rc versions.
  • Updated the SQLx binder crate for SQLx 0.9.
  • Fixed PostgreSQL array handling for null array elements.
  • Fixed tokenizer handling of backend-specific backslash escaping.
  • Updated README and examples from rc dependencies to the stable 1.0 dependency line.

Breaking Changes

The SQLx binder line for SeaQuery 1.0 now targets SQLx 0.9. Users staying on SQLx 0.8 should use sea-query-sqlx 0.8.1; users on SQLx 0.9 should use sea-query-sqlx 0.9.0.

# SQLx 0.8 compatibility line
sea-query-sqlx = "0.8.1"

# SQLx 0.9 line
sea-query-sqlx = "0.9"

sea-query-sqlx 0.8.0 was yanked. Use 0.8.1 for SQLx 0.8, or 0.9.0 for SQLx 0.9.

SQLx feature wiring was updated for the SQLx 0.9 runtime and TLS feature split. SeaQuery now exposes explicit TLS feature flags such as tls-none, tls-native-tls, tls-rustls, and the rustls provider variants. The older combined runtime/TLS feature names remain available as compatibility aliases.

  • Temporarily gated Jiff SQLx binders on SQLx 0.9

Jiff SQLx binders were temporarily disabled because jiff-sqlx still targeted SQLx 0.8 at the time of the SeaQuery 1.0.0 release. Enabling Jiff values with SQLx 0.9 may panic for unsupported Jiff argument binding.

Stable Crate Versions

Use these stable companion crate versions with sea-query 1.0.0:

  • sea-query 1.0.0
  • sea-query-derive 1.0.0
  • sea-query-rusqlite 0.8.0
  • sea-query-postgres 0.6.0
  • sea-query-diesel 0.3.0
  • sea-query-rbatis 0.2.0
sea-query = "1.0"
sea-query-derive = "1.0"
sea-query-rusqlite = "0.8"
sea-query-postgres = "0.6"
sea-query-diesel = "0.3"
sea-query-rbatis = "0.2"

Fixes

  • Fixed null element handling in PostgreSQL arrays #1068

PostgreSQL array values can now contain null elements without panicking during conversion. This fixes Value::Array conversion paths where arrays contain null values.

  • Fixed tokenizer handling of backend-specific backslash escaping

The tokenizer now distinguishes MySQL, PostgreSQL, and SQLite string escaping rules. In particular, PostgreSQL backslash escaping is handled only for escape strings, avoiding incorrect parsing around single quotes and backslashes.

Dependency Updates

  • Removed the inherent dependency from the main crate.
  • Aligned ipnetwork to 0.21.1 across SeaQuery and binder crates.
  • Updated sea-query-postgres-types to 0.1.1.
  • Raised binder crate Rust versions to Rust 1.88.0 where needed.

Documentation And Tests

  • Updated README installation snippets from rc versions to stable versions.
  • Updated SQLx examples for MySQL, PostgreSQL, and SQLite.
  • Added regression coverage for null PostgreSQL array elements.
  • Added tokenizer tests for backend-specific backslash escaping.

Migration Notes

  • Use sea-query-sqlx 0.8.1 if your application still depends on SQLx 0.8.
  • Use sea-query-sqlx 0.9.0 with SQLx 0.9.
  • Review SQLx feature flags if your application used the old combined runtime/TLS feature names.
  • Avoid enabling Jiff SQLx binding with SQLx 0.9 until jiff-sqlx support is available for SQLx 0.9.

Don't miss a new sea-query release

NewReleases is sending notifications on new releases.