Skip to content

Commit 2a6752b

Browse files
authored
Merge pull request #4580 from weiznich/prepare/diesel_2.2.10
Prepare diesel 2.2.10
2 parents 03295f8 + c9884e8 commit 2a6752b

File tree

17 files changed

+131
-125
lines changed

17 files changed

+131
-125
lines changed

.github/workflows/release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ on:
4747
jobs:
4848
# Run 'cargo dist plan' (or host) to determine what tasks we need to do
4949
plan:
50-
runs-on: "ubuntu-20.04"
50+
runs-on: "ubuntu-latest"
5151
outputs:
5252
val: ${{ steps.plan.outputs.manifest }}
5353
tag: ${{ !github.event.pull_request && github.ref_name || '' }}
@@ -160,7 +160,7 @@ jobs:
160160
needs:
161161
- plan
162162
- build-local-artifacts
163-
runs-on: "ubuntu-20.04"
163+
runs-on: "ubuntu-latest"
164164
env:
165165
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
166166
BUILD_MANIFEST_NAME: target/distrib/global-dist-manifest.json
@@ -210,7 +210,7 @@ jobs:
210210
if: ${{ always() && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }}
211211
env:
212212
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
213-
runs-on: "ubuntu-20.04"
213+
runs-on: "ubuntu-latest"
214214
outputs:
215215
val: ${{ steps.host.outputs.manifest }}
216216
steps:
@@ -272,7 +272,7 @@ jobs:
272272
# still allowing individual publish jobs to skip themselves (for prereleases).
273273
# "host" however must run to completion, no skipping allowed!
274274
if: ${{ always() && needs.host.result == 'success' }}
275-
runs-on: "ubuntu-20.04"
275+
runs-on: "ubuntu-latest"
276276
env:
277277
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
278278
steps:

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ Increasing the minimal supported Rust version will always be coupled at least wi
1010

1111
## Unreleased
1212

13+
## [2.2.10] 2025-04-25
14+
15+
## Fixed
16+
17+
* Support for libsqlite3-sys 0.33.0
18+
* Fixed potential ambiguities in code generated by various derives
19+
1320
## [2.2.9] 2025-04-04
1421
### Fixed
1522

@@ -2198,3 +2205,4 @@ queries or set `PIPES_AS_CONCAT` manually.
21982205
[2.2.7]: https://github.com/diesel-rs/diesel/compare/v2.2.6...v2.2.7
21992206
[2.2.8]: https://github.com/diesel-rs/diesel/compare/v2.2.7...v2.2.8
22002207
[2.2.9]: https://github.com/diesel-rs/diesel/compare/v2.2.8...v2.2.9
2208+
[2.2.10]: https://github.com/diesel-rs/diesel/compare/v2.2.9...v2.2.10

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ rust-version = "1.78.0"
3535
include = ["src/**/*.rs", "tests/**/*.rs", "LICENSE-*", "README.md"]
3636

3737
[workspace.dependencies]
38-
libsqlite3-sys = ">=0.30.1,<0.33.0"
38+
libsqlite3-sys = ">=0.30.1,<0.34.0"
3939

4040
# Config for 'cargo dist'
4141
[workspace.metadata.dist]
@@ -59,6 +59,7 @@ install-path = "CARGO_HOME"
5959
[workspace.metadata.dist.github-custom-runners]
6060
aarch64-apple-darwin = "macos-14"
6161
x86_64-unknown-linux-gnu = "ubuntu-22.04"
62+
global = "ubuntu-latest"
6263

6364
[profile.dev.package.insta]
6465
opt-level = 3

