Diesel 2.0.0 正式リリース、Rust ORM フレームワーク

Diesel 2.0.0 が正式にリリースされました。このバージョンの開発サイクルは 3 年にも及び、1700 以上のコミットが含まれていると言われています。

Diesel は、安全で拡張可能な Rust ORM フレームワークおよびクエリ ビルダーです。Diesel は実行時エラーを回避し、最高のパフォーマンスを提供します。

2.0 では、多くの新機能が追加され、内部のほとんどが書き直されています。これは新しいメジャー バージョンであるため、多くの重大な変更も含まれています。具体的な処理については、移行ガイドを参照してください。

ハイライトを更新

  • 完全に型チェック済みGROUP BY
  • テーブル エイリアスのサポート
  • 対応するタイプによる選択句の定義のサポート
  • サポートUNIONINTERSECTお問い合わせ

さらに、Diesel 2.0.0 では、タイプ レベルの SQL 表現におけるいくつかの問題が修正され、次のケースが正しく処理されるようになりました。

  • 混合ネスティングLEFT JOINSINNER JOINS
  • AND、および同様の演算子を介しORた混合 null 許容式の連鎖

サポートGROUP BY条項

Diesel 2.0 ではGROUP BY、select クエリの句のサポートが追加されました。

 users::table.inner_join(posts::table)
    .group_by(users::id)
    .select((users::name, count(posts::id)))

テーブル エイリアスのサポート

次のクエリは、この機能を示しています。

// Define new table alias for the existing `users` table
let users1 = diesel::alias!(schema::users as user1);

// Use the corresponding alias inside any existing query
users::table
    .inner_join(users1.on(users::id).eq(users1.field(users::id))))
    .select((users::id, users::name, users1.field(users::name)))
    .order_by(users1.field(users::id))

サポートUNIONINTERSECTお問い合わせ

この機能は、同じタイプのフィールドを返す限り、複数のクエリを簡単に連結します。

 users.select(user_name.nullable())
    .union(animals.select(animal_name).filter(animal_name.is_not_null()))

リリースノート| 変更ログ

おすすめ

転載: www.oschina.net/news/209004/diesel-2-0-0-released