Skip to content

All versions since Diesel 2.3.12

Diesel 2.3.12

Fixes

  • Fixed FromSql/ToSql for chrono::NaiveTime on MySQL dropping the fractional-seconds component of TIME values, so a TIME(N) column now round-trips its microseconds like DATETIME / TIMESTAMP already did.
  • Extended libsqlite3-sys support to include 0.38

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.3.11…v2.3.12

You can support the development of Diesel by:

  • Contributing Code, Documentation or Guides. Checkout the planing for Diesel 2.4 for open tasks.
  • Providing knowledge and help to maintain the MySQL/MariaDB backend. This is currently the only in-tree backend that is not used by any maintainers, so having someone around that actually uses this backend would be very helpful for the Diesel project.
  • Answering questions in our discussion forum
  • Reporting bugs in our issue tracker
  • Helping triaging issues in our issue tracker
  • Sponsoring the maintainers.

Diesel 2.3.13

Fixed

  • Fixed interaction between then_order_by and distinct_on to reject otherwise broken SQL queries
  • Fix a clippy::redundant_field_names lint warning generated by #[derive(QueryableByName)]
  • MySQL and MariaDB now decode a value according to the signedness the server reports for its column, so a SMALLINT UNSIGNED holding 40000 read as Integer returns 40000 rather than -25536
  • Potential stackoverflow on deeply nested JSONB values for the SQLite backend
  • Fixed a possible null pointer dereference in the custom SQLite aggregate function support when SQLite fails to allocate the aggregate state
  • Fixed undefined behavior in SqliteConnection::serialize_database_to_buffer when SQLite returns a null buffer for an empty deserialized database or an allocation failure. SerializedDatabase::as_slice is deprecated in favor of the new SerializedDatabase::try_as_slice, which reports the allocation failure as an error instead of panicking.
  • Fixed SQLite value reads to panic instead of creating invalid slices or returning incorrect data when SQLite allocation fails. Row iteration reports a failed value duplication as an error instead.
  • Fixed a use after free where reading a SQLite value in a second representation, for example a blob as text, invalidated slices another SqliteValue of the same field had returned. Such a read now works on a copy of the value.
  • Fixed broken prepared statement caching for queries using positional ordering and window functions with frame offset clauses
  • Fixed a potential panic while deserializing a PgInterval type from a too short buffer
  • Fixed encoding floating point values without a decimal part in a roundtrip safe way in SQLite’s jsonb encoding
  • Fixed a potential panic while deserializing a PgInterval type from a too short buffer
  • Fixed potential code injections in the generated schema.rs file caused by malicious database identifiers

I would like to thank @LucaCappelletti94 , @Eh2406 (as @rustfoundation AI security engineer) and @weareaisle for reporting issues covered in this release.

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.3.12…v2.3.13

You can support the development of Diesel by:

  • Contributing Code, Documentation or Guides. Checkout the planing for Diesel 2.4 for open tasks.
  • Providing knowledge and help to maintain the MySQL/MariaDB backend. This is currently the only in-tree backend that is not used by any maintainers, so having someone around that actually uses this backend would be very helpful for the Diesel project.
  • Answering questions in our discussion forum
  • Reporting bugs in our issue tracker
  • Helping triaging issues in our issue tracker
  • Sponsoring the maintainers.

Diesel 2.3.14

Fixes

  • Add support for sqlite-wasm-rs 0.6
  • Fixed a failed top-level COMMIT, such as a deferred foreign key violation on SQLite, leaving the transaction open
  • Fixed embed_migrations! making the crate hash depend on the directory the crate is built in, which broke reproducible builds
  • Correctly implement Error::source for our error types
  • Workaround a potential future breaking change in rust

See here for the full changes: Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.3.13…v2.3.14

You can support the development of Diesel by:

  • Contributing Code, Documentation or Guides. Checkout the planing for Diesel 2.4 for open tasks.
  • Providing knowledge and help to maintain the MySQL/MariaDB backend. This is currently the only in-tree backend that is not used by any maintainers, so having someone around that actually uses this backend would be very helpful for the Diesel project.
  • Answering questions in our discussion forum
  • Reporting bugs in our issue tracker
  • Helping triaging issues in our issue tracker
  • Sponsoring the maintainers.

Diesel 2.4.0 Latest

I’m happy to announce the release of Diesel 2.4.0, a ORM and query builder for Rust. This release contains the development of the last 14 months, including the contributions of 76 people.

Headline features include:

  • Support for database views
  • Improved support for enums
  • Support for batch update statements
  • A distinct backend for MariaDB
  • Extended support for SQLite functionality, including hooks, pragmas and BLOB’s
  • Support for using Diesel (SQLite) in a no-std environment
  • Migrations written in Rust
  • Support for diesel-async in #[derive(MultiConnection)]

See the announcement blog post about details to each feature: https://diesel.rs/news/2_4_0_release.html

I would like to use this possibility to thank all contributors and sponsors that made this release possible. A special thank goes to @LucaCappelletti94 for his large contributors to the release, to Prototype Fund for funding the development of the Database View support and to RustFoundation for funding the general maintainance.

Nevertheless, the Diesel project is always looking for support. You can help by:

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.3.0…v2.4.0