All Versions
Latest Version
Avg Release Cycle
91 days
Latest Release
644 days ago

Changelog History
Page 4

  • v0.14.1 Changes

    July 10, 2017

    ๐Ÿ”„ Changed

    • The return type of sum and avg is now always considered to be Nullable, as these functions return NULL when against on an empty table.
  • v0.14.0 Changes

    July 04, 2017

    โž• Added

    • โž• Added support for joining between more than two tables. The query builder can now be used to join between any number of tables in a single query. See the documentation for [JoinDsl][join-dsl-0.14.0] for details

    ๐Ÿ“„ [join-dsl-0.14.0]:

    • โž• Added support for the [PostgreSQL network types][pg-network-0.14.0] MACADDR.

    • โž• Added support for the Numeric datatypes, using the BigDecimal crate.

    • โž• Added a function which maps to SQL NOT. See [the docs][not-0.14.0] for more details.

    • 0๏ธโƒฃ Added the [insert_default_values][insert-default-0.14.0] function.

    ๐Ÿ“„ [pg-network-0.14.0]: ๐Ÿ“„ [not-0.14.0]: 0๏ธโƒฃ [insert-default-0.14.0]:

    • Added diesel_prefix_operator! which behaves identically to diesel_postfix_operator! (previously postfix_predicate!), but for operators like NOT which use prefix notation.

    ๐Ÿ”„ Changed

    • infix_predicate! and infix_expression! have been renamed to diesel_infix_operator!.

    • postfix_predicate! and postfix_expression! have been renamed to diesel_postfix_operator!.

    • Trait bounds along the lines of T: LoadDsl<Conn>, U: Queryable<T::SqlType, Conn::Backend> should be changed to T: LoadQuery<Conn, U>.

    • Diesel now uses a migration to set up its timestamp helpers. To generate this migration for your project, run diesel database setup.

    โœ‚ Removed

    • ๐Ÿšš #[has_many] has been removed. Its functionality is now provided by #[belongs_to] on the child struct. If there is no child struct to put #[belongs_to] on, you can invoke joinable! directly instead.
  • v0.13.0 Changes

    May 15, 2017

    โž• Added

    • โž• Added support for chrono types with SQLite.

    • ๐Ÿ‘€ Bind values can now be supplied to queries constructed using raw SQL. See [the docs][sql-bind-0.13.0] for more details.

    ๐Ÿ“„ [sql-bind-0.13.0]:

    • โž• Added support for the [PostgreSQL network types][pg-network-0.13.0] CIDR and INET.

    ๐Ÿ“„ [pg-network-0.13.0]:

    • โž• Added support for ILIKE in PostgreSQL.

    • diesel migration list will show all migrations, marking those that have been run.

    • diesel migration pending will list any migrations which have not been run.

    • โž• Added support for numeric operations with nullable types.

    • Added migrations::any_pending_migrations.

    ๐Ÿ›  Fixed

    • Diesel CLI now respects the --migration-dir argument or the MIGRATION_DIRECTORY environment variable for all commands.

    • Diesel CLI now properly escapes the database name.

  • v0.12.1 Changes

    May 07, 2017

    ๐Ÿ”„ Changed

    • Locked the chrono dependency to require exactly 0.3.0 instead of a semver restriction. This restriction is required for the 0.12 line of releases to continue compiling, as the chrono project is including breaking changes in patch releases.
  • v0.12.0 Changes

    March 16, 2017

    โž• Added

    • โž• Added support for the majority of PG upsert (INSERT ON CONFLICT). We now support specifying the constraint, as well as DO UPDATE in addition to DO NOTHING. See [the module docs][upsert-0.12.0] for details.

    ๐Ÿ“„ [upsert-0.12.0]:

    • โž• Added support for the SQL concatenation operator ||. See the docs for .concat for more details.

    • โž• Added support for the PostgreSQL [Money type][pg-money-0.12.0].

    ๐Ÿ“„ [pg-money-0.12.0]:

    • Diesel CLI: Added db as an alias for database, so you can now write diesel db setup (which is almost 40% faster!).

    • The table! macro now allows you to use types from crates outside of Diesel. You can specify where types should be imported from by doing: table! { use some_modules::*; foo { columns... }. Not specifying any any modules is equivalent to use diesel::types::*;.

    ๐Ÿ›  Fixed

    • diesel_codegen will provide a more useful error message when it encounters an unsupported type that contains a space in MySQL.

    • #[derive(AsChangeset)] will now respect custom #[primary_key] annotations, and avoid setting those columns.

    โœ‚ Removed

    • ๐Ÿšš WithDsl and Aliased have been removed. They were a feature that was actually closer to a cross join than the names implied, and wasn't fully thought out. The functionality they provided will return as joins are further revamped.

    • The internal use macro select_column_workaround! has been removed. If you were relying on this internal macro, you can simply delete the line that was calling it.

    • Columns from the right side of a left join will now need to have .nullable() explicitly called to be passed to .select. This allows it to compose better with functions that don't normally take nullable columns (e.g. lower(name).nullable()).

  • v0.11.4 Changes

    February 21, 2017

    ๐Ÿ›  Fixed

    • Corrected a memory safety violation when using MySQL.
  • v0.11.3 Changes

    February 21, 2017
    • No changes
  • v0.11.2 Changes

    February 19, 2017

    ๐Ÿ”„ Changed

    • pq-sys and mysqlclient-sys will no longer attempt to generate bindings at compile time. Generating the bindings required a bleeding edge version of clang, which caused too many issues.
  • v0.11.1 Changes

    February 17, 2017

    ๐Ÿ›  Fixed

    • .on_conflict_do_nothing() now interacts with slices properly.

    • MysqlConnection now implements Send, which is required for connection pooling.

  • v0.11.0 Changes

    February 16, 2017

    โž• Added

    • โž• Added support for MySQL as an additional backend. Diesel CLI will install with MySQL support by default. To enable it for Diesel and Diesel Codegen, add features = ["mysql"] to Cargo.toml. See [the docs][mysql-0.11.0] for details.

    ๐Ÿ“„ [mysql-0.11.0]:

    • โž• Added support for PG's ON CONFLICT DO NOTHING clause. See the docs for details.

    • Queries constructed using [diesel::select][select-0.11.0] now work properly when [boxed][boxed-0.11.0].

    ๐Ÿ“„ [select-0.11.0]: ๐Ÿ“„ [boxed-0.11.0]:

    • ๐Ÿ‘ Arrays containing null are now supported. infer_schema! will never infer an array that contains null, but a table! definition which specifies a type of Array<Nullable<X>> can now be deserialized to Vec<Option<T>>

    • [#[belongs_to]][belongs-to-0.11.0] associations can now be self referential. This will generate the code required for [belonging_to][belonging-to-0.11.0], without generating code for performing a join.

    ๐Ÿ“„ [belongs-to-0.11.0]: ๐Ÿ“„ [belonging-to-0.11.0]:

    • โž• Added support for the rust-lang-deprecated/time crate on PostgreSQL. To use it, add features = ["deprecated-time"]

    ๐Ÿ”„ Changed

    • It is no longer possible to exhaustively match against result::ConnectionError.

    • โšก๏ธ Updated chrono to version 0.3.

    • [max][max-0.11.0] and [min][min-0.11.0] are now always nullable. The database will return NULL when the table is empty.

    ๐Ÿ“„ [max-0.11.0]: ๐Ÿ“„ [min-0.11.0]:

    • [now][now-0.11.0] can now be used as an expression of type Timestamptz.

    ๐Ÿ“„ [now-0.11.0]:

    • [Connection::transaction][transaction-0.11.0] now returns your error directly instead of wrapping it in TransactionError. It requires that the error implement From<diesel::result::Error>

    ๐Ÿ“„ [transaction-0.11.0]:

    • The way tuples of columns from the right side of left outer joins interact with .select has changed. If you are deserializing into an option of a tuple (instead of a tuple of options), you will need to explicitly call .nullable(). (e.g. .select(users::name, (posts::title, posts::body).nullable()))

    โœ‚ Removed

    • result::TransactionError
    • result::TransactionResult