diesel/CHANGELOG.md

113 lines
4.2 KiB
Markdown
Raw Normal View History

# Change Log
All user visible changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/), as described
for Rust libraries in [RFC #1105](https://github.com/rust-lang/rfcs/blob/master/text/1105-api-evolution.md)
## Unreleased
### Added
* Add the ability for diesel to maintain your schema for you automatically. See
the [migrations](http://sgrif.github.io/diesel/diesel/migrations/index.html)
module for individual methods.
* Add DebugQueryBuilder to build sql without requiring a connection.
* Add print_sql! and debug_sql! macros to print out and return sql strings from
QueryFragments.
### Fixed
* `#[changeset_for]` can now be used with structs containing a `Vec`. Fixes
[#63](https://github.com/sgrif/diesel/issues/63).
* No longer generate invalid SQL when an optional update field is not the first
field on a changeset. Fixes [#68](https://github.com/sgrif/diesel/issues/68).
* `#[changeset_for]` can now be used with structs containing only a single field
other than `id`. Fixes [#66](https://github.com/sgrif/diesel/issues/66).
* `infer_schema!` properly works with array columns. Fixes
[#65](https://github.com/sgrif/diesel/issues/65).
## [0.3.0] 2015-12-04
### Changed
* `#[changeset_for(table)]` now treats `Option` fields as an optional update.
Previously a field with `None` for the value would insert `NULL` into the
database field. It now does not update the field if the value is `None`.
* `.save_changes` (generated by `#[changeset_for]`) now returns a new struct,
rather than mutating `self`. The returned struct can be any type that
implements `Queriable` for the right SQL type
### Fixed
* `#[derive(Queriable)]` now allows generic parameters on the struct.
* Table definitions can now support up to 26 columns. Because this increases our
compile time by 3x, `features = ["large-tables"]` is needed to support table
definitions above 16 columns.
### Added
* Quickcheck is now an optional dependency. When `features = ["quickcheck"]` is
added to `Cargo.toml`, you'll gain `Arbitrary` implementations for everything
in `diesel::data_types`.
2015-12-02 18:33:36 +03:00
* Added support for the SQL `MIN` function.
* Added support for the `Numeric` data type. Since there is no Big Decimal type
in the standard library, a dumb struct has been provided which mirrors what
Postgres provides, which can be converted into whatever crate you are using.
* Timestamp columns can now be used with `std::time::SystemTime` when compiled
with `--features unstable`
2015-12-03 02:45:47 +03:00
* Implemented `Send` on `Connection` (required for R2D2 support)
* Added `infer_schema!` and `infer_table_from_schema!`. Both macros take a
database URL, and will invoke `table!` for you automatically based on the
schema. `infer_schema!` queries for the table names, while
`infer_table_from_schema!` takes a table name as the second argument.
## [0.2.0] - 2015-11-30
### Added
* Added an `execute` method to `QueryFragment`, which is intended to replace
`Connection#execute_returning_count`. The old method still exists for use
under the hood, but has been hidden from docs and is not considered public
API.
* Added `get_result` and `get_results`, which work similarly to `load` and
`first`, but are intended to make code read better when working with commands
like `create` and `update`. In the future, `get_result` may also check that
only a single row was affected.
* Added [`insert`][insert], which mirrors the pattern of `update` and `delete`.
### Changed
* Added a hidden `__Nonexhaustive` variant to `result::Error`. This is not
intended to be something you can exhaustively match on, but I do want people
to be able to check for specific cases, so `Box<std::error::Error>` is
not an option.
* `query_one`, `find`, and `first` now assume a single row is returned. For
cases where you actually expect 0 or 1 rows to be returned, the `optional`
method has been added to the result, in case having a `Result<Option<T>>` is
more ideomatic than checking for `Err(NotFound)`.
### Deprecated
* `Connection#insert` and `Connection#insert_returning_count` have been
deprecated in favor of [`insert`][insert]
[insert]: http://sgrif.github.io/diesel/diesel/query_builder/fn.insert.html
## [0.1.0] - 2015-11-29
* Initial release