电子说
Diesel 2.0.0 已正式发布。据称此版本开发周期长达 3 年,包含了超过 1700 次 commit。
Diesel 是一个安全可扩展的 Rust ORM 框架和查询构建工具。Diesel 可避免运行时错误,提供最好的性能。
2.0 添加了许多新功能,并重写了大部分内部结构。由于这是新的大版本,它还包含许多破坏性变化,具体处理方案可查看迁移指南:https://diesel.rs/guides/migration_guide.html。 更新亮点
支持完全类型检查的 GROUP BY
支持表别名
支持通过相应类型定义 select 子句
支持 UNION/INTERSECT 查询
此外,Diesel 2.0.0 还修复了类级别 (type level) SQL 表示中的几个问题,它现在可以正确处理以下情况:
混合嵌套 LEFT JOINS 和 INNER JOINS
通过 AND,OR 和类似的运算符链接混合的可空表达式 (nullable expressions)
支持 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` tablelet users1 = diesel::users as user1); // Use the corresponding alias inside any existing queryusers::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))支持 UNION/INTERSECT 查询 此功能轻松地将多个查询链接在一起,只要它们返回相同类型的字段。
users.select(user_name.nullable()) .union(animals.select(animal_name).filter(animal_name.is_not_null()))Release Note:https://github.com/diesel-rs/diesel/releases/tag/v2.0.0 Changelog:https://diesel.rs/changelog.html
全部0条评论
快来发表一下你的评论吧 !