diesel/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "diesel"
3-
version = "2.2.9"
3+
version = "2.2.10"
44
license = "MIT OR Apache-2.0"
55
description = "A safe, extensible ORM and Query Builder for PostgreSQL, SQLite, and MySQL"
66
readme = "README.md"
@@ -24,7 +24,7 @@ include = [
2424
byteorder = { version = "1.0", optional = true }
2525
chrono = { version = "0.4.20", optional = true, default-features = false, features = ["clock", "std"] }
2626
libc = { version = "0.2.0", optional = true }
27-
libsqlite3-sys = { version = ">=0.17.2, <0.33.0", optional = true, features = ["bundled_bindings"] }
27+
libsqlite3-sys = { version = ">=0.17.2, <0.34.0", optional = true, features = ["bundled_bindings"] }
2828
mysqlclient-sys = { version = ">=0.2.5, <0.5.0", optional = true }
2929
mysqlclient-src = { version = "0.1.0", optional = true }
3030
pq-sys = { version = ">=0.4.0, <0.8.0", optional = true }

diesel_cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "diesel_cli"
3-
version = "2.2.9"
3+
version = "2.2.10"
44
license = "MIT OR Apache-2.0"
55
description = "Provides the CLI for the Diesel crate"
66
readme = "README.md"

diesel_compile_tests/Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

diesel_derives/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "diesel_derives"
3-
version = "2.2.4"
3+
version = "2.2.5"
44
license = "MIT OR Apache-2.0"
55
description = "You should not use this crate directly, it is internal to Diesel."
66
documentation = "https://diesel.rs/guides/"

diesel_derives/src/as_changeset.rs

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,14 @@ pub fn derive(item: DeriveInput) -> Result<TokenStream> {
108108
}
109109

110110
let changeset_owned = quote! {
111-
impl #impl_generics AsChangeset for #struct_name #ty_generics
111+
impl #impl_generics diesel::query_builder::AsChangeset for #struct_name #ty_generics
112112
#where_clause
113113
{
114114
type Target = #table_name::table;
115-
type Changeset = <(#(#direct_field_ty,)*) as AsChangeset>::Changeset;
115+
type Changeset = <(#(#direct_field_ty,)*) as diesel::query_builder::AsChangeset>::Changeset;
116116

117-
fn as_changeset(self) -> Self::Changeset {
118-
(#(#direct_field_assign,)*).as_changeset()
117+
fn as_changeset(self) -> <Self as diesel::query_builder::AsChangeset>::Changeset {
118+
diesel::query_builder::AsChangeset::as_changeset((#(#direct_field_assign,)*))
119119
}
120120
}
121121
};
@@ -126,14 +126,14 @@ pub fn derive(item: DeriveInput) -> Result<TokenStream> {
126126
let (impl_generics, _, _) = impl_generics.split_for_impl();
127127

128128
quote! {
129-
impl #impl_generics AsChangeset for &'update #struct_name #ty_generics
129+
impl #impl_generics diesel::query_builder::AsChangeset for &'update #struct_name #ty_generics
130130
#where_clause
131131
{
132132
type Target = #table_name::table;
133-
type Changeset = <(#(#ref_field_ty,)*) as AsChangeset>::Changeset;
133+
type Changeset = <(#(#ref_field_ty,)*) as diesel::query_builder::AsChangeset>::Changeset;
134134

135-
fn as_changeset(self) -> Self::Changeset {
136-
(#(#ref_field_assign,)*).as_changeset()
135+
fn as_changeset(self) -> <Self as diesel::query_builder::AsChangeset>::Changeset {
136+
diesel::query_builder::AsChangeset::as_changeset((#(#ref_field_assign,)*))
137137
}
138138
}
139139
}
@@ -142,9 +142,6 @@ pub fn derive(item: DeriveInput) -> Result<TokenStream> {
142142
};
143143

144144
Ok(wrap_in_dummy_mod(quote!(
145-
use diesel::query_builder::AsChangeset;
146-
use diesel::prelude::*;
147-
148145
#changeset_owned
149146

150147
#changeset_borrowed
@@ -179,12 +176,18 @@ fn field_changeset_expr(
179176
let column_name = field.column_name()?.to_ident()?;
180177
if !treat_none_as_null && is_option_ty(&field.ty) {
181178
if lifetime.is_some() {
182-
Ok(quote!(self.#field_name.as_ref().map(|x| #table_name::#column_name.eq(x))))
179+
Ok(
180+
quote!(self.#field_name.as_ref().map(|x| diesel::ExpressionMethods::eq(#table_name::#column_name, x))),
181+
)
183182
} else {
184-
Ok(quote!(self.#field_name.map(|x| #table_name::#column_name.eq(x))))
183+
Ok(
184+
quote!(self.#field_name.map(|x| diesel::ExpressionMethods::eq(#table_name::#column_name, x))),
185+
)
185186
}
186187
} else {
187-
Ok(quote!(#table_name::#column_name.eq(#lifetime self.#field_name)))
188+
Ok(
189+
quote!(diesel::ExpressionMethods::eq(#table_name::#column_name, #lifetime self.#field_name)),
190+
)
188191
}
189192
}
190193

@@ -213,7 +216,9 @@ fn field_changeset_expr_serialize_as(
213216
let column_name = field.column_name()?.to_ident()?;
214217
let column: Expr = parse_quote!(#table_name::#column_name);
215218
if !treat_none_as_null && is_option_ty(&field.ty) {
216-
Ok(quote!(self.#field_name.map(|x| #column.eq(::std::convert::Into::<#ty>::into(x)))))
219+
Ok(
220+
quote!(self.#field_name.map(|x| diesel::ExpressionMethods::eq(#column, ::std::convert::Into::<#ty>::into(x)))),
221+
)
217222
} else {
218223
Ok(quote!(#column.eq(::std::convert::Into::<#ty>::into(self.#field_name))))
219224
}

diesel_derives/src/as_expression.rs

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -36,56 +36,56 @@ pub fn derive(item: DeriveInput) -> Result<TokenStream> {
3636
let mut to_sql_generics = item.generics.clone();
3737
to_sql_generics.params.push(parse_quote!(__DB));
3838
to_sql_generics.make_where_clause().predicates.push(parse_quote!(__DB: diesel::backend::Backend));
39-
to_sql_generics.make_where_clause().predicates.push(parse_quote!(Self: ToSql<#sql_type, __DB>));
39+
to_sql_generics.make_where_clause().predicates.push(parse_quote!(Self: diesel::serialize::ToSql<#sql_type, __DB>));
4040
let (to_sql_impl_generics, _, to_sql_where_clause) = to_sql_generics.split_for_impl();
4141

4242
let tokens = quote!(
43-
impl #impl_generics AsExpression<#sql_type>
43+
impl #impl_generics diesel::expression::AsExpression<#sql_type>
4444
for &'__expr #struct_ty #where_clause
4545
{
46-
type Expression = Bound<#sql_type, Self>;
46+
type Expression = diesel::internal::derives::as_expression::Bound<#sql_type, Self>;
4747

48-
fn as_expression(self) -> Self::Expression {
49-
Bound::new(self)
48+
fn as_expression(self) -> <Self as diesel::expression::AsExpression<#sql_type>>::Expression {
49+
diesel::internal::derives::as_expression::Bound::new(self)
5050
}
5151
}
5252

53-
impl #impl_generics AsExpression<Nullable<#sql_type>>
53+
impl #impl_generics diesel::expression::AsExpression<diesel::sql_types::Nullable<#sql_type>>
5454
for &'__expr #struct_ty #where_clause
5555
{
56-
type Expression = Bound<Nullable<#sql_type>, Self>;
56+
type Expression = diesel::internal::derives::as_expression::Bound<diesel::sql_types::Nullable<#sql_type>, Self>;
5757

58-
fn as_expression(self) -> Self::Expression {
59-
Bound::new(self)
58+
fn as_expression(self) -> <Self as diesel::expression::AsExpression<diesel::sql_types::Nullable<#sql_type>>>::Expression {
59+
diesel::internal::derives::as_expression::Bound::new(self)
6060
}
6161
}
6262

63-
impl #impl_generics2 AsExpression<#sql_type>
63+
impl #impl_generics2 diesel::expression::AsExpression<#sql_type>
6464
for &'__expr2 &'__expr #struct_ty #where_clause2
6565
{
66-
type Expression = Bound<#sql_type, Self>;
66+
type Expression = diesel::internal::derives::as_expression::Bound<#sql_type, Self>;
6767

68-
fn as_expression(self) -> Self::Expression {
69-
Bound::new(self)
68+
fn as_expression(self) -> <Self as diesel::expression::AsExpression<#sql_type>>::Expression {
69+
diesel::internal::derives::as_expression::Bound::new(self)
7070
}
7171
}
7272

73-
impl #impl_generics2 AsExpression<Nullable<#sql_type>>
73+
impl #impl_generics2 diesel::expression::AsExpression<diesel::sql_types::Nullable<#sql_type>>
7474
for &'__expr2 &'__expr #struct_ty #where_clause2
7575
{
76-
type Expression = Bound<Nullable<#sql_type>, Self>;
76+
type Expression = diesel::internal::derives::as_expression::Bound<diesel::sql_types::Nullable<#sql_type>, Self>;
7777

78-
fn as_expression(self) -> Self::Expression {
79-
Bound::new(self)
78+
fn as_expression(self) -> <Self as diesel::expression::AsExpression<diesel::sql_types::Nullable<#sql_type>>>::Expression {
79+
diesel::internal::derives::as_expression::Bound::new(self)
8080
}
8181
}
8282

83-
impl #to_sql_impl_generics diesel::serialize::ToSql<Nullable<#sql_type>, __DB>
83+
impl #to_sql_impl_generics diesel::serialize::ToSql<diesel::sql_types::Nullable<#sql_type>, __DB>
8484
for #struct_ty #to_sql_where_clause
8585
{
86-
fn to_sql<'__b>(&'__b self, out: &mut Output<'__b, '_, __DB>) -> serialize::Result
86+
fn to_sql<'__b>(&'__b self, out: &mut diesel::serialize::Output<'__b, '_, __DB>) -> diesel::serialize::Result
8787
{
88-
ToSql::<#sql_type, __DB>::to_sql(self, out)
88+
diesel::serialize::ToSql::<#sql_type, __DB>::to_sql(self, out)
8989
}
9090
}
9191
);
@@ -96,31 +96,28 @@ pub fn derive(item: DeriveInput) -> Result<TokenStream> {
9696
quote!(
9797
#tokens
9898

99-
impl #impl_generics_plain AsExpression<#sql_type> for #struct_ty #where_clause_plain {
100-
type Expression = Bound<#sql_type, Self>;
99+
impl #impl_generics_plain diesel::expression::AsExpression<#sql_type> for #struct_ty #where_clause_plain {
100+
type Expression = diesel::internal::derives::as_expression::Bound<#sql_type, Self>;
101101

102-
fn as_expression(self) -> Self::Expression {
103-
Bound::new(self)
102+
fn as_expression(self) -> <Self as diesel::expression::AsExpression<#sql_type>>::Expression {
103+
diesel::internal::derives::as_expression::Bound::new(self)
104104
}
105105
}
106106

107-
impl #impl_generics_plain AsExpression<Nullable<#sql_type>> for #struct_ty #where_clause_plain {
108-
type Expression = Bound<Nullable<#sql_type>, Self>;
107+
impl #impl_generics_plain diesel::expression::AsExpression<diesel::sql_types::Nullable<#sql_type>> for #struct_ty
108+
#where_clause_plain
109+
{
110+
type Expression = diesel::internal::derives::as_expression::Bound<diesel::sql_types::Nullable<#sql_type>, Self>;
109111

110-
fn as_expression(self) -> Self::Expression {
111-
Bound::new(self)
112+
fn as_expression(self) -> <Self as diesel::expression::AsExpression<diesel::sql_types::Nullable<#sql_type>>>::Expression {
113+
diesel::internal::derives::as_expression::Bound::new(self)
112114
}
113115
}
114116
)
115117
}
116118
});
117119

118120
Ok(wrap_in_dummy_mod(quote! {
119-
use diesel::expression::AsExpression;
120-
use diesel::internal::derives::as_expression::Bound;
121-
use diesel::sql_types::Nullable;
122-
use diesel::serialize::{self, ToSql, Output};
123-
124121
#(#tokens)*
125122
}))
126123
}

diesel_derives/src/from_sql_row.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,18 @@ pub fn derive(mut item: DeriveInput) -> Result<TokenStream> {
2323
.push(parse_quote!(__ST: diesel::sql_types::SingleValue));
2424
where_clause
2525
.predicates
26-
.push(parse_quote!(Self: FromSql<__ST, __DB>));
26+
.push(parse_quote!(Self: diesel::deserialize::FromSql<__ST, __DB>));
2727
}
2828
let (impl_generics, _, where_clause) = item.generics.split_for_impl();
2929

3030
Ok(wrap_in_dummy_mod(quote! {
31-
use diesel::deserialize::{self, FromSql, Queryable};
32-
3331
// Need to put __ST and __DB after lifetimes but before const params
34-
impl #impl_generics Queryable<__ST, __DB> for #struct_ty
32+
impl #impl_generics diesel::deserialize::Queryable<__ST, __DB> for #struct_ty
3533
#where_clause
3634
{
3735
type Row = Self;
3836

39-
fn build(row: Self::Row) -> deserialize::Result<Self> {
37+
fn build(row: Self) -> diesel::deserialize::Result<Self> {
4038
Ok(row)
4139
}
4240
}

0 commit comments

Comments
 (0)