出品 | OSC开源社区(ID:oschina2013)
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` 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))
支持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
开源创企一直在烧钱?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.