You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+229-4Lines changed: 229 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,17 +5,242 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
8
+
## 1.0.0 - pending
9
+
10
+
### New features
11
+
12
+
*`#![forbid(unsafe_code)]` in all workspace crates https://github.com/SeaQL/sea-query/pull/930
13
+
* Unify `Expr` and `SimpleExpr` as one type. `SimpleExpr` is kept as an alias of `Expr`, but they can now be used interchangably. There may be a few compile
14
+
errors and some clippy warnings, basically just remove the redundant `.into()`https://github.com/SeaQL/sea-query/pull/889
15
+
```rust
16
+
pubtypeSimpleExpr=Expr; // !
17
+
implFrom<Expr> forSimpleExpr { .. } // now removed
18
+
```
19
+
* New `Iden` type system. Previously, `DynIden` is an alias to `SeaRc<dyn Iden>`, and is lazily rendered. Now, it's an `Cow<'static, str>`, and is eagerly rendered. `SeaRc` is no longer an alias to `Rc` / `Arc`, now is only a unit struct. As such, `Send` / `Sync` is no longer needed. It's still possible to dynamically serialize a String as identifier, see [example usage](https://github.com/SeaQL/sea-schema/blob/master/src/mysql/writer/types.rs). https://github.com/SeaQL/sea-query/pull/909
20
+
```rust
21
+
pubtypeDynIden=SeaRc<dynIden>; // old
22
+
pubstructDynIden(pub(crate) Cow<'static, str>); // new
23
+
24
+
pubstructSeaRc<I>(pub(crate) RcOrArc<I>); // old
25
+
pubstructSeaRc; // new
26
+
```
27
+
* Reworked `TableRef` and `ColumnRef` variants. `SchemaTable` is now a type alias of `TableName`https://github.com/SeaQL/sea-query/pull/927
* Removed unnecessary `'static` bounds from type signatures https://github.com/SeaQL/sea-query/pull/921
55
+
* Most `Value` variants are now unboxed (except `BigDecimal` and `Array`). Previously the size is 24 bytes. https://github.com/SeaQL/sea-query/pull/925
56
+
```rust
57
+
assert_eq!(std::mem::size_of::<Value>(), 32);
58
+
```
59
+
*`impl From<Expr> for Condition`. Now you can use `Expr` instead of `ConditionExpression`, which has been removed from the public API https://github.com/SeaQL/sea-query/pull/915
60
+
```rust
61
+
Cond::all().add(ConditionExpression::Expr(Expr::new(..))) // old
62
+
Cond::all().add(Expr::new(..)) // new
63
+
```
64
+
* Replaced `serial` with `GENERATED BY DEFAULT AS IDENTITY` (Postgres) https://github.com/SeaQL/sea-query/pull/918
* Removed inherent `SimpleExpr` methods that duplicate `ExprTrait`. If you encounter the following error, please add `use sea_query::ExprTrait` in scope https://github.com/SeaQL/sea-query/pull/890
* Added `non_exhaustive` to AST enums. It allows us to add new features and extend the AST without breaking the API. If you encounter the following error,
125
+
please add a wildcard match `_ => {..}`https://github.com/SeaQL/sea-query/pull/891
* The method signature of `Iden::unquoted` is changed. If you're implementing `Iden` manually, you can modify it like below https://github.com/SeaQL/sea-query/pull/909
* Removed `ConditionExpression` from the public API. Instead, just convert between `Condition` and `Expr` using `From`/`Into`https://github.com/SeaQL/sea-query/pull/915
0 commit comments