Skip to content

Changelog

Diesel 2.2.3

  • Support for libsqlite3-sys 0.30.0
  • Fixed a possible vulnerability in how Diesel handled protocol level bind parameters. See the SQL Injection isn’t Dead: Smuggling Queries at Protocol Level presentation from DEF CON for details
  • Fixed an issue with a possibly ambiguous trait resolution in #[derive(QueryableByName)]

You can support the development of diesel by contributions or by sponsoring the project on Github.

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.2.2…v2.2.3

Diesel 2.2.2

  • Support for libsqlite3-sys 0.29.0
  • Fixed a potential panic in the sqlite cursor implementation
  • Fixed support for rust numeric operators with columns of the type Numeric
  • Removed the SerializedDatabase::new function due to unsoundness

You can support the development of diesel by contributions or by sponsoring the project on Github.

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.2.1…v2.2.2

Diesel 2.2.1

You can support the development of diesel by contributions or by sponsoring the project on Github.

  • Fixed using #[dsl::auto_type] with functions that accept reference arguments
  • Fixed using #[derive(Queryable)] with structs that use a type named Row as field type
  • Fixed a regression that prevented using mysqlclient-sys 0.2.x with diesel 2.2
  • Fixed connecting to postgres database using the scram-sha-256 authentication method on windows while using the bundled postgres builds
  • Improved the error messages in diesel-cli for cases where a file/folder was not found
  • Fixed several version detection bugs in mysqlclient-sys to use pre-generated bindings in more situations

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.2.0…v2.2.1

Diesel 2.2.0

This release wouldn’t be possible without the support of our contributors and sponsors. If you want to support diesels development, consider joining the reviewer team, submitting PR’s, help writing documentation or sponsor the maintainers.

Added

  • Support [print_schema] exclude_custom_type_definitions = ["Vector"]. If a custom type matches one element on the list it’s skipped.
  • Added automatic usage of all sqlite rowid aliases when no explicit primary key is defined for print-schema
  • Added a #[dsl::auto_type] attribute macro, allowing to infer type of query fragment functions
  • Added the same type inference on Selectable derives, which allows skipping specifying select_expression_type most of the time, in turn enabling most queries to be written using just a Selectable derive.
  • Added an optional #[diesel(skip_insertion)] field attribute to the Insertable derive macro, allowing fields which map to generated columns to be skipped during insertion.
  • Support for connection instrumentation. This allows to inspect any query run by your application
  • Logging in diesel-cli
  • Support for libsqlite3-sys 0.28
  • Add sqlite-integer-primary-key-is-bigint configuration option, usable with SQLite 3.37 or above, allowing to use BigInt for INTEGER PRIMARY KEY columns in SQLite for tables without the WITHOUT ROWID attribute (SQLite doc).
  • Support for multiple print_schema entry in diesel.toml (e.g. [print_schema.user1]), which allows generating multiple schema.rs files
  • Add support for COPY TO and COPY FROM statements
  • Add support for mapping chrono::Duration to postgresql’s INTERVAL sql type
  • Added serialize_database_to_buffer and deserialize_readonly_database_from_buffer methods in SqliteConnection to support serialization/deserialization of SQLite databases to and from byte buffers.
  • Added SerializedDatabase wrapper type for a serialized database that is dynamically allocated by calling serialize_database_to_buffer. This RAII wrapper deallocates the memory when it goes out of scope with sqlite3_free.

Changed

  • The minimal officially supported rustc version is now 1.78.0
  • Deprecated sql_function! in favour of define_sql_function! which provides compatibility with #[dsl::auto_type]
  • Deserialization error messages now contain information about the field that failed to deserialize

New Contributors

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.1.0…v2.2.0

Diesel 2.1.6

  • Fix using BoxableExpression with having clauses
  • Fix using numeric expressions with aliased fields
  • Minor documentation fixes

You can support the development of diesel by contributions or by sponsoring the project on Github.

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.1.5…v2.1.6

Diesel 2.1.5

  • Fix impl SqlOrd postgres > postgres_backend feature flag.
  • Allow Queryable to be used with multiple table names.
  • Update libsqlite3-sys to allow version 0.28 as well

Full Changelog: https://github.com/diesel-rs/diesel/compare/v2.1.4…v2.1.5

Diesel 2.1.4

  • Update libsqlite3-sys to allow version 0.27 as well

You can support the development of diesel by contributions or by sponsoring the project on Github.

Diesel 2.1.3

  • Increased accidentally decreased limit around element count in DISTINCT ON and ORDER BY clauses again as that broke existing code

Diesel 2.1.2

  • Fixed another potential breaking chaneg around queries containing DISTINCT ON and ORDER BY clauses consisting of custom sql expressions (e.g. .nullable())
  • Fixed an issue where #[derive(Selectable)] and #[diesel(check_for_backend)] generates invalid rust code if the struct contains lifetimes/generic types

You can support the development of diesel by contributions or by sponsoring the project on Github.

Diesel 2.1.1

Fixed

  • Fixed an issue in diesel-cli that lead to using unquoted table names in one of the internal queries
  • Fixed a bug in diesel print-schema that lead to generating invalid table! macros if both the #[sql_name] and the #[max_lenght] attribute are present
  • Fixed an issue in diesel-cli that lead to ignoring certain foreign key constraints for postgresql
  • Fixed an crash while using diesel print-schema with really old sqlite versions
  • Fixed an issue where #[diesel(check_for_backend)] ignored #[diesel(deserialize_as)] attributes
  • Fixed several issues with the new #[derive(MultiConnection)] feature
  • Fixed some edge cases in our sqlite timestamp parsing behaviour
  • diesel migration generate --diff-schema now respects table filters as setup for print-schema via diesel.toml
  • Fixed a potential breaking change around queries containing DISTINCT ON and ORDER BY clauses consisting of custom sql expressions (e.g. diesel::dsl::sql)

Added

  • Support for bigdecimal 0.4

You can support the development of diesel by sponsoring the project on github