From 572e339f73acc207987f27989a8949dda19cffaf Mon Sep 17 00:00:00 2001 From: Georg Semmler Date: Tue, 28 Jan 2025 15:37:35 +0100 Subject: [PATCH] Build fixes --- .github/workflows/ci.yml | 15 +- diesel/src/connection/instrumentation.rs | 1 + .../pg/expression/extensions/interval_dsl.rs | 12 +- diesel/src/pg/types/ranges.rs | 4 +- diesel/src/pg/types/uuid.rs | 3 +- diesel_compile_tests/Cargo.lock | 4 +- ...ion_requires_column_from_same_table.stderr | 16 +-- .../tests/fail/alias_and_group_by.stderr | 2 +- ...ay_expressions_must_be_correct_type.stderr | 14 +- ...array_expressions_must_be_same_type.stderr | 28 ++-- .../fail/boxed_queries_and_group_by.stderr | 25 ++-- ...re_selectable_expression_for_filter.stderr | 2 +- ...ire_selectable_expression_for_order.stderr | 2 +- .../fail/broken_queryable_by_name.stderr | 12 +- .../cannot_join_to_non_joinable_table.stderr | 6 +- ...aggregate_and_non_aggregate_selects.stderr | 6 +- .../cannot_pass_aggregate_to_where.stderr | 2 +- ...th_methods_other_than_filter_called.stderr | 12 +- ...y_be_used_with_postgres_connections.stderr | 6 +- ...tom_returning_requires_nonaggregate.stderr | 4 +- ...ning_requires_selectable_expression.stderr | 4 +- ...support_returning_methods_on_sqlite.stderr | 4 +- .../tests/fail/derive/aliases.stderr | 14 +- .../tests/fail/derive/bad_insertable.stderr | 16 +-- .../derive/queryable_type_mismatch.stderr | 12 +- ...inct_on_allows_only_fields_of_table.stderr | 6 +- ...nct_on_clause_only_supported_for_pg.stderr | 10 +- ...t_on_requires_matching_order_clause.stderr | 30 ++-- .../tests/fail/eq_any_is_nullable.stderr | 2 +- .../exists_can_only_take_subselects.stderr | 4 +- ...quality_to_expressions_of_same_type.stderr | 4 +- ...ison_for_columns_from_another_table.stderr | 10 +- ...quires_bool_nonaggregate_expression.stderr | 4 +- .../fail/find_requires_correct_type.stderr | 8 +- ...aving_cant_be_used_without_group_by.stderr | 11 +- .../fail/ilike_only_compiles_for_pg.stderr | 10 +- ..._reference_columns_from_other_table.stderr | 22 +-- ..._cant_be_used_with_tuples_or_arrays.stderr | 8 +- ...m_select_requires_valid_column_list.stderr | 17 +-- ...here_clause_not_supported_on_sqlite.stderr | 3 +- ...pdate_where_not_supported_on_sqlite.stderr | 2 +- ...quires_value_of_same_type_as_column.stderr | 2 +- ...support_returning_methods_on_sqlite.stderr | 4 +- .../tests/fail/invalid_group_by.stderr | 24 ++-- .../tests/fail/invalid_joins.stderr | 12 +- ...n_requires_valid_boolean_expression.stderr | 4 +- ...es_not_support_offset_without_limit.stderr | 9 +- .../tests/fail/mysql_on_conflict_tests.stderr | 35 +++-- .../tests/fail/only_only_on_table.stderr | 10 +- ...der_requires_column_from_same_table.stderr | 2 +- .../ordering_functions_require_ord.stderr | 8 +- ...lict_requires_valid_conflict_target.stderr | 4 +- ...ary_expressions_only_usable_with_pg.stderr | 4 +- ...ions_cant_be_used_in_a_sqlite_query.stderr | 15 +- ...tablesample_cannot_be_used_on_mysql.stderr | 5 +- ...ablesample_cannot_be_used_on_sqlite.stderr | 5 +- ...ert_do_update_requires_valid_update.stderr | 28 ++-- .../fail/queryable_with_typemismatch.stderr | 2 +- ...ause_requires_selectable_expression.stderr | 4 +- ...side_of_left_join_requires_nullable.stderr | 70 +++++----- ...ct_carries_correct_result_type_info.stderr | 4 +- ...e_cannot_be_mixed_with_some_clauses.stderr | 128 ++++++++++-------- ...for_update_cannot_be_used_on_sqlite.stderr | 4 +- ...te_no_wait_cannot_be_used_on_sqlite.stderr | 4 +- ...kip_locked_cannot_be_used_on_sqlite.stderr | 4 +- ...ect_requires_column_from_same_table.stderr | 2 +- .../select_requires_valid_grouping.stderr | 14 +- ...elect_sql_still_ensures_result_type.stderr | 2 +- .../tests/fail/selectable.stderr | 55 ++++---- .../fail/selectable_with_typemisamatch.stderr | 6 +- ...s_all_must_be_from_selectable_table.stderr | 10 +- ...sert_or_ignore_cannot_be_used_on_pg.stderr | 2 +- .../sqlite_upsert_cannot_be_used_on_pg.stderr | 2 +- .../subselect_requires_correct_type.stderr | 5 +- ..._requires_column_be_from_same_table.stderr | 2 +- ...ires_left_side_of_eq_to_be_a_column.stderr | 2 +- .../tests/fail/update_requires_set.stderr | 2 +- .../update_requires_valid_where_clause.stderr | 10 +- ...support_returning_methods_on_sqlite.stderr | 4 +- ...iple_values_not_supported_on_sqlite.stderr | 3 +- ...nctions_follow_same_selection_rules.stderr | 2 +- ...alid_grouping_and_boxed_expressions.stderr | 16 ++- diesel_tests/Cargo.toml | 2 +- 83 files changed, 507 insertions(+), 402 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62270916b6d5..e71e914c6875 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,14 @@ concurrency: jobs: check_and_test: name: Check - needs: [sqlite_bundled, rustfmt_and_clippy, postgres_bundled, mysql_bundled, typos] + needs: + [ + sqlite_bundled, + rustfmt_and_clippy, + postgres_bundled, + mysql_bundled, + typos, + ] strategy: fail-fast: false matrix: @@ -38,6 +45,12 @@ jobs: with: key: ${{ matrix.os }}-${{ matrix.backend }}-cargo-${{ hashFiles('**/Cargo.toml') }} + - name: Set environment variables + shell: bash + if: matrix.backend == 'mysql' + run: | + echo "RUST_TEST_THREADS=1" >> $GITHUB_ENV + - name: Set environment variables shell: bash if: matrix.rust == 'nightly' diff --git a/diesel/src/connection/instrumentation.rs b/diesel/src/connection/instrumentation.rs index 34b30160b886..5f33d78ac837 100644 --- a/diesel/src/connection/instrumentation.rs +++ b/diesel/src/connection/instrumentation.rs @@ -173,6 +173,7 @@ pub enum InstrumentationEvent<'a> { // these constructors exist to // keep `#[non_exhaustive]` on all the variants // and to gate the constructors on the unstable feature +#[cfg(feature = "i-implement-a-third-party-backend-and-opt-into-breaking-changes")] impl<'a> InstrumentationEvent<'a> { /// Create a new `InstrumentationEvent::StartEstablishConnection` event #[cfg(feature = "i-implement-a-third-party-backend-and-opt-into-breaking-changes")] diff --git a/diesel/src/pg/expression/extensions/interval_dsl.rs b/diesel/src/pg/expression/extensions/interval_dsl.rs index 5a5acc6406ba..91466ec3a452 100644 --- a/diesel/src/pg/expression/extensions/interval_dsl.rs +++ b/diesel/src/pg/expression/extensions/interval_dsl.rs @@ -264,9 +264,12 @@ mod tests { macro_rules! test_fn { ($tpe:ty, $test_name:ident, $units: ident, $max_range: expr) => { - test_fn!($tpe, $test_name, $units, $max_range, 1); + test_fn!($tpe, $test_name, $units, $max_range, 1, 0); }; ($tpe:ty, $test_name:ident, $units:ident, $max_range: expr, $max_diff: expr) => { + test_fn!($tpe, $test_name, $units, $max_range, $max_diff, 0); + }; + ($tpe:ty, $test_name:ident, $units:ident, $max_range: expr, $max_diff: expr, $max_month_diff: expr) => { fn $test_name(val: $tpe) -> bool { if val > $max_range || val < (-1 as $tpe) * $max_range || (val as f64).is_nan() { return true; @@ -278,7 +281,7 @@ mod tests { query .get_result::(conn) .map(|res| { - value.months == res.months + (value.months - res.months).abs() <= $max_month_diff && value.days == res.days && (value.microseconds - res.microseconds).abs() <= $max_diff }) @@ -342,6 +345,9 @@ mod tests { test_fn!(f64, test_days, days, i32::MAX as f64, MAX_DIFF); test_fn!(f64, test_weeks, weeks, (i32::MAX / 7) as f64, MAX_DIFF); test_fn!(f64, test_months, months, i32::MAX as f64, MAX_DIFF); - test_fn!(f64, test_years, years, (i32::MAX / 12) as f64, MAX_DIFF); + // different postgres versions seem to round intervals with years differently + // -1681.9781874756495 years is reported as -20183 months for postgres 14 + // and as -20184 months for postgres 16 + test_fn!(f64, test_years, years, (i32::MAX / 12) as f64, MAX_DIFF, 1); } } diff --git a/diesel/src/pg/types/ranges.rs b/diesel/src/pg/types/ranges.rs index 33602a17ccb9..b138e2c730eb 100644 --- a/diesel/src/pg/types/ranges.rs +++ b/diesel/src/pg/types/ranges.rs @@ -34,7 +34,7 @@ impl AsExpression> for (Bound, Bound) { } #[cfg(feature = "postgres_backend")] -impl<'a, ST: 'static, T> AsExpression> for &'a (Bound, Bound) { +impl AsExpression> for &(Bound, Bound) { type Expression = SqlBound, Self>; fn as_expression(self) -> Self::Expression { @@ -52,7 +52,7 @@ impl AsExpression>> for (Bound, Bound) } #[cfg(feature = "postgres_backend")] -impl<'a, ST: 'static, T> AsExpression>> for &'a (Bound, Bound) { +impl AsExpression>> for &(Bound, Bound) { type Expression = SqlBound>, Self>; fn as_expression(self) -> Self::Expression { diff --git a/diesel/src/pg/types/uuid.rs b/diesel/src/pg/types/uuid.rs index 2d453a450da7..48be3b8b69e5 100644 --- a/diesel/src/pg/types/uuid.rs +++ b/diesel/src/pg/types/uuid.rs @@ -52,7 +52,8 @@ fn some_uuid_from_sql() { ]; let input_uuid = uuid::Uuid::from_slice(&bytes).unwrap(); let output_uuid = - FromSql::::from_sql(PgValue::for_test(input_uuid.as_bytes())).unwrap(); + >::from_sql(PgValue::for_test(input_uuid.as_bytes())) + .unwrap(); assert_eq!(input_uuid, output_uuid); } diff --git a/diesel_compile_tests/Cargo.lock b/diesel_compile_tests/Cargo.lock index ff3d1eb3ecb9..8ab115dbb0cc 100644 --- a/diesel_compile_tests/Cargo.lock +++ b/diesel_compile_tests/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "android-tzdata" @@ -130,7 +130,7 @@ dependencies = [ [[package]] name = "diesel" -version = "2.2.5" +version = "2.2.7" dependencies = [ "bigdecimal", "bitflags", diff --git a/diesel_compile_tests/tests/fail/aggregate_expression_requires_column_from_same_table.stderr b/diesel_compile_tests/tests/fail/aggregate_expression_requires_column_from_same_table.stderr index c79646bd39e5..f8d307864e86 100644 --- a/diesel_compile_tests/tests/fail/aggregate_expression_requires_column_from_same_table.stderr +++ b/diesel_compile_tests/tests/fail/aggregate_expression_requires_column_from_same_table.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:21:31 | 21 | let source = users::table.select(sum(posts::id)); - | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id`, which is required by `SelectStatement>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id` | = note: `posts::columns::id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression`: @@ -20,7 +20,7 @@ error[E0271]: type mismatch resolving `>::Co --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:21:31 | 21 | let source = users::table.select(sum(posts::id)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:13:9 @@ -37,7 +37,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:22:31 | 22 | let source = users::table.select(avg(posts::id)); - | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id`, which is required by `SelectStatement>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id` | = note: `posts::columns::id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression`: @@ -55,7 +55,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:22:31 | 22 | let source = users::table.select(avg(posts::id)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:13:9 @@ -72,7 +72,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:23:31 | 23 | let source = users::table.select(max(posts::id)); - | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id`, which is required by `SelectStatement>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id` | = note: `posts::columns::id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression`: @@ -90,7 +90,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:23:31 | 23 | let source = users::table.select(max(posts::id)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:13:9 @@ -107,7 +107,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:24:31 | 24 | let source = users::table.select(min(posts::id)); - | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id`, which is required by `SelectStatement>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id` | = note: `posts::columns::id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression`: @@ -125,7 +125,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:24:31 | 24 | let source = users::table.select(min(posts::id)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable` --> tests/fail/aggregate_expression_requires_column_from_same_table.rs:13:9 diff --git a/diesel_compile_tests/tests/fail/alias_and_group_by.stderr b/diesel_compile_tests/tests/fail/alias_and_group_by.stderr index 5d5e0fd8daa5..b26a61a4c3c2 100644 --- a/diesel_compile_tests/tests/fail/alias_and_group_by.stderr +++ b/diesel_compile_tests/tests/fail/alias_and_group_by.stderr @@ -4,7 +4,7 @@ error[E0271]: type mismatch resolving `>::Outpu 34 | .select(user_alias.field(users::id)) | ^^^^^^ type mismatch resolving `>::Output == Yes` | -note: expected this to be `diesel::expression::is_contained_in_group_by::No` +note: expected this to be `diesel::expression::is_contained_in_group_by::Yes` --> tests/fail/alias_and_group_by.rs:9:9 | 9 | name -> VarChar, diff --git a/diesel_compile_tests/tests/fail/array_expressions_must_be_correct_type.stderr b/diesel_compile_tests/tests/fail/array_expressions_must_be_correct_type.stderr index 77e799b0034d..727711d0b032 100644 --- a/diesel_compile_tests/tests/fail/array_expressions_must_be_correct_type.stderr +++ b/diesel_compile_tests/tests/fail/array_expressions_must_be_correct_type.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot select `f64` from `NoFromClause` --> tests/fail/array_expressions_must_be_correct_type.rs:9:12 | 9 | select(array((1f64, 3f64))).get_result::>(&mut connection); - | ------ ^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64`, which is required by `SelectStatement>: AsQuery` + | ------ ^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -36,7 +36,7 @@ error[E0277]: the trait bound `f64: ValidGrouping<()>` is not satisfied --> tests/fail/array_expressions_must_be_correct_type.rs:9:12 | 9 | select(array((1f64, 3f64))).get_result::>(&mut connection); - | ------ ^^^^^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64`, which is required by `SelectStatement>: AsQuery` + | ------ ^^^^^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -68,7 +68,7 @@ error[E0277]: Cannot select `f64` from `NoFromClause` --> tests/fail/array_expressions_must_be_correct_type.rs:9:56 | 9 | select(array((1f64, 3f64))).get_result::>(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -102,7 +102,7 @@ error[E0277]: the trait bound `f64: ValidGrouping<()>` is not satisfied --> tests/fail/array_expressions_must_be_correct_type.rs:9:56 | 9 | select(array((1f64, 3f64))).get_result::>(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -134,7 +134,7 @@ error[E0277]: the trait bound `f64: QueryId` is not satisfied --> tests/fail/array_expressions_must_be_correct_type.rs:9:56 | 9 | select(array((1f64, 3f64))).get_result::>(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryId` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryId` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -165,7 +165,7 @@ error[E0277]: `f64` is no valid SQL fragment for the `Pg` backend --> tests/fail/array_expressions_must_be_correct_type.rs:9:56 | 9 | select(array((1f64, 3f64))).get_result::>(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -198,7 +198,7 @@ error[E0277]: the trait bound `f64: diesel::Expression` is not satisfied --> tests/fail/array_expressions_must_be_correct_type.rs:9:19 | 9 | select(array((1f64, 3f64))).get_result::>(&mut connection); - | ----- ^^^^ the trait `diesel::Expression` is not implemented for `f64`, which is required by `(f64, f64): AsExpressionList<_>` + | ----- ^^^^ the trait `diesel::Expression` is not implemented for `f64` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/array_expressions_must_be_same_type.stderr b/diesel_compile_tests/tests/fail/array_expressions_must_be_same_type.stderr index fed8a628fd6d..dbe96dba7c29 100644 --- a/diesel_compile_tests/tests/fail/array_expressions_must_be_same_type.stderr +++ b/diesel_compile_tests/tests/fail/array_expressions_must_be_same_type.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot select `f64` from `NoFromClause` --> tests/fail/array_expressions_must_be_same_type.rs:15:12 | 15 | select(array((1, 3f64))) - | ------ ^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64`, which is required by `SelectStatement>: AsQuery` + | ------ ^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -36,7 +36,7 @@ error[E0277]: the trait bound `f64: ValidGrouping<()>` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:15:12 | 15 | select(array((1, 3f64))) - | ------ ^^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64`, which is required by `SelectStatement>: AsQuery` + | ------ ^^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -68,7 +68,7 @@ error[E0277]: Cannot select `f64` from `NoFromClause` --> tests/fail/array_expressions_must_be_same_type.rs:16:33 | 16 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -102,7 +102,7 @@ error[E0277]: the trait bound `f64: ValidGrouping<()>` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:16:33 | 16 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -134,7 +134,7 @@ error[E0277]: the trait bound `f64: QueryId` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:16:33 | 16 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryId` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryId` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -165,7 +165,7 @@ error[E0277]: `f64` is no valid SQL fragment for the `Pg` backend --> tests/fail/array_expressions_must_be_same_type.rs:16:33 | 16 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `f64`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -198,7 +198,7 @@ error[E0277]: the trait bound `f64: diesel::Expression` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:15:22 | 15 | select(array((1, 3f64))) - | ----- ^^^^ the trait `diesel::Expression` is not implemented for `f64`, which is required by `({integer}, f64): AsExpressionList<_>` + | ----- ^^^^ the trait `diesel::Expression` is not implemented for `f64` | | | required by a bound introduced by this call | @@ -227,7 +227,7 @@ error[E0277]: Cannot select `{integer}` from `NoFromClause` --> tests/fail/array_expressions_must_be_same_type.rs:18:12 | 18 | select(array((1, 3f64))) - | ------ ^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `{integer}`, which is required by `SelectStatement>: AsQuery` + | ------ ^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `{integer}` | | | required by a bound introduced by this call | @@ -261,7 +261,7 @@ error[E0277]: the trait bound `{integer}: ValidGrouping<()>` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:18:12 | 18 | select(array((1, 3f64))) - | ------ ^^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `{integer}`, which is required by `SelectStatement>: AsQuery` + | ------ ^^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `{integer}` | | | required by a bound introduced by this call | @@ -293,7 +293,7 @@ error[E0277]: Cannot select `{integer}` from `NoFromClause` --> tests/fail/array_expressions_must_be_same_type.rs:19:33 | 19 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `{integer}`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `{integer}` | | | required by a bound introduced by this call | @@ -327,7 +327,7 @@ error[E0277]: the trait bound `{integer}: ValidGrouping<()>` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:19:33 | 19 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `{integer}`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `ValidGrouping<()>` is not implemented for `{integer}` | | | required by a bound introduced by this call | @@ -359,7 +359,7 @@ error[E0277]: the trait bound `{integer}: QueryId` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:19:33 | 19 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryId` is not implemented for `{integer}`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryId` is not implemented for `{integer}` | | | required by a bound introduced by this call | @@ -390,7 +390,7 @@ error[E0277]: `{integer}` is no valid SQL fragment for the `Pg` backend --> tests/fail/array_expressions_must_be_same_type.rs:19:33 | 19 | .get_result::>(&mut connection) - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `{integer}`, which is required by `SelectStatement>>: LoadQuery<'_, _, Vec>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `{integer}` | | | required by a bound introduced by this call | @@ -423,7 +423,7 @@ error[E0277]: the trait bound `{integer}: diesel::Expression` is not satisfied --> tests/fail/array_expressions_must_be_same_type.rs:18:19 | 18 | select(array((1, 3f64))) - | ----- ^ the trait `diesel::Expression` is not implemented for `{integer}`, which is required by `({integer}, f64): AsExpressionList<_>` + | ----- ^ the trait `diesel::Expression` is not implemented for `{integer}` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/boxed_queries_and_group_by.stderr b/diesel_compile_tests/tests/fail/boxed_queries_and_group_by.stderr index 8eb09e6f6a61..31126587bbfc 100644 --- a/diesel_compile_tests/tests/fail/boxed_queries_and_group_by.stderr +++ b/diesel_compile_tests/tests/fail/boxed_queries_and_group_by.stderr @@ -2,8 +2,9 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/boxed_queries_and_group_by.rs:55:40 | 55 | users::table.group_by(users::name).into_boxed(); - | ^^^^^^^^^^ the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause, diesel::query_builder::group_by_clause::GroupByClause>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause, diesel::query_builder::group_by_clause::GroupByClause>` = help: the following other types implement trait `BoxedDsl<'a, DB>`: SelectStatement, S, D, W, O, LOf, G, H> SelectStatement @@ -14,7 +15,7 @@ error[E0271]: type mismatch resolving `>::Outpu 59 | .select(users::id) | ^^^^^^ type mismatch resolving `>::Output == Yes` | -note: expected this to be `diesel::expression::is_contained_in_group_by::No` +note: expected this to be `diesel::expression::is_contained_in_group_by::Yes` --> tests/fail/boxed_queries_and_group_by.rs:8:9 | 8 | name -> Text, @@ -31,8 +32,9 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/boxed_queries_and_group_by.rs:60:10 | 60 | .into_boxed(); - | ^^^^^^^^^^ the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause, diesel::query_builder::group_by_clause::GroupByClause>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause, diesel::query_builder::group_by_clause::GroupByClause>` = help: the following other types implement trait `BoxedDsl<'a, DB>`: SelectStatement, S, D, W, O, LOf, G, H> SelectStatement @@ -43,7 +45,7 @@ error[E0271]: type mismatch resolving `>::Outpu 66 | .select(users::id) | ^^^^^^ type mismatch resolving `>::Output == Yes` | -note: expected this to be `diesel::expression::is_contained_in_group_by::No` +note: expected this to be `diesel::expression::is_contained_in_group_by::Yes` --> tests/fail/boxed_queries_and_group_by.rs:8:9 | 8 | name -> Text, @@ -60,8 +62,9 @@ error[E0277]: the trait bound `BoxedSelectStatement<'_, diesel::sql_types::Text, --> tests/fail/boxed_queries_and_group_by.rs:73:10 | 73 | .inner_join(posts::table) - | ^^^^^^^^^^ the trait `Table` is not implemented for `BoxedSelectStatement<'_, diesel::sql_types::Text, FromClause, _, users::columns::name>`, which is required by `BoxedSelectStatement<'_, diesel::sql_types::Text, FromClause, _, users::columns::name>: JoinWithImplicitOnClause<_, Inner>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `BoxedSelectStatement<'_, diesel::sql_types::Text, FromClause, _, users::columns::name>` = help: the following other types implement trait `Table`: Only Tablesample @@ -115,18 +118,19 @@ error[E0271]: type mismatch resolving ` tests/fail/boxed_queries_and_group_by.rs:84:10 | 84 | .group_by(users::id) - | ^^^^^^^^ expected `BoxedSelectStatement<'_, (..., ...), ..., ...>`, found `SelectStatement>` + | ^^^^^^^^ expected `SelectStatement>`, found `BoxedSelectStatement<'_, (..., ...), ..., ...>` | - = note: expected struct `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>` - found struct `SelectStatement, _>>>` + = note: expected struct `SelectStatement, _>>>` + found struct `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>` = note: required for `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>` to implement `GroupByDsl<_>` error[E0277]: the trait bound `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>: Table` is not satisfied --> tests/fail/boxed_queries_and_group_by.rs:84:10 | 84 | .group_by(users::id) - | ^^^^^^^^ the trait `Table` is not implemented for `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>`, which is required by `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>: GroupByDsl<_>` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>` = help: the following other types implement trait `Table`: Only Tablesample @@ -140,6 +144,7 @@ error[E0277]: the trait bound `SelectStatement tests/fail/boxed_queries_and_group_by.rs:84:10 | 84 | .group_by(users::id) - | ^^^^^^^^ the trait `GroupByDsl<_>` is not implemented for `SelectStatement, _>>>` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `GroupByDsl<_>` is not implemented for `SelectStatement, _>>>` = help: the trait `GroupByDsl` is implemented for `SelectStatement` diff --git a/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_filter.stderr b/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_filter.stderr index 323e5df3b99d..f248415f649f 100644 --- a/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_filter.stderr +++ b/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_filter.stderr @@ -2,7 +2,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/boxed_queries_require_selectable_expression_for_filter.rs:25:10 | 25 | .filter(posts::title.eq("Hello")); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::title` to implement `AppearsOnTable` --> tests/fail/boxed_queries_require_selectable_expression_for_filter.rs:16:9 diff --git a/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_order.stderr b/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_order.stderr index 5753d9d88839..5a503c38b602 100644 --- a/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_order.stderr +++ b/diesel_compile_tests/tests/fail/boxed_queries_require_selectable_expression_for_order.stderr @@ -2,7 +2,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/boxed_queries_require_selectable_expression_for_order.rs:23:37 | 23 | users::table.into_boxed::().order(posts::title.desc()); - | ^^^^^ expected `Never`, found `Once` + | ^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::title` to implement `AppearsOnTable` --> tests/fail/boxed_queries_require_selectable_expression_for_order.rs:16:9 diff --git a/diesel_compile_tests/tests/fail/broken_queryable_by_name.stderr b/diesel_compile_tests/tests/fail/broken_queryable_by_name.stderr index 98c3515a4dc9..710d8ac70a85 100644 --- a/diesel_compile_tests/tests/fail/broken_queryable_by_name.stderr +++ b/diesel_compile_tests/tests/fail/broken_queryable_by_name.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `i32: FromSqlRow` is --> tests/fail/broken_queryable_by_name.rs:17:5 | 17 | name: i32, - | ^^^^^^^^^ the trait `FromSql` is not implemented for `i32`, which is required by `i32: FromSqlRow` + | ^^^^^^^^^ the trait `FromSql` is not implemented for `i32` | = note: double check your type mappings via the documentation of `diesel::sql_types::Text` = note: `diesel::sql_query` requires the loading target to column names for loading values. @@ -19,7 +19,7 @@ error[E0277]: cannot deserialize a value of the database type `diesel::sql_types --> tests/fail/broken_queryable_by_name.rs:16:5 | 16 | id: String, - | ^^^^^^^^^^ the trait `FromSql` is not implemented for `*const str`, which is required by `std::string::String: FromSqlRow` + | ^^^^^^^^^^ the trait `FromSql` is not implemented for `*const str` | = note: double check your type mappings via the documentation of `diesel::sql_types::Integer` = help: the following other types implement trait `FromSql`: @@ -35,7 +35,7 @@ error[E0277]: the trait bound `i32: FromSqlRow` is --> tests/fail/broken_queryable_by_name.rs:26:5 | 26 | name: i32, - | ^^^^^^^^^ the trait `FromSql` is not implemented for `i32`, which is required by `i32: FromSqlRow` + | ^^^^^^^^^ the trait `FromSql` is not implemented for `i32` | = note: double check your type mappings via the documentation of `diesel::sql_types::Text` = note: `diesel::sql_query` requires the loading target to column names for loading values. @@ -52,7 +52,7 @@ error[E0277]: cannot deserialize a value of the database type `diesel::sql_types --> tests/fail/broken_queryable_by_name.rs:24:5 | 24 | id: String, - | ^^^^^^^^^^ the trait `FromSql` is not implemented for `*const str`, which is required by `std::string::String: FromSqlRow` + | ^^^^^^^^^^ the trait `FromSql` is not implemented for `*const str` | = note: double check your type mappings via the documentation of `diesel::sql_types::Integer` = help: the following other types implement trait `FromSql`: @@ -68,7 +68,7 @@ error[E0277]: the trait bound `Untyped: load_dsl::private::CompatibleType tests/fail/broken_queryable_by_name.rs:32:49 | 32 | let s = diesel::sql_query("…").load::(conn); - | ---- ^^^^ the trait `load_dsl::private::CompatibleType` is not implemented for `Untyped`, which is required by `SqlQuery: LoadQuery<'_, _, User>` + | ---- ^^^^ the trait `load_dsl::private::CompatibleType` is not implemented for `Untyped` | | | required by a bound introduced by this call | @@ -91,7 +91,7 @@ error[E0277]: the trait bound `User: FromSqlRow<_, _>` is not satisfied --> tests/fail/broken_queryable_by_name.rs:32:49 | 32 | let s = diesel::sql_query("…").load::(conn); - | ---- ^^^^ the trait `FromSqlRow<_, _>` is not implemented for `User`, which is required by `SqlQuery: LoadQuery<'_, _, User>` + | ---- ^^^^ the trait `FromSqlRow<_, _>` is not implemented for `User` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/cannot_join_to_non_joinable_table.stderr b/diesel_compile_tests/tests/fail/cannot_join_to_non_joinable_table.stderr index 7d3431636d22..1e055c1fbe16 100644 --- a/diesel_compile_tests/tests/fail/cannot_join_to_non_joinable_table.stderr +++ b/diesel_compile_tests/tests/fail/cannot_join_to_non_joinable_table.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `users::table: JoinTo` is not satisf --> tests/fail/cannot_join_to_non_joinable_table.rs:30:37 | 30 | let _ = users::table.inner_join(posts::table); - | ---------- ^^^^^^^^^^^^ the trait `JoinTo` is not implemented for `users::table`, which is required by `users::table: JoinWithImplicitOnClause<_, Inner>` + | ---------- ^^^^^^^^^^^^ the trait `JoinTo` is not implemented for `users::table` | | | required by a bound introduced by this call | @@ -28,7 +28,7 @@ error[E0277]: the trait bound `users::table: JoinTo` is not satisf --> tests/fail/cannot_join_to_non_joinable_table.rs:31:42 | 31 | let _ = users::table.left_outer_join(posts::table); - | --------------- ^^^^^^^^^^^^ the trait `JoinTo` is not implemented for `users::table`, which is required by `users::table: JoinWithImplicitOnClause<_, LeftOuter>` + | --------------- ^^^^^^^^^^^^ the trait `JoinTo` is not implemented for `users::table` | | | required by a bound introduced by this call | @@ -54,7 +54,7 @@ error[E0277]: the trait bound `posts::table: JoinTo` is not satisf --> tests/fail/cannot_join_to_non_joinable_table.rs:36:26 | 36 | let _ = users::table.inner_join(join); - | ^^^^^^^^^^ the trait `JoinTo` is not implemented for `posts::table`, which is required by `users::table: JoinWithImplicitOnClause<_, Inner>` + | ^^^^^^^^^^ the trait `JoinTo` is not implemented for `posts::table` | = help: the following other types implement trait `JoinTo`: `posts::table` implements `JoinTo>` diff --git a/diesel_compile_tests/tests/fail/cannot_mix_aggregate_and_non_aggregate_selects.stderr b/diesel_compile_tests/tests/fail/cannot_mix_aggregate_and_non_aggregate_selects.stderr index ecbb2acdfc34..569ef01830d1 100644 --- a/diesel_compile_tests/tests/fail/cannot_mix_aggregate_and_non_aggregate_selects.stderr +++ b/diesel_compile_tests/tests/fail/cannot_mix_aggregate_and_non_aggregate_selects.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::No: MixedAggreg --> tests/fail/cannot_mix_aggregate_and_non_aggregate_selects.rs:20:24 | 20 | let source = users.select((id, count_star())); - | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No`, which is required by `SelectStatement>: SelectDsl<_>` + | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No` | = help: the following other types implement trait `MixedAggregates`: `diesel::expression::is_aggregate::No` implements `MixedAggregates` @@ -14,7 +14,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::No: MixedAggreg --> tests/fail/cannot_mix_aggregate_and_non_aggregate_selects.rs:22:24 | 22 | let source = users.select(nullable_int_col + max(nullable_int_col)); - | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No`, which is required by `SelectStatement>: SelectDsl<_>` + | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No` | = help: the following other types implement trait `MixedAggregates`: `diesel::expression::is_aggregate::No` implements `MixedAggregates` @@ -26,7 +26,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::No: MixedAggreg --> tests/fail/cannot_mix_aggregate_and_non_aggregate_selects.rs:24:24 | 24 | let source = users.select(f(nullable_int_col, max(nullable_int_col))); - | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No`, which is required by `SelectStatement>: SelectDsl<_>` + | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No` | = help: the following other types implement trait `MixedAggregates`: `diesel::expression::is_aggregate::No` implements `MixedAggregates` diff --git a/diesel_compile_tests/tests/fail/cannot_pass_aggregate_to_where.stderr b/diesel_compile_tests/tests/fail/cannot_pass_aggregate_to_where.stderr index 01e99fc611ba..f4259c866ad5 100644 --- a/diesel_compile_tests/tests/fail/cannot_pass_aggregate_to_where.stderr +++ b/diesel_compile_tests/tests/fail/cannot_pass_aggregate_to_where.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::Yes: MixedAggre --> tests/fail/cannot_pass_aggregate_to_where.rs:15:24 | 15 | let source = users.filter(count(id).gt(3)); - | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::Yes`, which is required by `SelectStatement>: FilterDsl<_>` + | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::Yes` | = help: the following other types implement trait `MixedAggregates`: `diesel::expression::is_aggregate::Yes` implements `MixedAggregates` diff --git a/diesel_compile_tests/tests/fail/cannot_update_target_with_methods_other_than_filter_called.stderr b/diesel_compile_tests/tests/fail/cannot_update_target_with_methods_other_than_filter_called.stderr index 3bf2249da8b2..d7eafd64ec94 100644 --- a/diesel_compile_tests/tests/fail/cannot_update_target_with_methods_other_than_filter_called.stderr +++ b/diesel_compile_tests/tests/fail/cannot_update_target_with_methods_other_than_filter_called.stderr @@ -2,10 +2,11 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/cannot_update_target_with_methods_other_than_filter_called.rs:15:26 | 15 | let command = update(users.select(id)).set(id.eq(1)); - | ------ ^^^^^^^^^^^^^^^^ the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause>`, which is required by `SelectStatement, diesel::query_builder::select_clause::SelectClause>: IntoUpdateTarget` + | ------ ^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause>` = help: the trait `IntoUpdateTarget` is implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, W>` = note: required for `SelectStatement, diesel::query_builder::select_clause::SelectClause>` to implement `IntoUpdateTarget` note: required by a bound in `diesel::update` @@ -18,10 +19,11 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/cannot_update_target_with_methods_other_than_filter_called.rs:16:26 | 16 | let command = update(users.order(id)).set(id.eq(1)); - | ------ ^^^^^^^^^^^^^^^ the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>: IntoUpdateTarget` + | ------ ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>` = help: the trait `IntoUpdateTarget` is implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, W>` = note: required for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>` to implement `IntoUpdateTarget` note: required by a bound in `diesel::update` @@ -34,8 +36,9 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/cannot_update_target_with_methods_other_than_filter_called.rs:15:19 | 15 | let command = update(users.select(id)).set(id.eq(1)); - | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause>`, which is required by `SelectStatement, diesel::query_builder::select_clause::SelectClause>: IntoUpdateTarget` + | ^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause>` = help: the trait `IntoUpdateTarget` is implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, W>` = note: required for `SelectStatement, diesel::query_builder::select_clause::SelectClause>` to implement `IntoUpdateTarget` @@ -43,7 +46,8 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/cannot_update_target_with_methods_other_than_filter_called.rs:16:19 | 16 | let command = update(users.order(id)).set(id.eq(1)); - | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>: IntoUpdateTarget` + | ^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Identifiable` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>` = help: the trait `IntoUpdateTarget` is implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, W>` = note: required for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>` to implement `IntoUpdateTarget` diff --git a/diesel_compile_tests/tests/fail/copy_can_only_be_used_with_postgres_connections.stderr b/diesel_compile_tests/tests/fail/copy_can_only_be_used_with_postgres_connections.stderr index 0d3d05e9f4b6..4f249dc859d6 100644 --- a/diesel_compile_tests/tests/fail/copy_can_only_be_used_with_postgres_connections.stderr +++ b/diesel_compile_tests/tests/fail/copy_can_only_be_used_with_postgres_connections.stderr @@ -19,10 +19,11 @@ error[E0277]: the trait bound `CopyFromQuery tests/fail/copy_can_only_be_used_with_postgres_connections.rs:52:18 | 52 | .execute(conn) - | ------- ^^^^ the trait `diesel::ExecuteCopyFromDsl` is not implemented for `CopyFromQuery>>` + | ------- ^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `diesel::ExecuteCopyFromDsl` is not implemented for `CopyFromQuery>>` = help: the following other types implement trait `diesel::ExecuteCopyFromDsl`: `CopyFromQuery` implements `diesel::ExecuteCopyFromDsl>>` `CopyFromQuery` implements `diesel::ExecuteCopyFromDsl` @@ -86,10 +87,11 @@ error[E0277]: the trait bound `CopyFromQuery tests/fail/copy_can_only_be_used_with_postgres_connections.rs:61:18 | 61 | .execute(conn) - | ------- ^^^^ the trait `diesel::ExecuteCopyFromDsl` is not implemented for `CopyFromQuery>>` + | ------- ^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `diesel::ExecuteCopyFromDsl` is not implemented for `CopyFromQuery>>` = help: the following other types implement trait `diesel::ExecuteCopyFromDsl`: `CopyFromQuery` implements `diesel::ExecuteCopyFromDsl>>` `CopyFromQuery` implements `diesel::ExecuteCopyFromDsl` diff --git a/diesel_compile_tests/tests/fail/custom_returning_requires_nonaggregate.stderr b/diesel_compile_tests/tests/fail/custom_returning_requires_nonaggregate.stderr index 67fd051a9c20..699e58a17b51 100644 --- a/diesel_compile_tests/tests/fail/custom_returning_requires_nonaggregate.stderr +++ b/diesel_compile_tests/tests/fail/custom_returning_requires_nonaggregate.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::Yes: MixedAggre --> tests/fail/custom_returning_requires_nonaggregate.rs:22:78 | 22 | let stmt = update(users.filter(id.eq(1))).set(name.eq("Bill")).returning(count(id)); - | --------- ^^^^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::Yes`, which is required by `UpdateStatement>>>, diesel::query_builder::update_statement::changeset::Assign, diesel::expression::bound::Bound>, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::Yes` | | | required by a bound introduced by this call | @@ -23,7 +23,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::No: MixedAggreg --> tests/fail/custom_returning_requires_nonaggregate.rs:27:63 | 27 | let stmt = insert_into(users).values(&new_user).returning((name, count(name))); - | --------- ^^^^^^^^^^^^^^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No`, which is required by `InsertStatement>>,), users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::No` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/custom_returning_requires_selectable_expression.stderr b/diesel_compile_tests/tests/fail/custom_returning_requires_selectable_expression.stderr index 75a6533e5296..918acf884918 100644 --- a/diesel_compile_tests/tests/fail/custom_returning_requires_selectable_expression.stderr +++ b/diesel_compile_tests/tests/fail/custom_returning_requires_selectable_expression.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot select `bad::columns::age` from `users::table` --> tests/fail/custom_returning_requires_selectable_expression.rs:32:20 | 32 | .returning(bad::age); - | --------- ^^^^^^^^ the trait `SelectableExpression` is not implemented for `bad::columns::age`, which is required by `UpdateStatement>>>, diesel::query_builder::update_statement::changeset::Assign, diesel::expression::bound::Bound>, ReturningClause<_>>: Query` + | --------- ^^^^^^^^ the trait `SelectableExpression` is not implemented for `bad::columns::age` | | | required by a bound introduced by this call | @@ -29,7 +29,7 @@ error[E0277]: Cannot select `bad::columns::age` from `users::table` --> tests/fail/custom_returning_requires_selectable_expression.rs:39:20 | 39 | .returning((name, bad::age)); - | --------- ^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `bad::columns::age`, which is required by `InsertStatement>>,), users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `bad::columns::age` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/delete_statement_does_not_support_returning_methods_on_sqlite.stderr b/diesel_compile_tests/tests/fail/delete_statement_does_not_support_returning_methods_on_sqlite.stderr index 15bb5110c73b..49bdad95fd37 100644 --- a/diesel_compile_tests/tests/fail/delete_statement_does_not_support_returning_methods_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/delete_statement_does_not_support_returning_methods_on_sqlite.stderr @@ -2,7 +2,7 @@ error[E0277]: `ReturningClause<(columns::id, columns::name)>` is no valid SQL fr --> tests/fail/delete_statement_does_not_support_returning_methods_on_sqlite.rs:17:21 | 17 | .get_result(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `ReturningClause<(columns::id, columns::name)>`, which is required by `DeleteStatement>>>>: LoadQuery<'_, _, _>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `ReturningClause<(columns::id, columns::name)>` | | | required by a bound introduced by this call | @@ -29,7 +29,7 @@ error[E0277]: `ReturningClause` is no valid SQL fragment for the --> tests/fail/delete_statement_does_not_support_returning_methods_on_sqlite.rs:21:21 | 21 | .get_result(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `ReturningClause`, which is required by `DeleteStatement>>>, ReturningClause>: LoadQuery<'_, _, _>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `ReturningClause` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/derive/aliases.stderr b/diesel_compile_tests/tests/fail/derive/aliases.stderr index 0f759c236d45..b2b6d28030b9 100644 --- a/diesel_compile_tests/tests/fail/derive/aliases.stderr +++ b/diesel_compile_tests/tests/fail/derive/aliases.stderr @@ -72,7 +72,7 @@ error[E0271]: type mismatch resolving `, I --> tests/fail/derive/aliases.rs:42:10 | 42 | .inner_join(post_alias) - | ^^^^^^^^^^ expected `MoreThanOnce`, found `Once` + | ^^^^^^^^^^ expected `Once`, found `MoreThanOnce` | = note: required for `AliasedField` to implement `AppearsOnTable, Inner>, diesel::expression::grouped::Grouped>, NullableExpression>>>, Alias, Inner>>` = note: 2 redundant requirements hidden @@ -103,7 +103,7 @@ error[E0277]: Cannot select `users::columns::id` from `Alias` --> tests/fail/derive/aliases.rs:48:23 | 48 | user_alias.select(users::id).load::(conn).unwrap(); - | ------ ^^^^^^^^^ the trait `SelectableExpression>` is not implemented for `users::columns::id`, which is required by `Alias: SelectDsl<_>` + | ------ ^^^^^^^^^ the trait `SelectableExpression>` is not implemented for `users::columns::id` | | | required by a bound introduced by this call | @@ -132,7 +132,7 @@ error[E0277]: Cannot select `users::columns::id` from `Alias` --> tests/fail/derive/aliases.rs:48:46 | 48 | user_alias.select(users::id).load::(conn).unwrap(); - | ---- ^^^^ the trait `SelectableExpression>` is not implemented for `users::columns::id`, which is required by `SelectStatement>, diesel::query_builder::select_clause::SelectClause>: LoadQuery<'_, _, i32>` + | ---- ^^^^ the trait `SelectableExpression>` is not implemented for `users::columns::id` | | | required by a bound introduced by this call | @@ -161,7 +161,7 @@ error[E0277]: the trait bound `users::table: JoinTo` is not satisfi --> tests/fail/derive/aliases.rs:54:10 | 54 | .inner_join(user_alias) - | ^^^^^^^^^^ the trait `JoinTo` is not implemented for `users::table`, which is required by `pets::table: JoinWithImplicitOnClause<_, Inner>` + | ^^^^^^^^^^ the trait `JoinTo` is not implemented for `users::table` | = help: the following other types implement trait `JoinTo`: `users::table` implements `JoinTo>` @@ -183,7 +183,7 @@ error[E0277]: the trait bound `Alias: AppearsInFromClause> 63 | / post_alias_2.on(post_alias 64 | | .field(posts::author) 65 | | .eq(post_alias_2.field(posts::author))), - | |_______________________________________________________^ the trait `AppearsInFromClause>` is not implemented for `Alias`, which is required by `Alias: JoinWithImplicitOnClause<_, Inner>` + | |_______________________________________________________^ the trait `AppearsInFromClause>` is not implemented for `Alias` | = note: double check that `Alias` and `Alias` appear in the same `allow_tables_to_appear_in_same_query!` call if both are tables @@ -213,7 +213,7 @@ error[E0277]: the trait bound `query_source::joins::Join, Alias tests/fail/derive/aliases.rs:62:10 | 62 | .inner_join( - | ^^^^^^^^^^ the trait `AppearsInFromClause>` is not implemented for `query_source::joins::Join, Alias, Inner>`, which is required by `SelectStatement>>: InternalJoinDsl<_, Inner, _>` + | ^^^^^^^^^^ the trait `AppearsInFromClause>` is not implemented for `query_source::joins::Join, Alias, Inner>` | = note: double check that `Alias` and `query_source::joins::Join, Alias, Inner>` appear in the same `allow_tables_to_appear_in_same_query!` call if both are tables @@ -231,7 +231,7 @@ error[E0277]: the trait bound `query_source::joins::Join, Alias tests/fail/derive/aliases.rs:62:10 | 62 | .inner_join( - | ^^^^^^^^^^ the trait `AppearsInFromClause>` is not implemented for `query_source::joins::Join, Alias, Inner>`, which is required by `SelectStatement>>: InternalJoinDsl<_, Inner, _>` + | ^^^^^^^^^^ the trait `AppearsInFromClause>` is not implemented for `query_source::joins::Join, Alias, Inner>` | = note: double check that `Alias` and `query_source::joins::Join, Alias, Inner>` appear in the same `allow_tables_to_appear_in_same_query!` call if both are tables diff --git a/diesel_compile_tests/tests/fail/derive/bad_insertable.stderr b/diesel_compile_tests/tests/fail/derive/bad_insertable.stderr index d5fd0d99e03b..82743615d965 100644 --- a/diesel_compile_tests/tests/fail/derive/bad_insertable.stderr +++ b/diesel_compile_tests/tests/fail/derive/bad_insertable.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `std::string::String: diesel::Expression` is not s --> tests/fail/derive/bad_insertable.rs:10:10 | 10 | #[derive(Insertable)] - | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `std::string::String`, which is required by `std::string::String: AsExpression` + | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `std::string::String` | = help: the following other types implement trait `diesel::Expression`: &T @@ -21,7 +21,7 @@ error[E0277]: the trait bound `i32: diesel::Expression` is not satisfied --> tests/fail/derive/bad_insertable.rs:10:10 | 10 | #[derive(Insertable)] - | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `i32`, which is required by `i32: AsExpression` + | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `i32` | = help: the following other types implement trait `diesel::Expression`: &T @@ -40,7 +40,7 @@ error[E0277]: the trait bound `std::string::String: diesel::Expression` is not s --> tests/fail/derive/bad_insertable.rs:10:10 | 10 | #[derive(Insertable)] - | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `std::string::String`, which is required by `&'insert std::string::String: AsExpression` + | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `std::string::String` | = help: the following other types implement trait `diesel::Expression`: &T @@ -60,7 +60,7 @@ error[E0277]: the trait bound `i32: diesel::Expression` is not satisfied --> tests/fail/derive/bad_insertable.rs:10:10 | 10 | #[derive(Insertable)] - | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `i32`, which is required by `&'insert i32: AsExpression` + | ^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `i32` | = help: the following other types implement trait `diesel::Expression`: &T @@ -80,7 +80,7 @@ error[E0277]: the trait bound `std::string::String: diesel::Expression` is not s --> tests/fail/derive/bad_insertable.rs:12:5 | 12 | id: String, - | ^^ the trait `diesel::Expression` is not implemented for `std::string::String`, which is required by `std::string::String: AsExpression` + | ^^ the trait `diesel::Expression` is not implemented for `std::string::String` | = help: the following other types implement trait `diesel::Expression`: &T @@ -98,7 +98,7 @@ error[E0277]: the trait bound `i32: diesel::Expression` is not satisfied --> tests/fail/derive/bad_insertable.rs:13:5 | 13 | name: i32, - | ^^^^ the trait `diesel::Expression` is not implemented for `i32`, which is required by `i32: AsExpression` + | ^^^^ the trait `diesel::Expression` is not implemented for `i32` | = help: the following other types implement trait `diesel::Expression`: &T @@ -116,7 +116,7 @@ error[E0277]: the trait bound `std::string::String: diesel::Expression` is not s --> tests/fail/derive/bad_insertable.rs:12:5 | 12 | id: String, - | ^^ the trait `diesel::Expression` is not implemented for `std::string::String`, which is required by `&'insert std::string::String: AsExpression` + | ^^ the trait `diesel::Expression` is not implemented for `std::string::String` | = help: the following other types implement trait `diesel::Expression`: &T @@ -135,7 +135,7 @@ error[E0277]: the trait bound `i32: diesel::Expression` is not satisfied --> tests/fail/derive/bad_insertable.rs:13:5 | 13 | name: i32, - | ^^^^ the trait `diesel::Expression` is not implemented for `i32`, which is required by `&'insert i32: AsExpression` + | ^^^^ the trait `diesel::Expression` is not implemented for `i32` | = help: the following other types implement trait `diesel::Expression`: &T diff --git a/diesel_compile_tests/tests/fail/derive/queryable_type_mismatch.stderr b/diesel_compile_tests/tests/fail/derive/queryable_type_mismatch.stderr index a7f395c61215..6d2b0112ed20 100644 --- a/diesel_compile_tests/tests/fail/derive/queryable_type_mismatch.stderr +++ b/diesel_compile_tests/tests/fail/derive/queryable_type_mismatch.stderr @@ -2,10 +2,11 @@ error[E0277]: the trait bound `(diesel::sql_types::Integer, diesel::sql_types::T --> tests/fail/derive/queryable_type_mismatch.rs:59:54 | 59 | let _ = users::table.load::(conn); - | ---- ^^^^ the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)`, which is required by `users::table: LoadQuery<'_, _, UserWithToFewFields>` + | ---- ^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)` = note: this is a mismatch between what your query returns and what your type expects the query to return = note: the fields in your struct need to match the fields returned by your query in count, order and type = note: consider using `#[derive(Selectable)]` or #[derive(QueryableByName)] + `#[diesel(check_for_backend(_))]` @@ -34,10 +35,11 @@ error[E0277]: the trait bound `(diesel::sql_types::Integer, diesel::sql_types::T --> tests/fail/derive/queryable_type_mismatch.rs:61:55 | 61 | let _ = users::table.load::(conn); - | ---- ^^^^ the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)`, which is required by `users::table: LoadQuery<'_, _, UserWithToManyFields>` + | ---- ^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)` = note: this is a mismatch between what your query returns and what your type expects the query to return = note: the fields in your struct need to match the fields returned by your query in count, order and type = note: consider using `#[derive(Selectable)]` or #[derive(QueryableByName)] + `#[diesel(check_for_backend(_))]` @@ -66,10 +68,11 @@ error[E0277]: the trait bound `(diesel::sql_types::Integer, diesel::sql_types::T --> tests/fail/derive/queryable_type_mismatch.rs:63:49 | 63 | let _ = users::table.load::(conn); - | ---- ^^^^ the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)`, which is required by `users::table: LoadQuery<'_, _, UserWrongOrder>` + | ---- ^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)` = note: this is a mismatch between what your query returns and what your type expects the query to return = note: the fields in your struct need to match the fields returned by your query in count, order and type = note: consider using `#[derive(Selectable)]` or #[derive(QueryableByName)] + `#[diesel(check_for_backend(_))]` @@ -98,10 +101,11 @@ error[E0277]: the trait bound `(diesel::sql_types::Integer, diesel::sql_types::T --> tests/fail/derive/queryable_type_mismatch.rs:65:51 | 65 | let _ = users::table.load::(conn); - | ---- ^^^^ the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)`, which is required by `users::table: LoadQuery<'_, _, UserTypeMismatch>` + | ---- ^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `load_dsl::private::CompatibleType` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text, diesel::sql_types::Nullable)` = note: this is a mismatch between what your query returns and what your type expects the query to return = note: the fields in your struct need to match the fields returned by your query in count, order and type = note: consider using `#[derive(Selectable)]` or #[derive(QueryableByName)] + `#[diesel(check_for_backend(_))]` diff --git a/diesel_compile_tests/tests/fail/distinct_on_allows_only_fields_of_table.stderr b/diesel_compile_tests/tests/fail/distinct_on_allows_only_fields_of_table.stderr index e2cb81d218e7..ae85e8362073 100644 --- a/diesel_compile_tests/tests/fail/distinct_on_allows_only_fields_of_table.stderr +++ b/diesel_compile_tests/tests/fail/distinct_on_allows_only_fields_of_table.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/distinct_on_allows_only_fields_of_table.rs:26:22 | 26 | .distinct_on(posts::id) - | ----------- ^^^^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id`, which is required by `users::table: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^ the trait `SelectableExpression` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -29,7 +29,7 @@ error[E0277]: Cannot select `users::columns::name` from `posts::table` --> tests/fail/distinct_on_allows_only_fields_of_table.rs:30:10 | 30 | .distinct_on((posts::name, users::name)) - | ^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `users::columns::name`, which is required by `posts::table: DistinctOnDsl<_>` + | ^^^^^^^^^^^ the trait `SelectableExpression` is not implemented for `users::columns::name` | = note: `users::columns::name` is no valid selection for `posts::table` = help: the following other types implement trait `SelectableExpression`: @@ -47,7 +47,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/distinct_on_allows_only_fields_of_table.rs:30:10 | 30 | .distinct_on((posts::name, users::name)) - | ^^^^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^^^^ expected `Once`, found `Never` | note: required for `users::columns::name` to implement `AppearsOnTable` --> tests/fail/distinct_on_allows_only_fields_of_table.rs:8:9 diff --git a/diesel_compile_tests/tests/fail/distinct_on_clause_only_supported_for_pg.stderr b/diesel_compile_tests/tests/fail/distinct_on_clause_only_supported_for_pg.stderr index f0551b9e571c..c610935e84f4 100644 --- a/diesel_compile_tests/tests/fail/distinct_on_clause_only_supported_for_pg.stderr +++ b/diesel_compile_tests/tests/fail/distinct_on_clause_only_supported_for_pg.stderr @@ -2,13 +2,14 @@ error[E0277]: `DistinctOnClause` is no valid SQL fragment for the --> tests/fail/distinct_on_clause_only_supported_for_pg.rs:16:41 | 16 | users.distinct_on(name).get_results(&mut sqlite_connection); - | ----------- ^^^^^^^^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `DistinctOnClause`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, DistinctOnClause>: LoadQuery<'_, _, _>` + | ----------- ^^^^^^^^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `DistinctOnClause` | | | required by a bound introduced by this call | = note: this usually means that the `Sqlite` database system does not support this SQL syntax - = help: the trait `QueryFragment` is implemented for `DistinctOnClause` + = help: the trait `QueryFragment` is not implemented for `DistinctOnClause` + but trait `QueryFragment` is implemented for it = help: for that trait implementation, expected `Pg`, found `Sqlite` = note: required for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, DistinctOnClause>` to implement `QueryFragment` = note: 1 redundant requirement hidden @@ -27,13 +28,14 @@ error[E0277]: `DistinctOnClause` is no valid SQL fragment for the --> tests/fail/distinct_on_clause_only_supported_for_pg.rs:20:41 | 20 | users.distinct_on(name).get_results(&mut mysql_connection); - | ----------- ^^^^^^^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `DistinctOnClause`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, DistinctOnClause>: LoadQuery<'_, _, _>` + | ----------- ^^^^^^^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `DistinctOnClause` | | | required by a bound introduced by this call | = note: this usually means that the `Mysql` database system does not support this SQL syntax - = help: the trait `QueryFragment` is implemented for `DistinctOnClause` + = help: the trait `QueryFragment` is not implemented for `DistinctOnClause` + but trait `QueryFragment` is implemented for it = help: for that trait implementation, expected `Pg`, found `Mysql` = note: required for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, DistinctOnClause>` to implement `QueryFragment` = note: 1 redundant requirement hidden diff --git a/diesel_compile_tests/tests/fail/distinct_on_requires_matching_order_clause.stderr b/diesel_compile_tests/tests/fail/distinct_on_requires_matching_order_clause.stderr index c7a38a7cda8a..c1c7555351be 100644 --- a/diesel_compile_tests/tests/fail/distinct_on_requires_matching_order_clause.stderr +++ b/diesel_compile_tests/tests/fail/distinct_on_requires_matching_order_clause.stderr @@ -2,10 +2,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:113:58 | 113 | let _ = users::table.order_by(users::id).distinct_on(users::name); - | ----------- ^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -30,10 +31,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:117:73 | 117 | let _ = users::table.order_by((users::id, users::name)).distinct_on(users::name); - | ----------- ^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -58,10 +60,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:123:22 | 123 | .distinct_on(users::name); - | ----------- ^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -86,10 +89,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:127:60 | 127 | let _ = users::table.distinct_on(users::name).order_by(users::id); - | -------- ^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, DistinctOnClause>: OrderDsl<_>` + | -------- ^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -114,10 +118,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:130:58 | 130 | let _ = users::table.order_by(users::id).distinct_on(users::name).into_boxed(); - | ----------- ^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -142,10 +147,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:136:22 | 136 | .distinct_on(users::name) - | ----------- ^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -170,10 +176,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:143:22 | 143 | .distinct_on((users::name, users::id)) - | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -198,10 +205,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:150:22 | 150 | .distinct_on((users::name, users::id)) - | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -226,10 +234,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:157:22 | 157 | .distinct_on(users::name) - | ----------- ^^^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>>: DistinctOnDsl<_>` + | ----------- ^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause<(columns::id, columns::name)>` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` @@ -254,10 +263,11 @@ error[E0277]: the trait bound `diesel::query_builder::order_clause::OrderClause< --> tests/fail/distinct_on_requires_matching_order_clause.rs:164:19 | 164 | .order_by(users::id) - | -------- ^^^^^^^^^ the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, DistinctOnClause>: OrderDsl<_>` + | -------- ^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `query_dsl::order_dsl::ValidOrderingForDistinct>` is not implemented for `diesel::query_builder::order_clause::OrderClause` = help: the following other types implement trait `query_dsl::order_dsl::ValidOrderingForDistinct`: `diesel::query_builder::order_clause::OrderClause<(T,)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` `diesel::query_builder::order_clause::OrderClause<(T0, T1)>` implements `query_dsl::order_dsl::ValidOrderingForDistinct>` diff --git a/diesel_compile_tests/tests/fail/eq_any_is_nullable.stderr b/diesel_compile_tests/tests/fail/eq_any_is_nullable.stderr index bbd1ec623ae7..064ac44e29f3 100644 --- a/diesel_compile_tests/tests/fail/eq_any_is_nullable.stderr +++ b/diesel_compile_tests/tests/fail/eq_any_is_nullable.stderr @@ -2,7 +2,7 @@ error[E0277]: cannot deserialize a value of the database type `diesel::sql_types --> tests/fail/eq_any_is_nullable.rs:18:15 | 18 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `FromSql, Pg>` is not implemented for `bool`, which is required by `SelectStatement, diesel::query_builder::select_clause::SelectClause, &str>>>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `FromSql, Pg>` is not implemented for `bool` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/exists_can_only_take_subselects.stderr b/diesel_compile_tests/tests/fail/exists_can_only_take_subselects.stderr index 3faaae1c0278..a791733643ca 100644 --- a/diesel_compile_tests/tests/fail/exists_can_only_take_subselects.stderr +++ b/diesel_compile_tests/tests/fail/exists_can_only_take_subselects.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `bool: SelectQuery` is not satisfied --> tests/fail/exists_can_only_take_subselects.rs:23:18 | 23 | users::table.filter(exists(true)); - | ^^^^^^ the trait `SelectQuery` is not implemented for `bool`, which is required by `SelectStatement>: FilterDsl<_>` + | ^^^^^^ the trait `SelectQuery` is not implemented for `bool` | = help: the following other types implement trait `SelectQuery`: BoxedSelectStatement<'_, ST, QS, DB, GB> @@ -17,7 +17,7 @@ error[E0277]: the trait bound `users::columns::id: SelectQuery` is not satisfied --> tests/fail/exists_can_only_take_subselects.rs:24:18 | 24 | users::table.filter(exists(users::id)); - | ^^^^^^ the trait `SelectQuery` is not implemented for `users::columns::id`, which is required by `SelectStatement>: FilterDsl<_>` + | ^^^^^^ the trait `SelectQuery` is not implemented for `users::columns::id` | = help: the following other types implement trait `SelectQuery`: BoxedSelectStatement<'_, ST, QS, DB, GB> diff --git a/diesel_compile_tests/tests/fail/expressions_can_only_be_compared_for_equality_to_expressions_of_same_type.stderr b/diesel_compile_tests/tests/fail/expressions_can_only_be_compared_for_equality_to_expressions_of_same_type.stderr index 09a30309ccba..52f3ec50eb59 100644 --- a/diesel_compile_tests/tests/fail/expressions_can_only_be_compared_for_equality_to_expressions_of_same_type.stderr +++ b/diesel_compile_tests/tests/fail/expressions_can_only_be_compared_for_equality_to_expressions_of_same_type.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `str: diesel::Expression` is not satisfied --> tests/fail/expressions_can_only_be_compared_for_equality_to_expressions_of_same_type.rs:15:19 | 15 | let pred = id.eq("string"); - | ^^ the trait `diesel::Expression` is not implemented for `str`, which is required by `&str: AsExpression` + | ^^ the trait `diesel::Expression` is not implemented for `str` | = help: the following other types implement trait `diesel::Expression`: &T @@ -23,7 +23,7 @@ error[E0271]: type mismatch resolving `::SqlType == Integer` 16 | let pred = id.eq(name); | ^^ type mismatch resolving `::SqlType == Integer` | -note: expected this to be `diesel::sql_types::Text` +note: expected this to be `diesel::sql_types::Integer` --> tests/fail/expressions_can_only_be_compared_for_equality_to_expressions_of_same_type.rs:8:17 | 8 | name -> VarChar, diff --git a/diesel_compile_tests/tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.stderr b/diesel_compile_tests/tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.stderr index e25deb19d009..d576a39b9c14 100644 --- a/diesel_compile_tests/tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.stderr +++ b/diesel_compile_tests/tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.stderr @@ -30,7 +30,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.rs:36:10 | 36 | .filter(posts::id.eq(1)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable` --> tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.rs:15:9 @@ -46,8 +46,9 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.rs:39:10 | 39 | .into_boxed::(); - | ^^^^^^^^^^ the trait `BoxedDsl<'_, Pg>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause>>>>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `BoxedDsl<'_, Pg>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause>>>>` = help: the following other types implement trait `BoxedDsl<'a, DB>`: SelectStatement, S, D, W, O, LOf, G, H> SelectStatement @@ -84,7 +85,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.rs:47:10 | 47 | .filter(users::name.eq(posts::title)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::title` to implement `AppearsOnTable` --> tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.rs:16:9 @@ -100,8 +101,9 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/filter_cannot_take_comparison_for_columns_from_another_table.rs:51:10 | 51 | .into_boxed::(); - | ^^^^^^^^^^ the trait `BoxedDsl<'_, Pg>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause>>>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `BoxedDsl<'_, Pg>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause>>>` = help: the following other types implement trait `BoxedDsl<'a, DB>`: SelectStatement, S, D, W, O, LOf, G, H> SelectStatement diff --git a/diesel_compile_tests/tests/fail/filter_requires_bool_nonaggregate_expression.stderr b/diesel_compile_tests/tests/fail/filter_requires_bool_nonaggregate_expression.stderr index 825edf3a1dea..3006cc01fce7 100644 --- a/diesel_compile_tests/tests/fail/filter_requires_bool_nonaggregate_expression.stderr +++ b/diesel_compile_tests/tests/fail/filter_requires_bool_nonaggregate_expression.stderr @@ -2,7 +2,7 @@ error[E0277]: `diesel::sql_types::Text` is neither `diesel::sql_types::Bool` nor --> tests/fail/filter_requires_bool_nonaggregate_expression.rs:15:33 | 15 | let _ = users::table.filter(users::name); - | ------ ^^^^^^^^^^^ the trait `BoolOrNullableBool` is not implemented for `diesel::sql_types::Text`, which is required by `users::table: FilterDsl<_>` + | ------ ^^^^^^^^^^^ the trait `BoolOrNullableBool` is not implemented for `diesel::sql_types::Text` | | | required by a bound introduced by this call | @@ -26,7 +26,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::Yes: MixedAggre --> tests/fail/filter_requires_bool_nonaggregate_expression.rs:16:26 | 16 | let _ = users::table.filter(sum(users::id).eq(1)); - | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::Yes`, which is required by `SelectStatement>: FilterDsl<_>` + | ^^^^^^ the trait `MixedAggregates` is not implemented for `diesel::expression::is_aggregate::Yes` | = help: the following other types implement trait `MixedAggregates`: `diesel::expression::is_aggregate::Yes` implements `MixedAggregates` diff --git a/diesel_compile_tests/tests/fail/find_requires_correct_type.stderr b/diesel_compile_tests/tests/fail/find_requires_correct_type.stderr index bcf4f9730272..82cbd790354d 100644 --- a/diesel_compile_tests/tests/fail/find_requires_correct_type.stderr +++ b/diesel_compile_tests/tests/fail/find_requires_correct_type.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `str: diesel::Expression` is not satisfied --> tests/fail/find_requires_correct_type.rs:20:28 | 20 | int_primary_key::table.find("1"); - | ^^^^ the trait `diesel::Expression` is not implemented for `str`, which is required by `SelectStatement>: FilterDsl>>` + | ^^^^ the trait `diesel::Expression` is not implemented for `str` | = help: the following other types implement trait `diesel::Expression`: &T @@ -23,7 +23,7 @@ error[E0277]: the trait bound `str: ValidGrouping<()>` is not satisfied --> tests/fail/find_requires_correct_type.rs:20:28 | 20 | int_primary_key::table.find("1"); - | ^^^^ the trait `ValidGrouping<()>` is not implemented for `str`, which is required by `SelectStatement>: FilterDsl>>` + | ^^^^ the trait `ValidGrouping<()>` is not implemented for `str` | = help: the following other types implement trait `ValidGrouping`: `&T` implements `ValidGrouping` @@ -45,7 +45,7 @@ error[E0277]: the trait bound `{integer}: diesel::Expression` is not satisfied --> tests/fail/find_requires_correct_type.rs:22:36 | 22 | string_primary_key::table.find(1); - | ---- ^ the trait `diesel::Expression` is not implemented for `{integer}`, which is required by `string_primary_key::table: FindDsl<_>` + | ---- ^ the trait `diesel::Expression` is not implemented for `{integer}` | | | required by a bound introduced by this call | @@ -79,7 +79,7 @@ error[E0277]: the trait bound `{integer}: ValidGrouping<()>` is not satisfied --> tests/fail/find_requires_correct_type.rs:22:36 | 22 | string_primary_key::table.find(1); - | ---- ^ the trait `ValidGrouping<()>` is not implemented for `{integer}`, which is required by `string_primary_key::table: FindDsl<_>` + | ---- ^ the trait `ValidGrouping<()>` is not implemented for `{integer}` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/having_cant_be_used_without_group_by.stderr b/diesel_compile_tests/tests/fail/having_cant_be_used_without_group_by.stderr index 5f22d55ae55d..6ea848bb65d2 100644 --- a/diesel_compile_tests/tests/fail/having_cant_be_used_without_group_by.stderr +++ b/diesel_compile_tests/tests/fail/having_cant_be_used_without_group_by.stderr @@ -2,16 +2,17 @@ error[E0277]: the trait bound `SelectStatement, diesel: --> tests/fail/having_cant_be_used_without_group_by.rs:26:38 | 26 | users::table.select(users::name).having(users::id.gt(1)).load(&mut conn); - | ^^^^^^ the trait `HavingDsl<_>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause>` + | ^^^^^^ unsatisfied trait bound | - = help: the trait `HavingDsl<_>` is implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause, diesel::query_builder::group_by_clause::GroupByClause<_>, _>` + = help: the trait `HavingDsl<_>` is not implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::NoLockingClause>` + but it is implemented for `SelectStatement, diesel::query_builder::select_clause::SelectClause, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause, diesel::query_builder::group_by_clause::GroupByClause<_>, _, diesel::query_builder::locking_clause::NoLockingClause>` = help: for that trait implementation, expected `diesel::query_builder::group_by_clause::GroupByClause<_>`, found `diesel::query_builder::group_by_clause::NoGroupByClause` error[E0277]: the trait bound `(): diesel::Expression` is not satisfied --> tests/fail/having_cant_be_used_without_group_by.rs:28:31 | 28 | users::table.into_boxed().having(users::id.gt(1)).load(&mut conn); - | ^^^^^^ the trait `diesel::Expression` is not implemented for `()`, which is required by `BoxedSelectStatement<'_, (diesel::sql_types::Integer, diesel::sql_types::Text), FromClause, _>: HavingDsl<_>` + | ^^^^^^ the trait `diesel::Expression` is not implemented for `()` | = help: the following other types implement trait `diesel::Expression`: (T0, T1) @@ -29,7 +30,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/having_cant_be_used_without_group_by.rs:30:58 | 30 | users::table.select(users::name).group_by(users::id).having(posts::id.eq(42)).load(&mut conn); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable` --> tests/fail/having_cant_be_used_without_group_by.rs:14:9 @@ -45,7 +46,7 @@ error[E0271]: type mismatch resolving `
>::Co --> tests/fail/having_cant_be_used_without_group_by.rs:32:71 | 32 | users::table.select(users::name).group_by(users::id).into_boxed().having(posts::id.eq(42)).load(&mut conn); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable` --> tests/fail/having_cant_be_used_without_group_by.rs:14:9 diff --git a/diesel_compile_tests/tests/fail/ilike_only_compiles_for_pg.stderr b/diesel_compile_tests/tests/fail/ilike_only_compiles_for_pg.stderr index d0b818a3c861..eb62156d1ee5 100644 --- a/diesel_compile_tests/tests/fail/ilike_only_compiles_for_pg.stderr +++ b/diesel_compile_tests/tests/fail/ilike_only_compiles_for_pg.stderr @@ -2,13 +2,14 @@ error[E0277]: `diesel::pg::expression::operators::ILike tests/fail/ilike_only_compiles_for_pg.rs:21:61 | 21 | users::table.filter(users::name.ilike("%hey%")).execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `diesel::pg::expression::operators::ILike>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause>>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | = note: this usually means that the `Sqlite` database system does not support this SQL syntax - = help: the trait `QueryFragment` is implemented for `diesel::pg::expression::operators::ILike>` + = help: the trait `QueryFragment` is not implemented for `diesel::pg::expression::operators::ILike>` + but trait `QueryFragment` is implemented for it = help: for that trait implementation, expected `Pg`, found `Sqlite` = note: required for `diesel::expression::grouped::Grouped>>` to implement `QueryFragment` = note: 3 redundant requirements hidden @@ -27,13 +28,14 @@ error[E0277]: `diesel::pg::expression::operators::ILike tests/fail/ilike_only_compiles_for_pg.rs:24:61 | 24 | users::table.filter(users::name.ilike("%hey%")).execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment` is not implemented for `diesel::pg::expression::operators::ILike>`, which is required by `SelectStatement, diesel::query_builder::select_clause::DefaultSelectClause>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause>>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | = note: this usually means that the `Mysql` database system does not support this SQL syntax - = help: the trait `QueryFragment` is implemented for `diesel::pg::expression::operators::ILike>` + = help: the trait `QueryFragment` is not implemented for `diesel::pg::expression::operators::ILike>` + but trait `QueryFragment` is implemented for it = help: for that trait implementation, expected `Pg`, found `Mysql` = note: required for `diesel::expression::grouped::Grouped>>` to implement `QueryFragment` = note: 3 redundant requirements hidden diff --git a/diesel_compile_tests/tests/fail/insert_cannot_reference_columns_from_other_table.stderr b/diesel_compile_tests/tests/fail/insert_cannot_reference_columns_from_other_table.stderr index ecd14ed1c032..338b4c30cafc 100644 --- a/diesel_compile_tests/tests/fail/insert_cannot_reference_columns_from_other_table.stderr +++ b/diesel_compile_tests/tests/fail/insert_cannot_reference_columns_from_other_table.stderr @@ -47,18 +47,9 @@ error[E0271]: type mismatch resolving `<&Grouped>> as --> tests/fail/insert_cannot_reference_columns_from_other_table.rs:25:10 | 25 | .values(&(posts::id.eq(1), users::id.eq(2))); - | ^^^^^^ expected `posts::table`, found `users::table` + | ^^^^^^ expected `users::table`, found `posts::table` | - = note: `users::table` and `posts::table` have similar names, but are actually distinct types -note: `users::table` is defined in module `crate::users` of the current crate - --> tests/fail/insert_cannot_reference_columns_from_other_table.rs:6:1 - | -6 | / table! { -7 | | users { -8 | | id -> Integer, -9 | | } -10 | | } - | |_^ + = note: `posts::table` and `users::table` have similar names, but are actually distinct types note: `posts::table` is defined in module `crate::posts` of the current crate --> tests/fail/insert_cannot_reference_columns_from_other_table.rs:12:1 | @@ -68,6 +59,15 @@ note: `posts::table` is defined in module `crate::posts` of the current crate 15 | | } 16 | | } | |_^ +note: `users::table` is defined in module `crate::users` of the current crate + --> tests/fail/insert_cannot_reference_columns_from_other_table.rs:6:1 + | +6 | / table! { +7 | | users { +8 | | id -> Integer, +9 | | } +10 | | } + | |_^ = note: required for `(&diesel::expression::grouped::Grouped>>, &diesel::expression::grouped::Grouped>>)` to implement `diesel::Insertable` = note: this error originates in the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/diesel_compile_tests/tests/fail/insert_from_select_cant_be_used_with_tuples_or_arrays.stderr b/diesel_compile_tests/tests/fail/insert_from_select_cant_be_used_with_tuples_or_arrays.stderr index 6fdf906880e1..db935337f169 100644 --- a/diesel_compile_tests/tests/fail/insert_from_select_cant_be_used_with_tuples_or_arrays.stderr +++ b/diesel_compile_tests/tests/fail/insert_from_select_cant_be_used_with_tuples_or_arrays.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `users::table: UndecoratedInsertRecord tests/fail/insert_from_select_cant_be_used_with_tuples_or_arrays.rs:34:10 | 34 | .values(vec![users, users]); - | ^^^^^^ the trait `UndecoratedInsertRecord` is not implemented for `users::table`, which is required by `Vec: diesel::Insertable` + | ^^^^^^ the trait `UndecoratedInsertRecord` is not implemented for `users::table` | = help: the following other types implement trait `UndecoratedInsertRecord
`: `&T` implements `UndecoratedInsertRecord` @@ -20,10 +20,10 @@ error[E0271]: type mismatch resolving `
>::Values == V --> tests/fail/insert_from_select_cant_be_used_with_tuples_or_arrays.rs:37:10 | 37 | .values((users, users)); - | ^^^^^^ expected `InsertFromSelect, ...>`, found `ValuesClause<_, table>` + | ^^^^^^ expected `ValuesClause<_, table>`, found `InsertFromSelect, ...>` | - = note: expected struct `diesel::query_builder::insert_statement::insert_from_select::InsertFromSelect>, (posts::columns::user_id, posts::columns::title, posts::columns::body)>` - found struct `diesel::query_builder::insert_statement::ValuesClause<_, posts::table>` + = note: expected struct `diesel::query_builder::insert_statement::ValuesClause<_, posts::table>` + found struct `diesel::query_builder::insert_statement::insert_from_select::InsertFromSelect>, (posts::columns::user_id, posts::columns::title, posts::columns::body)>` = note: required for `(users::table, users::table)` to implement `diesel::Insertable` error[E0271]: type mismatch resolving `
>::Values == ValuesClause<_, table>` diff --git a/diesel_compile_tests/tests/fail/insert_from_select_requires_valid_column_list.stderr b/diesel_compile_tests/tests/fail/insert_from_select_requires_valid_column_list.stderr index 62f8b18144c6..7221d4fc5798 100644 --- a/diesel_compile_tests/tests/fail/insert_from_select_requires_valid_column_list.stderr +++ b/diesel_compile_tests/tests/fail/insert_from_select_requires_valid_column_list.stderr @@ -67,7 +67,7 @@ error[E0271]: type mismatch resolving `::SqlType == Integer 68 | .into_columns(title); | ^^^^^^^^^^^^ type mismatch resolving `<title as Expression>::SqlType == Integer` | -note: expected this to be `diesel::sql_types::Text` +note: expected this to be `diesel::sql_types::Integer` --> tests/fail/insert_from_select_requires_valid_column_list.rs:17:18 | 17 | title -> Text, @@ -77,10 +77,11 @@ error[E0277]: the trait bound `(comments::columns::post_id, posts::columns::titl --> tests/fail/insert_from_select_requires_valid_column_list.rs:73:23 | 73 | .into_columns((comments::post_id, title)); - | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::query_builder::insert_statement::column_list::ColumnList` is not implemented for `(comments::columns::post_id, posts::columns::title)` + | ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `diesel::query_builder::insert_statement::column_list::ColumnList` is not implemented for `(comments::columns::post_id, posts::columns::title)` = help: the following other types implement trait `diesel::query_builder::insert_statement::column_list::ColumnList`: (T0, T1) (T0, T1, T2) @@ -186,16 +187,16 @@ error[E0271]: type mismatch resolving `<(user_id, body) as Expression>::SqlType --> tests/fail/insert_from_select_requires_valid_column_list.rs:83:10 | 83 | .into_columns((user_id, body)); - | ^^^^^^^^^^^^ expected `(Integer, Nullable<Text>)`, found `(Integer, Text)` + | ^^^^^^^^^^^^ expected `(Integer, Text)`, found `(Integer, Nullable<Text>)` | - = note: expected tuple `(diesel::sql_types::Integer, diesel::sql_types::Nullable<diesel::sql_types::Text>)` - found tuple `(diesel::sql_types::Integer, diesel::sql_types::Text)` + = note: expected tuple `(diesel::sql_types::Integer, diesel::sql_types::Text)` + found tuple `(diesel::sql_types::Integer, diesel::sql_types::Nullable<diesel::sql_types::Text>)` error[E0271]: type mismatch resolving `<(title, body) as Expression>::SqlType == (Integer, Text)` --> tests/fail/insert_from_select_requires_valid_column_list.rs:88:10 | 88 | .into_columns((title, body)); - | ^^^^^^^^^^^^ expected `(Text, Nullable<Text>)`, found `(Integer, Text)` + | ^^^^^^^^^^^^ expected `(Integer, Text)`, found `(Text, Nullable<Text>)` | - = note: expected tuple `(diesel::sql_types::Text, diesel::sql_types::Nullable<diesel::sql_types::Text>)` - found tuple `(diesel::sql_types::Integer, diesel::sql_types::Text)` + = note: expected tuple `(diesel::sql_types::Integer, diesel::sql_types::Text)` + found tuple `(diesel::sql_types::Text, diesel::sql_types::Nullable<diesel::sql_types::Text>)` diff --git a/diesel_compile_tests/tests/fail/insert_from_select_with_on_conflict_without_where_clause_not_supported_on_sqlite.stderr b/diesel_compile_tests/tests/fail/insert_from_select_with_on_conflict_without_where_clause_not_supported_on_sqlite.stderr index 8cc3727e2d8f..e36638ba958c 100644 --- a/diesel_compile_tests/tests/fail/insert_from_select_with_on_conflict_without_where_clause_not_supported_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/insert_from_select_with_on_conflict_without_where_clause_not_supported_on_sqlite.stderr @@ -2,10 +2,11 @@ error[E0277]: `diesel::query_builder::upsert::into_conflict_clause::OnConflictSe --> tests/fail/insert_from_select_with_on_conflict_without_where_clause_not_supported_on_sqlite.rs:19:18 | 19 | .execute(&mut connection) - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::upsert::into_conflict_clause::OnConflictSelectWrapper<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::id>>>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::insert_from_select::InsertFromSelect<diesel::query_builder::upsert::into_conflict_clause::OnConflictSelectWrapper<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::id>>>, columns::id>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<columns::id>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::upsert::into_conflict_clause::OnConflictSelectWrapper<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::id>>>` = note: this usually means that the `Sqlite` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: diff --git a/diesel_compile_tests/tests/fail/insert_on_conflict_do_update_where_not_supported_on_sqlite.stderr b/diesel_compile_tests/tests/fail/insert_on_conflict_do_update_where_not_supported_on_sqlite.stderr index f465ec672532..62731a448c6e 100644 --- a/diesel_compile_tests/tests/fail/insert_on_conflict_do_update_where_not_supported_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/insert_on_conflict_do_update_where_not_supported_on_sqlite.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `sqlite::backend::SqliteOnConflictClause: Supports --> tests/fail/insert_on_conflict_do_update_where_not_supported_on_sqlite.rs:21:18 | 21 | .execute(&mut connection) - | ------- ^^^^^^^^^^^^^^^ the trait `SupportsOnConflictClauseWhere` is not implemented for `sqlite::backend::SqliteOnConflictClause`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<columns::id>, diesel::query_builder::upsert::on_conflict_actions::DoUpdate<diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<columns::id>, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, users::table>, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ the trait `SupportsOnConflictClauseWhere` is not implemented for `sqlite::backend::SqliteOnConflictClause` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/insert_requires_value_of_same_type_as_column.stderr b/diesel_compile_tests/tests/fail/insert_requires_value_of_same_type_as_column.stderr index 3e18614fe51d..e75a21f96905 100644 --- a/diesel_compile_tests/tests/fail/insert_requires_value_of_same_type_as_column.stderr +++ b/diesel_compile_tests/tests/fail/insert_requires_value_of_same_type_as_column.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `{integer}: diesel::Expression` is not satisfied --> tests/fail/insert_requires_value_of_same_type_as_column.rs:19:23 | 19 | .values(&name.eq(1)); - | ^^ the trait `diesel::Expression` is not implemented for `{integer}`, which is required by `{integer}: AsExpression<diesel::sql_types::Text>` + | ^^ the trait `diesel::Expression` is not implemented for `{integer}` | = help: the following other types implement trait `diesel::Expression`: &T diff --git a/diesel_compile_tests/tests/fail/insert_statement_does_not_support_returning_methods_on_sqlite.stderr b/diesel_compile_tests/tests/fail/insert_statement_does_not_support_returning_methods_on_sqlite.stderr index 8ec793eb6f2b..3748fd7297dc 100644 --- a/diesel_compile_tests/tests/fail/insert_statement_does_not_support_returning_methods_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/insert_statement_does_not_support_returning_methods_on_sqlite.stderr @@ -2,7 +2,7 @@ error[E0277]: `ReturningClause<(columns::id, columns::name)>` is no valid SQL fr --> tests/fail/insert_statement_does_not_support_returning_methods_on_sqlite.rs:29:29 | 29 | .get_result::<User>(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<(columns::id, columns::name)>`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<(DefaultableColumnInsertValue<ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &std::string::String>>>,), users::table>>: LoadQuery<'_, _, User>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<(columns::id, columns::name)>` | | | required by a bound introduced by this call | @@ -29,7 +29,7 @@ error[E0277]: `ReturningClause<columns::name>` is no valid SQL fragment for the --> tests/fail/insert_statement_does_not_support_returning_methods_on_sqlite.rs:34:31 | 34 | .get_result::<String>(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<columns::name>`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<(DefaultableColumnInsertValue<ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &std::string::String>>>,), users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<columns::name>>: LoadQuery<'_, _, std::string::String>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<columns::name>` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/invalid_group_by.stderr b/diesel_compile_tests/tests/fail/invalid_group_by.stderr index 6c80d7c3ff72..c65d978566f1 100644 --- a/diesel_compile_tests/tests/fail/invalid_group_by.stderr +++ b/diesel_compile_tests/tests/fail/invalid_group_by.stderr @@ -2,7 +2,7 @@ error[E0271]: type mismatch resolving `<FromClause<table> as AppearsInFromClause --> tests/fail/invalid_group_by.rs:27:10 | 27 | .group_by(posts::id) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<FromClause<users::table>>` --> tests/fail/invalid_group_by.rs:15:9 @@ -18,7 +18,7 @@ error[E0271]: type mismatch resolving `<id as IsContainedInGroupBy<id>>::Output 28 | .select(users::id) | ^^^^^^ type mismatch resolving `<id as IsContainedInGroupBy<id>>::Output == Yes` | -note: expected this to be `diesel::expression::is_contained_in_group_by::No` +note: expected this to be `diesel::expression::is_contained_in_group_by::Yes` --> tests/fail/invalid_group_by.rs:15:9 | 15 | id -> Integer, @@ -35,7 +35,7 @@ error[E0271]: type mismatch resolving `<FromClause<table> as AppearsInFromClause --> tests/fail/invalid_group_by.rs:35:10 | 35 | .group_by(posts::id) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<FromClause<users::table>>` --> tests/fail/invalid_group_by.rs:15:9 @@ -49,7 +49,7 @@ error[E0271]: type mismatch resolving `<FromClause<Alias<user1>> as AppearsInFro --> tests/fail/invalid_group_by.rs:43:10 | 43 | .group_by(posts::id) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<FromClause<Alias<user1>>>` --> tests/fail/invalid_group_by.rs:15:9 @@ -63,7 +63,7 @@ error[E0277]: the trait bound `AliasedField<user1, users::columns::id>: ValidGro --> tests/fail/invalid_group_by.rs:44:17 | 44 | .select(user_alias.field(users::id)) - | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ValidGrouping<posts::columns::id>` is not implemented for `AliasedField<user1, users::columns::id>`, which is required by `SelectStatement<FromClause<Alias<user1>>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<Alias<user1>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<posts::columns::id>>: SelectDsl<_>` + | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ValidGrouping<posts::columns::id>` is not implemented for `AliasedField<user1, users::columns::id>` | | | required by a bound introduced by this call | @@ -84,7 +84,7 @@ error[E0271]: type mismatch resolving `<FromClause<table> as AppearsInFromClause --> tests/fail/invalid_group_by.rs:49:10 | 49 | .group_by(post_alias.field(posts::id)) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | = note: required for `AliasedField<post1, posts::columns::id>` to implement `AppearsOnTable<FromClause<users::table>>` = note: required for `SelectStatement<FromClause<users::table>>` to implement `GroupByDsl<AliasedField<post1, posts::columns::id>>` @@ -93,7 +93,7 @@ error[E0277]: the trait bound `AliasedField<post1, posts::columns::id>: IsContai --> tests/fail/invalid_group_by.rs:50:10 | 50 | .select(users::id) - | ^^^^^^ the trait `IsContainedInGroupBy<users::columns::id>` is not implemented for `AliasedField<post1, posts::columns::id>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<AliasedField<post1, posts::columns::id>>>: SelectDsl<_>` + | ^^^^^^ the trait `IsContainedInGroupBy<users::columns::id>` is not implemented for `AliasedField<post1, posts::columns::id>` | = help: the following other types implement trait `IsContainedInGroupBy<T>`: `(T0, T1)` implements `IsContainedInGroupBy<Col>` @@ -116,7 +116,7 @@ error[E0271]: type mismatch resolving `<FromClause<Alias<user1>> as AppearsInFro --> tests/fail/invalid_group_by.rs:55:10 | 55 | .group_by(post_alias.field(posts::id)) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | = note: required for `AliasedField<post1, posts::columns::id>` to implement `AppearsOnTable<FromClause<Alias<user1>>>` = note: required for `SelectStatement<FromClause<Alias<user1>>>` to implement `GroupByDsl<AliasedField<post1, posts::columns::id>>` @@ -125,7 +125,7 @@ error[E0277]: the trait bound `AliasedField<user1, users::columns::id>: ValidGro --> tests/fail/invalid_group_by.rs:56:17 | 56 | .select(user_alias.field(users::id)) - | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ValidGrouping<AliasedField<post1, posts::columns::id>>` is not implemented for `AliasedField<user1, users::columns::id>`, which is required by `SelectStatement<FromClause<Alias<user1>>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<Alias<user1>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<AliasedField<post1, posts::columns::id>>>: SelectDsl<_>` + | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ValidGrouping<AliasedField<post1, posts::columns::id>>` is not implemented for `AliasedField<user1, users::columns::id>` | | | required by a bound introduced by this call | @@ -146,7 +146,7 @@ error[E0271]: type mismatch resolving `<FromClause<Alias<user1>> as AppearsInFro --> tests/fail/invalid_group_by.rs:62:10 | 62 | .group_by(posts::id) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<FromClause<Alias<user1>>>` --> tests/fail/invalid_group_by.rs:15:9 @@ -160,7 +160,7 @@ error[E0271]: type mismatch resolving `<FromClause<table> as AppearsInFromClause --> tests/fail/invalid_group_by.rs:68:10 | 68 | .group_by(post_alias.field(posts::id)) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | = note: required for `AliasedField<post1, posts::columns::id>` to implement `AppearsOnTable<FromClause<users::table>>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<users::columns::id>>` to implement `GroupByDsl<AliasedField<post1, posts::columns::id>>` @@ -169,7 +169,7 @@ error[E0271]: type mismatch resolving `<FromClause<Alias<user1>> as AppearsInFro --> tests/fail/invalid_group_by.rs:74:10 | 74 | .group_by(post_alias.field(posts::id)) - | ^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^ expected `Once`, found `Never` | = note: required for `AliasedField<post1, posts::columns::id>` to implement `AppearsOnTable<FromClause<Alias<user1>>>` = note: required for `SelectStatement<FromClause<Alias<user1>>, diesel::query_builder::select_clause::SelectClause<AliasedField<user1, users::columns::id>>>` to implement `GroupByDsl<AliasedField<post1, posts::columns::id>>` diff --git a/diesel_compile_tests/tests/fail/invalid_joins.stderr b/diesel_compile_tests/tests/fail/invalid_joins.stderr index 8369c06a99f7..b3c0e83b4fc8 100644 --- a/diesel_compile_tests/tests/fail/invalid_joins.stderr +++ b/diesel_compile_tests/tests/fail/invalid_joins.stderr @@ -34,7 +34,7 @@ error[E0271]: type mismatch resolving `<Join<table, SelectStatement<FromClause<J --> tests/fail/invalid_joins.rs:41:26 | 41 | let _ = users::table.inner_join(posts::table.inner_join(users::table)); - | ^^^^^^^^^^ expected `MoreThanOnce`, found `Once` + | ^^^^^^^^^^ expected `Once`, found `MoreThanOnce` | note: required for `users::columns::id` to implement `AppearsOnTable<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, users::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, Inner>>` --> tests/fail/invalid_joins.rs:7:9 @@ -83,7 +83,7 @@ error[E0271]: type mismatch resolving `<Join<table, SelectStatement<FromClause<J --> tests/fail/invalid_joins.rs:44:26 | 44 | let _ = users::table.inner_join(posts::table.inner_join(users::table.on(posts::user_id.eq(users::id)))); - | ^^^^^^^^^^ expected `MoreThanOnce`, found `Once` + | ^^^^^^^^^^ expected `Once`, found `MoreThanOnce` | note: required for `users::columns::id` to implement `AppearsOnTable<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, users::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<posts::columns::user_id, users::columns::id>>>>>, Inner>>` --> tests/fail/invalid_joins.rs:7:9 @@ -132,7 +132,7 @@ error[E0271]: type mismatch resolving `<Join<table, SelectStatement<FromClause<J --> tests/fail/invalid_joins.rs:47:26 | 47 | let _ = users::table.inner_join(posts::table.on(users::id.eq(posts::user_id)).inner_join(users::table)); - | ^^^^^^^^^^ expected `MoreThanOnce`, found `Once` + | ^^^^^^^^^^ expected `Once`, found `MoreThanOnce` | note: required for `users::columns::id` to implement `AppearsOnTable<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, users::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, Inner>>` --> tests/fail/invalid_joins.rs:7:9 @@ -211,7 +211,7 @@ error[E0271]: type mismatch resolving `<Join<table, SelectStatement<FromClause<J --> tests/fail/invalid_joins.rs:58:26 | 58 | let _ = users::table.left_join(posts::table.left_join(users::table)); - | ^^^^^^^^^ expected `MoreThanOnce`, found `Once` + | ^^^^^^^^^ expected `Once`, found `MoreThanOnce` | note: required for `users::columns::id` to implement `AppearsOnTable<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, users::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, LeftOuter>>` --> tests/fail/invalid_joins.rs:7:9 @@ -260,7 +260,7 @@ error[E0271]: type mismatch resolving `<Join<table, SelectStatement<FromClause<J --> tests/fail/invalid_joins.rs:61:26 | 61 | let _ = users::table.left_join(posts::table.left_join(users::table.on(posts::user_id.eq(users::id)))); - | ^^^^^^^^^ expected `MoreThanOnce`, found `Once` + | ^^^^^^^^^ expected `Once`, found `MoreThanOnce` | note: required for `users::columns::id` to implement `AppearsOnTable<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, users::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<posts::columns::user_id, users::columns::id>>>>>, LeftOuter>>` --> tests/fail/invalid_joins.rs:7:9 @@ -309,7 +309,7 @@ error[E0271]: type mismatch resolving `<Join<table, SelectStatement<FromClause<J --> tests/fail/invalid_joins.rs:64:26 | 64 | let _ = users::table.left_join(posts::table.on(users::id.eq(posts::user_id)).left_join(users::table)); - | ^^^^^^^^^ expected `MoreThanOnce`, found `Once` + | ^^^^^^^^^ expected `Once`, found `MoreThanOnce` | note: required for `users::columns::id` to implement `AppearsOnTable<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, users::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, LeftOuter>>` --> tests/fail/invalid_joins.rs:7:9 diff --git a/diesel_compile_tests/tests/fail/join_with_explicit_on_requires_valid_boolean_expression.stderr b/diesel_compile_tests/tests/fail/join_with_explicit_on_requires_valid_boolean_expression.stderr index 5f0d098c01ce..03f3456b4ea4 100644 --- a/diesel_compile_tests/tests/fail/join_with_explicit_on_requires_valid_boolean_expression.stderr +++ b/diesel_compile_tests/tests/fail/join_with_explicit_on_requires_valid_boolean_expression.stderr @@ -2,7 +2,7 @@ error[E0271]: type mismatch resolving `<Join<table, table, Inner> as AppearsInFr --> tests/fail/join_with_explicit_on_requires_valid_boolean_expression.rs:31:26 | 31 | let _ = users::table.inner_join(posts::table.on(users::id.eq(comments::id))); - | ^^^^^^^^^^ expected `Never`, found `Once` + | ^^^^^^^^^^ expected `Once`, found `Never` | note: required for `comments::columns::id` to implement `AppearsOnTable<query_source::joins::Join<users::table, posts::table, Inner>>` --> tests/fail/join_with_explicit_on_requires_valid_boolean_expression.rs:19:9 @@ -19,7 +19,7 @@ error[E0277]: `diesel::sql_types::Integer` is neither `diesel::sql_types::Bool` --> tests/fail/join_with_explicit_on_requires_valid_boolean_expression.rs:33:37 | 33 | let _ = users::table.inner_join(posts::table.on(users::id)); - | ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `BoolOrNullableBool` is not implemented for `diesel::sql_types::Integer`, which is required by `users::table: JoinWithImplicitOnClause<_, Inner>` + | ---------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `BoolOrNullableBool` is not implemented for `diesel::sql_types::Integer` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/mysql_does_not_support_offset_without_limit.stderr b/diesel_compile_tests/tests/fail/mysql_does_not_support_offset_without_limit.stderr index 20c91cef4cab..a92c9dd62440 100644 --- a/diesel_compile_tests/tests/fail/mysql_does_not_support_offset_without_limit.stderr +++ b/diesel_compile_tests/tests/fail/mysql_does_not_support_offset_without_limit.stderr @@ -2,10 +2,11 @@ error[E0277]: `LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression: --> tests/fail/mysql_does_not_support_offset_without_limit.rs:16:57 | 16 | users::table.offset(42).get_result::<(i32, String)>(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql>` is not implemented for `LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>>: LoadQuery<'_, _, (i32, std::string::String)>` + | ---------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Mysql>` is not implemented for `LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>` = note: this usually means that the `Mysql` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: @@ -34,8 +35,9 @@ error[E0277]: the trait bound `LimitOffsetClause<NoLimitClause, OffsetClause<die --> tests/fail/mysql_does_not_support_offset_without_limit.rs:18:29 | 18 | users::table.offset(42).into_boxed().get_result::<(i32, String)>(&mut connection); - | ^^^^^^^^^^ the trait `IntoBoxedClause<'_, Mysql>` is not implemented for `LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>>: BoxedDsl<'_, _>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `IntoBoxedClause<'_, Mysql>` is not implemented for `LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>` = help: the following other types implement trait `IntoBoxedClause<'a, DB>`: `LimitOffsetClause<L, O>` implements `IntoBoxedClause<'_, Pg>` `LimitOffsetClause<LimitClause<L>, NoOffsetClause>` implements `IntoBoxedClause<'_, Mysql>` @@ -51,8 +53,9 @@ error[E0277]: the trait bound `LimitOffsetClause<NoLimitClause, OffsetClause<die --> tests/fail/mysql_does_not_support_offset_without_limit.rs:18:29 | 18 | users::table.offset(42).into_boxed().get_result::<(i32, String)>(&mut connection); - | ^^^^^^^^^^ the trait `IntoBoxedClause<'_, Mysql>` is not implemented for `LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>>: BoxedDsl<'_, _>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `IntoBoxedClause<'_, Mysql>` is not implemented for `LimitOffsetClause<NoLimitClause, OffsetClause<diesel::expression::bound::Bound<BigInt, i64>>>` = help: the following other types implement trait `IntoBoxedClause<'a, DB>`: `LimitOffsetClause<L, O>` implements `IntoBoxedClause<'_, Pg>` `LimitOffsetClause<LimitClause<L>, NoOffsetClause>` implements `IntoBoxedClause<'_, Mysql>` diff --git a/diesel_compile_tests/tests/fail/mysql_on_conflict_tests.stderr b/diesel_compile_tests/tests/fail/mysql_on_conflict_tests.stderr index 5161d88d1061..0bd9ef96a06d 100644 --- a/diesel_compile_tests/tests/fail/mysql_on_conflict_tests.stderr +++ b/diesel_compile_tests/tests/fail/mysql_on_conflict_tests.stderr @@ -2,10 +2,11 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_clause::OnConflictValu --> tests/fail/mysql_on_conflict_tests.rs:43:18 | 43 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<columns::name>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<columns::name>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<columns::name>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>` = note: this usually means that the `Mysql` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: @@ -30,10 +31,11 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_clause::OnConflictValu --> tests/fail/mysql_on_conflict_tests.rs:49:18 | 49 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::id, columns::name)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::id, columns::name)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::id, columns::name)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>` = note: this usually means that the `Mysql` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: @@ -58,10 +60,11 @@ error[E0277]: the trait bound `diesel::query_builder::upsert::on_conflict_target --> tests/fail/mysql_on_conflict_tests.rs:53:22 | 53 | .on_conflict((dsl::DuplicatedKeys, name)) - | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>` + | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>` = help: the following other types implement trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<Table>`: `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(T,)>` implements `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<<T as Column>::Table>` `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(_T, T0)>` implements `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<<_T as Column>::Table>` @@ -85,10 +88,11 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_clause::OnConflictValu --> tests/fail/mysql_on_conflict_tests.rs:55:18 | 55 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>` = note: this usually means that the `Mysql` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: @@ -113,10 +117,11 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_clause::OnConflictValu --> tests/fail/mysql_on_conflict_tests.rs:62:18 | 62 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<SqlLiteral<_>>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<SqlLiteral<_>>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<SqlLiteral<_>>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>` = note: this usually means that the `Mysql` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: @@ -141,10 +146,11 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_clause::OnConflictValu --> tests/fail/mysql_on_conflict_tests.rs:70:18 | 70 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>, diesel::query_builder::upsert::on_conflict_actions::DoUpdate<diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<columns::name>, diesel::query_builder::upsert::on_conflict_actions::Excluded<columns::name>>, users::table>>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>, diesel::query_builder::upsert::on_conflict_actions::DoUpdate<diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<columns::name>, diesel::query_builder::upsert::on_conflict_actions::Excluded<columns::name>>, users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is not implemented for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>, diesel::query_builder::upsert::on_conflict_actions::DoUpdate<diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<columns::name>, diesel::query_builder::upsert::on_conflict_actions::Excluded<columns::name>>, users::table>>` = note: this usually means that the `Mysql` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: @@ -169,13 +175,14 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_target::ConflictTarget --> tests/fail/mysql_on_conflict_tests.rs:79:18 | 79 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>` | | | required by a bound introduced by this call | = note: this usually means that the `Pg` database system does not support this SQL syntax - = help: the trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>` + = help: the trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>` + but trait `QueryFragment<Mysql, mysql::backend::MysqlOnConflictClause>` is implemented for it = note: required for `diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>` to implement `QueryFragment<Pg, pg::backend::PgOnConflictClause>` = note: 2 redundant requirements hidden = note: required for `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<DuplicatedKeys>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>` to implement `QueryFragment<Pg>` @@ -193,10 +200,11 @@ error[E0277]: the trait bound `diesel::query_builder::upsert::on_conflict_target --> tests/fail/mysql_on_conflict_tests.rs:83:22 | 83 | .on_conflict((name, dsl::DuplicatedKeys)) - | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::name, DuplicatedKeys)>` + | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::name, DuplicatedKeys)>` = help: the following other types implement trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<Table>`: `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(T,)>` implements `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<<T as Column>::Table>` `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(_T, T0)>` implements `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<<_T as Column>::Table>` @@ -220,10 +228,11 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_target::ConflictTarget --> tests/fail/mysql_on_conflict_tests.rs:85:18 | 85 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::name, DuplicatedKeys)>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::name, DuplicatedKeys)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(columns::name, DuplicatedKeys)>` = note: this usually means that the `Pg` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: @@ -253,10 +262,11 @@ error[E0277]: the trait bound `diesel::query_builder::upsert::on_conflict_target --> tests/fail/mysql_on_conflict_tests.rs:89:22 | 89 | .on_conflict((dsl::DuplicatedKeys, name)) - | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>` + | ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>` = help: the following other types implement trait `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<Table>`: `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(T,)>` implements `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<<T as Column>::Table>` `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(_T, T0)>` implements `diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<<_T as Column>::Table>` @@ -280,10 +290,11 @@ error[E0277]: `diesel::query_builder::upsert::on_conflict_target::ConflictTarget --> tests/fail/mysql_on_conflict_tests.rs:91:18 | 91 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<diesel::query_builder::insert_statement::ValuesClause<(ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, ColumnInsertValue<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>), users::table>, diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<(DuplicatedKeys, columns::name)>` = note: this usually means that the `Pg` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: diff --git a/diesel_compile_tests/tests/fail/only_only_on_table.stderr b/diesel_compile_tests/tests/fail/only_only_on_table.stderr index 4ed7cb21dcde..2e443ede2abb 100644 --- a/diesel_compile_tests/tests/fail/only_only_on_table.stderr +++ b/diesel_compile_tests/tests/fail/only_only_on_table.stderr @@ -77,11 +77,12 @@ error[E0277]: the trait bound `Only<foo::table>: LoadQuery<'_, diesel::SqliteCon --> tests/fail/only_only_on_table.rs:19:28 | 19 | foo::table.only().load(&mut conn).unwrap(); - | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `Only<foo::table>`, which is required by `Only<foo::table>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `Only<foo::table>` | | | required by a bound introduced by this call | - = help: the trait `QueryFragment<Pg>` is implemented for `Only<foo::table>` + = help: the trait `QueryFragment<Sqlite, diesel::query_builder::private::NotSpecialized>` is not implemented for `Only<foo::table>` + but trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is implemented for it = help: for that trait implementation, expected `Pg`, found `Sqlite` = note: required for `FromClause<Only<foo::table>>` to implement `QueryFragment<Sqlite>` = note: 2 redundant requirements hidden @@ -100,11 +101,12 @@ error[E0277]: the trait bound `Only<foo::table>: LoadQuery<'_, diesel::MysqlConn --> tests/fail/only_only_on_table.rs:23:28 | 23 | foo::table.only().load(&mut conn).unwrap(); - | ---- ^^^^^^^^^ the trait `QueryFragment<Mysql>` is not implemented for `Only<foo::table>`, which is required by `Only<foo::table>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Mysql>` is not implemented for `Only<foo::table>` | | | required by a bound introduced by this call | - = help: the trait `QueryFragment<Pg>` is implemented for `Only<foo::table>` + = help: the trait `QueryFragment<Mysql, diesel::query_builder::private::NotSpecialized>` is not implemented for `Only<foo::table>` + but trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is implemented for it = help: for that trait implementation, expected `Pg`, found `Mysql` = note: required for `FromClause<Only<foo::table>>` to implement `QueryFragment<Mysql>` = note: 2 redundant requirements hidden diff --git a/diesel_compile_tests/tests/fail/order_requires_column_from_same_table.stderr b/diesel_compile_tests/tests/fail/order_requires_column_from_same_table.stderr index 0643c09ca5f7..ae7a4f7cf850 100644 --- a/diesel_compile_tests/tests/fail/order_requires_column_from_same_table.stderr +++ b/diesel_compile_tests/tests/fail/order_requires_column_from_same_table.stderr @@ -2,7 +2,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/order_requires_column_from_same_table.rs:20:31 | 20 | let source = users::table.order(posts::id); - | ^^^^^ expected `Never`, found `Once` + | ^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<users::table>` --> tests/fail/order_requires_column_from_same_table.rs:13:9 diff --git a/diesel_compile_tests/tests/fail/ordering_functions_require_ord.stderr b/diesel_compile_tests/tests/fail/ordering_functions_require_ord.stderr index 5906fd3e6f58..6eebc51eff54 100644 --- a/diesel_compile_tests/tests/fail/ordering_functions_require_ord.stderr +++ b/diesel_compile_tests/tests/fail/ordering_functions_require_ord.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `diesel::sql_types::Bool: diesel::expression::func --> tests/fail/ordering_functions_require_ord.rs:13:38 | 13 | let source = stuff::table.select(max(stuff::b)); - | ^^^^^^^^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool`, which is required by `diesel::sql_types::Bool: diesel::expression::functions::aggregate_ordering::private::SqlOrdAggregate` + | ^^^^^^^^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool` | = help: the following other types implement trait `SqlOrd`: Array<T> @@ -25,7 +25,7 @@ error[E0277]: expressions of the type `diesel::sql_types::Bool` cannot be ordere --> tests/fail/ordering_functions_require_ord.rs:13:31 | 13 | let source = stuff::table.select(max(stuff::b)); - | ^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool`, which is required by `stuff::table: SelectDsl<_>` + | ^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool` | = help: the following other types implement trait `SqlOrd`: Array<T> @@ -45,7 +45,7 @@ error[E0277]: the trait bound `diesel::sql_types::Bool: diesel::expression::func --> tests/fail/ordering_functions_require_ord.rs:14:38 | 14 | let source = stuff::table.select(min(stuff::b)); - | ^^^^^^^^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool`, which is required by `diesel::sql_types::Bool: diesel::expression::functions::aggregate_ordering::private::SqlOrdAggregate` + | ^^^^^^^^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool` | = help: the following other types implement trait `SqlOrd`: Array<T> @@ -68,7 +68,7 @@ error[E0277]: expressions of the type `diesel::sql_types::Bool` cannot be ordere --> tests/fail/ordering_functions_require_ord.rs:14:31 | 14 | let source = stuff::table.select(min(stuff::b)); - | ^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool`, which is required by `stuff::table: SelectDsl<_>` + | ^^^^^^ the trait `SqlOrd` is not implemented for `diesel::sql_types::Bool` | = help: the following other types implement trait `SqlOrd`: Array<T> diff --git a/diesel_compile_tests/tests/fail/pg_on_conflict_requires_valid_conflict_target.stderr b/diesel_compile_tests/tests/fail/pg_on_conflict_requires_valid_conflict_target.stderr index 4a9b53401f22..dc1cc4e44475 100644 --- a/diesel_compile_tests/tests/fail/pg_on_conflict_requires_valid_conflict_target.stderr +++ b/diesel_compile_tests/tests/fail/pg_on_conflict_requires_valid_conflict_target.stderr @@ -46,7 +46,7 @@ error[E0277]: the trait bound `lower_utils::lower<posts::columns::title>: Column --> tests/fail/pg_on_conflict_requires_valid_conflict_target.rs:42:22 | 42 | .on_conflict(lower(posts::title)); - | ----------- ^^^^^^^^^^^^^^^^^^^ the trait `Column` is not implemented for `lower_utils::lower<posts::columns::title>`, which is required by `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<lower_utils::lower<posts::columns::title>>: diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` + | ----------- ^^^^^^^^^^^^^^^^^^^ the trait `Column` is not implemented for `lower_utils::lower<posts::columns::title>` | | | required by a bound introduced by this call | @@ -74,7 +74,7 @@ error[E0277]: the trait bound `&str: Column` is not satisfied --> tests/fail/pg_on_conflict_requires_valid_conflict_target.rs:46:22 | 46 | .on_conflict("id"); - | ----------- ^^^^ the trait `Column` is not implemented for `&str`, which is required by `diesel::query_builder::upsert::on_conflict_target::ConflictTarget<&str>: diesel::query_builder::upsert::on_conflict_target::OnConflictTarget<users::table>` + | ----------- ^^^^ the trait `Column` is not implemented for `&str` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/pg_specific_binary_expressions_only_usable_with_pg.stderr b/diesel_compile_tests/tests/fail/pg_specific_binary_expressions_only_usable_with_pg.stderr index 81248bf54ae1..35df433658b2 100644 --- a/diesel_compile_tests/tests/fail/pg_specific_binary_expressions_only_usable_with_pg.stderr +++ b/diesel_compile_tests/tests/fail/pg_specific_binary_expressions_only_usable_with_pg.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot use the `LIKE` operator with expressions of the type `diese --> tests/fail/pg_specific_binary_expressions_only_usable_with_pg.rs:21:32 | 21 | .get_result::<Vec<u8>>(&mut connection).unwrap(); - | ---------- ^^^^^^^^^^^^^^^ the trait `diesel::expression::operators::LikeIsAllowedForType<diesel::sql_types::Binary>` is not implemented for `Sqlite`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Concat<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Binary, Vec<u8>>>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::And<diesel::expression::grouped::Grouped<diesel::expression::operators::Like<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Binary, Vec<u8>>>>, diesel::expression::grouped::Grouped<diesel::expression::operators::NotLike<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Binary, Vec<u8>>>>>>>>: LoadQuery<'_, _, Vec<u8>>` + | ---------- ^^^^^^^^^^^^^^^ the trait `diesel::expression::operators::LikeIsAllowedForType<diesel::sql_types::Binary>` is not implemented for `Sqlite` | | | required by a bound introduced by this call | @@ -28,7 +28,7 @@ error[E0277]: Cannot use the `LIKE` operator with expressions of the type `diese --> tests/fail/pg_specific_binary_expressions_only_usable_with_pg.rs:29:32 | 29 | .get_result::<Vec<u8>>(&mut connection).unwrap(); - | ---------- ^^^^^^^^^^^^^^^ the trait `diesel::expression::operators::LikeIsAllowedForType<diesel::sql_types::Binary>` is not implemented for `Mysql`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Concat<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Binary, Vec<u8>>>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::And<diesel::expression::grouped::Grouped<diesel::expression::operators::Like<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Binary, Vec<u8>>>>, diesel::expression::grouped::Grouped<diesel::expression::operators::NotLike<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Binary, Vec<u8>>>>>>>>: LoadQuery<'_, _, Vec<u8>>` + | ---------- ^^^^^^^^^^^^^^^ the trait `diesel::expression::operators::LikeIsAllowedForType<diesel::sql_types::Binary>` is not implemented for `Mysql` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/pg_specific_expressions_cant_be_used_in_a_sqlite_query.stderr b/diesel_compile_tests/tests/fail/pg_specific_expressions_cant_be_used_in_a_sqlite_query.stderr index 65d36905638f..74f24dd47f61 100644 --- a/diesel_compile_tests/tests/fail/pg_specific_expressions_cant_be_used_in_a_sqlite_query.stderr +++ b/diesel_compile_tests/tests/fail/pg_specific_expressions_cant_be_used_in_a_sqlite_query.stderr @@ -10,13 +10,14 @@ error[E0277]: `diesel::pg::expression::array_comparison::Any<diesel::expression: --> tests/fail/pg_specific_expressions_cant_be_used_in_a_sqlite_query.rs:29:22 | 29 | .load::<i32>(&mut connection); - | ---- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::pg::expression::array_comparison::Any<diesel::expression::bound::Bound<Array<diesel::sql_types::Text>, Vec<std::string::String>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::id>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<columns::name, diesel::pg::expression::array_comparison::Any<diesel::expression::bound::Bound<Array<diesel::sql_types::Text>, Vec<std::string::String>>>>>>>: LoadQuery<'_, _, i32>` + | ---- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | = note: this usually means that the `Sqlite` database system does not support this SQL syntax - = help: the trait `QueryFragment<Pg>` is implemented for `diesel::pg::expression::array_comparison::Any<diesel::expression::bound::Bound<Array<diesel::sql_types::Text>, Vec<std::string::String>>>` + = help: the trait `QueryFragment<Sqlite, diesel::query_builder::private::NotSpecialized>` is not implemented for `diesel::pg::expression::array_comparison::Any<diesel::expression::bound::Bound<Array<diesel::sql_types::Text>, Vec<std::string::String>>>` + but trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is implemented for it = help: for that trait implementation, expected `Pg`, found `Sqlite` = note: required for `diesel::expression::operators::Eq<columns::name, diesel::pg::expression::array_comparison::Any<diesel::expression::bound::Bound<Array<diesel::sql_types::Text>, Vec<std::string::String>>>>` to implement `QueryFragment<Sqlite>` = note: 4 redundant requirements hidden @@ -35,13 +36,14 @@ error[E0277]: `diesel::pg::expression::operators::IsNotDistinctFrom<columns::nam --> tests/fail/pg_specific_expressions_cant_be_used_in_a_sqlite_query.rs:33:22 | 33 | .load::<i32>(&mut connection); - | ---- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::pg::expression::operators::IsNotDistinctFrom<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::id>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::pg::expression::operators::IsNotDistinctFrom<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>>>>: LoadQuery<'_, _, i32>` + | ---- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | = note: this usually means that the `Sqlite` database system does not support this SQL syntax - = help: the trait `QueryFragment<Pg>` is implemented for `diesel::pg::expression::operators::IsNotDistinctFrom<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>` + = help: the trait `QueryFragment<Sqlite, diesel::query_builder::private::NotSpecialized>` is not implemented for `diesel::pg::expression::operators::IsNotDistinctFrom<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>` + but trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is implemented for it = help: for that trait implementation, expected `Pg`, found `Sqlite` = note: required for `diesel::expression::grouped::Grouped<diesel::pg::expression::operators::IsNotDistinctFrom<columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>>` to implement `QueryFragment<Sqlite>` = note: 3 redundant requirements hidden @@ -60,13 +62,14 @@ error[E0277]: `diesel::pg::expression::date_and_time::AtTimeZone<diesel::dsl::no --> tests/fail/pg_specific_expressions_cant_be_used_in_a_sqlite_query.rs:37:22 | 37 | .load::<i32>(&mut connection); - | ---- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::pg::expression::date_and_time::AtTimeZone<diesel::dsl::now, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::id>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<diesel::dsl::now, diesel::expression::grouped::Grouped<diesel::pg::expression::date_and_time::AtTimeZone<diesel::dsl::now, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>>>>>>: LoadQuery<'_, _, i32>` + | ---- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | = note: this usually means that the `Sqlite` database system does not support this SQL syntax - = help: the trait `QueryFragment<Pg>` is implemented for `diesel::pg::expression::date_and_time::AtTimeZone<diesel::dsl::now, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>` + = help: the trait `QueryFragment<Sqlite, diesel::query_builder::private::NotSpecialized>` is not implemented for `diesel::pg::expression::date_and_time::AtTimeZone<diesel::dsl::now, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>` + but trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is implemented for it = help: for that trait implementation, expected `Pg`, found `Sqlite` = note: required for `diesel::expression::grouped::Grouped<diesel::pg::expression::date_and_time::AtTimeZone<diesel::dsl::now, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>>` to implement `QueryFragment<Sqlite>` = note: 5 redundant requirements hidden diff --git a/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_mysql.stderr b/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_mysql.stderr index bb2030ee3308..606e2b188c83 100644 --- a/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_mysql.stderr +++ b/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_mysql.stderr @@ -2,11 +2,12 @@ error[E0277]: the trait bound `Tablesample<users::table, pg::query_builder::tabl --> tests/fail/pg_specific_tablesample_cannot_be_used_on_mysql.rs:20:32 | 20 | .load::<(i32, String)>(&mut connection); - | ---- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql>` is not implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>`, which is required by `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>: LoadQuery<'_, _, (i32, std::string::String)>` + | ---- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Mysql>` is not implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>` | | | required by a bound introduced by this call | - = help: the trait `QueryFragment<Pg>` is implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>` + = help: the trait `QueryFragment<Mysql, diesel::query_builder::private::NotSpecialized>` is not implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>` + but trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is implemented for it = help: for that trait implementation, expected `Pg`, found `Mysql` = note: required for `FromClause<Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>>` to implement `QueryFragment<Mysql>` = note: 2 redundant requirements hidden diff --git a/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_sqlite.stderr b/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_sqlite.stderr index fef0f96bafc5..59b8593ad16a 100644 --- a/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/pg_specific_tablesample_cannot_be_used_on_sqlite.stderr @@ -2,11 +2,12 @@ error[E0277]: the trait bound `Tablesample<users::table, pg::query_builder::tabl --> tests/fail/pg_specific_tablesample_cannot_be_used_on_sqlite.rs:20:32 | 20 | .load::<(i32, String)>(&mut connection); - | ---- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>`, which is required by `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>: LoadQuery<'_, _, (i32, std::string::String)>` + | ---- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>` | | | required by a bound introduced by this call | - = help: the trait `QueryFragment<Pg>` is implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>` + = help: the trait `QueryFragment<Sqlite, diesel::query_builder::private::NotSpecialized>` is not implemented for `Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>` + but trait `QueryFragment<Pg, diesel::query_builder::private::NotSpecialized>` is implemented for it = help: for that trait implementation, expected `Pg`, found `Sqlite` = note: required for `FromClause<Tablesample<users::table, pg::query_builder::tablesample::SystemMethod>>` to implement `QueryFragment<Sqlite>` = note: 2 redundant requirements hidden diff --git a/diesel_compile_tests/tests/fail/pg_upsert_do_update_requires_valid_update.stderr b/diesel_compile_tests/tests/fail/pg_upsert_do_update_requires_valid_update.stderr index 3ef2e305a2be..1717feb4b5e4 100644 --- a/diesel_compile_tests/tests/fail/pg_upsert_do_update_requires_valid_update.stderr +++ b/diesel_compile_tests/tests/fail/pg_upsert_do_update_requires_valid_update.stderr @@ -73,7 +73,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/pg_upsert_do_update_requires_valid_update.rs:58:10 | 58 | .set(name.eq(posts::title)); - | ^^^ expected `Never`, found `Once` + | ^^^ expected `Once`, found `Never` | note: required for `posts::columns::title` to implement `AppearsOnTable<users::table>` --> tests/fail/pg_upsert_do_update_requires_valid_update.rs:16:9 @@ -89,22 +89,12 @@ error[E0271]: type mismatch resolving `<title as Column>::Table == table` 65 | .set(name.eq(excluded(posts::title))); | ^^^ type mismatch resolving `<title as Column>::Table == table` | -note: expected this to be `posts::table` +note: expected this to be `users::table` --> tests/fail/pg_upsert_do_update_requires_valid_update.rs:16:9 | 16 | title -> VarChar, | ^^^^^ - = note: `users::table` and `posts::table` have similar names, but are actually distinct types -note: `users::table` is defined in module `crate::users` of the current crate - --> tests/fail/pg_upsert_do_update_requires_valid_update.rs:6:1 - | -6 | / table! { -7 | | users { -8 | | id -> Integer, -9 | | name -> VarChar, -10 | | } -11 | | } - | |_^ + = note: `posts::table` and `users::table` have similar names, but are actually distinct types note: `posts::table` is defined in module `crate::posts` of the current crate --> tests/fail/pg_upsert_do_update_requires_valid_update.rs:13:1 | @@ -115,6 +105,16 @@ note: `posts::table` is defined in module `crate::posts` of the current crate 17 | | } 18 | | } | |_^ +note: `users::table` is defined in module `crate::users` of the current crate + --> tests/fail/pg_upsert_do_update_requires_valid_update.rs:6:1 + | +6 | / table! { +7 | | users { +8 | | id -> Integer, +9 | | name -> VarChar, +10 | | } +11 | | } + | |_^ = note: required for `diesel::expression::operators::Eq<users::columns::name, diesel::query_builder::upsert::on_conflict_actions::Excluded<posts::columns::title>>` to implement `AsChangeset` = note: this error originates in the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) @@ -122,6 +122,6 @@ error[E0271]: type mismatch resolving `<Excluded<id> as Expression>::SqlType == --> tests/fail/pg_upsert_do_update_requires_valid_update.rs:72:19 | 72 | .set(name.eq(excluded(id))); - | ^^ expected `Integer`, found `Text` + | ^^ expected `Text`, found `Integer` | = note: required for `diesel::query_builder::upsert::on_conflict_actions::Excluded<users::columns::id>` to implement `AsExpression<diesel::sql_types::Text>` diff --git a/diesel_compile_tests/tests/fail/queryable_with_typemismatch.stderr b/diesel_compile_tests/tests/fail/queryable_with_typemismatch.stderr index bba29361f458..2f479760b58d 100644 --- a/diesel_compile_tests/tests/fail/queryable_with_typemismatch.stderr +++ b/diesel_compile_tests/tests/fail/queryable_with_typemismatch.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `(diesel::sql_types::Integer, diesel::sql_types::T --> tests/fail/queryable_with_typemismatch.rs:21:31 | 21 | users::table.load::<User>(&mut conn).unwrap(); - | ---- ^^^^^^^^^ the trait `load_dsl::private::CompatibleType<User, _>` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text)`, which is required by `users::table: LoadQuery<'_, _, User>` + | ---- ^^^^^^^^^ the trait `load_dsl::private::CompatibleType<User, _>` is not implemented for `(diesel::sql_types::Integer, diesel::sql_types::Text)` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/returning_clause_requires_selectable_expression.stderr b/diesel_compile_tests/tests/fail/returning_clause_requires_selectable_expression.stderr index 18cd4af82a3d..734480515e80 100644 --- a/diesel_compile_tests/tests/fail/returning_clause_requires_selectable_expression.stderr +++ b/diesel_compile_tests/tests/fail/returning_clause_requires_selectable_expression.stderr @@ -28,7 +28,7 @@ error[E0277]: Cannot select `non_users::columns::noname` from `users::table` --> tests/fail/returning_clause_requires_selectable_expression.rs:31:20 | 31 | .returning(non_users::columns::noname); - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `non_users::columns::noname`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<(DefaultableColumnInsertValue<ColumnInsertValue<users::columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &std::string::String>>>,), users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `non_users::columns::noname` | | | required by a bound introduced by this call | @@ -55,7 +55,7 @@ error[E0277]: Cannot select `non_users::columns::noname` from `users::table` --> tests/fail/returning_clause_requires_selectable_expression.rs:35:20 | 35 | .returning(non_users::columns::noname); - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `non_users::columns::noname`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<users::columns::name>, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `non_users::columns::noname` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/right_side_of_left_join_requires_nullable.stderr b/diesel_compile_tests/tests/fail/right_side_of_left_join_requires_nullable.stderr index f714e9d12fc9..e7fd4dd8667f 100644 --- a/diesel_compile_tests/tests/fail/right_side_of_left_join_requires_nullable.stderr +++ b/diesel_compile_tests/tests/fail/right_side_of_left_join_requires_nullable.stderr @@ -2,7 +2,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/right_side_of_left_join_requires_nullable.rs:40:18 | 40 | let _ = join.select(posts::title); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -22,7 +22,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:40:18 | 40 | let _ = join.select(posts::title); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -46,7 +46,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/right_side_of_left_join_requires_nullable.rs:46:18 | 46 | let _ = join.select(lower(posts::title)); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -66,7 +66,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:46:18 | 46 | let _ = join.select(lower(posts::title)); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -108,17 +108,17 @@ error[E0271]: type mismatch resolving `<Nullable<title> as Expression>::SqlType --> tests/fail/right_side_of_left_join_requires_nullable.rs:48:25 | 48 | let _ = join.select(lower(posts::title.nullable())); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Nullable<Text>`, found `Text` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Text`, found `Nullable<Text>` | - = note: expected struct `Nullable<diesel::sql_types::Text>` - found struct `diesel::sql_types::Text` + = note: expected struct `diesel::sql_types::Text` + found struct `Nullable<diesel::sql_types::Text>` = note: required for `NullableExpression<posts::columns::title>` to implement `AsExpression<diesel::sql_types::Text>` error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Count == Never` --> tests/fail/right_side_of_left_join_requires_nullable.rs:57:18 | 57 | let _ = join.select(posts::title); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -138,7 +138,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:57:18 | 57 | let _ = join.select(posts::title); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>, pets::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -162,7 +162,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/right_side_of_left_join_requires_nullable.rs:63:18 | 63 | let _ = join.select(lower(posts::title)); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -182,7 +182,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:63:18 | 63 | let _ = join.select(lower(posts::title)); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>, pets::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -224,17 +224,17 @@ error[E0271]: type mismatch resolving `<Nullable<title> as Expression>::SqlType --> tests/fail/right_side_of_left_join_requires_nullable.rs:65:25 | 65 | let _ = join.select(lower(posts::title.nullable())); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Nullable<Text>`, found `Text` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Text`, found `Nullable<Text>` | - = note: expected struct `Nullable<diesel::sql_types::Text>` - found struct `diesel::sql_types::Text` + = note: expected struct `diesel::sql_types::Text` + found struct `Nullable<diesel::sql_types::Text>` = note: required for `NullableExpression<posts::columns::title>` to implement `AsExpression<diesel::sql_types::Text>` error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Count == Never` --> tests/fail/right_side_of_left_join_requires_nullable.rs:74:18 | 74 | let _ = join.select(posts::title); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -254,7 +254,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:74:18 | 74 | let _ = join.select(posts::title); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>, pets::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -278,7 +278,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/right_side_of_left_join_requires_nullable.rs:80:18 | 80 | let _ = join.select(lower(posts::title)); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -298,7 +298,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:80:18 | 80 | let _ = join.select(lower(posts::title)); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>, pets::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -340,17 +340,17 @@ error[E0271]: type mismatch resolving `<Nullable<title> as Expression>::SqlType --> tests/fail/right_side_of_left_join_requires_nullable.rs:82:25 | 82 | let _ = join.select(lower(posts::title.nullable())); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Nullable<Text>`, found `Text` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Text`, found `Nullable<Text>` | - = note: expected struct `Nullable<diesel::sql_types::Text>` - found struct `diesel::sql_types::Text` + = note: expected struct `diesel::sql_types::Text` + found struct `Nullable<diesel::sql_types::Text>` = note: required for `NullableExpression<posts::columns::title>` to implement `AsExpression<diesel::sql_types::Text>` error[E0271]: type mismatch resolving `<SelectStatement<FromClause<JoinOn<Join<table, table, LeftOuter>, Grouped<Eq<Nullable<user_id>, ...>>>>> as AppearsInFromClause<...>>::Count == Never` --> tests/fail/right_side_of_left_join_requires_nullable.rs:89:18 | 89 | let _ = join.select(posts::title); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<pets::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -370,7 +370,7 @@ error[E0277]: Cannot select `posts::columns::title` from `pets::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:89:18 | 89 | let _ = join.select(posts::title); - | ^^^^^^ the trait `SelectableExpression<pets::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<pets::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<pets::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `pets::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -394,7 +394,7 @@ error[E0271]: type mismatch resolving `<SelectStatement<FromClause<JoinOn<Join<t --> tests/fail/right_side_of_left_join_requires_nullable.rs:95:18 | 95 | let _ = join.select(lower(posts::title)); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<pets::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -414,7 +414,7 @@ error[E0277]: Cannot select `posts::columns::title` from `pets::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:95:18 | 95 | let _ = join.select(lower(posts::title)); - | ^^^^^^ the trait `SelectableExpression<pets::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<pets::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<pets::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `pets::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -456,17 +456,17 @@ error[E0271]: type mismatch resolving `<Nullable<title> as Expression>::SqlType --> tests/fail/right_side_of_left_join_requires_nullable.rs:97:25 | 97 | let _ = join.select(lower(posts::title.nullable())); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Nullable<Text>`, found `Text` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Text`, found `Nullable<Text>` | - = note: expected struct `Nullable<diesel::sql_types::Text>` - found struct `diesel::sql_types::Text` + = note: expected struct `diesel::sql_types::Text` + found struct `Nullable<diesel::sql_types::Text>` = note: required for `NullableExpression<posts::columns::title>` to implement `AsExpression<diesel::sql_types::Text>` error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Count == Never` --> tests/fail/right_side_of_left_join_requires_nullable.rs:104:18 | 104 | let _ = join.select(posts::title); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -486,7 +486,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:104:18 | 104 | let _ = join.select(posts::title); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<pets::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -510,7 +510,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/right_side_of_left_join_requires_nullable.rs:110:18 | 110 | let _ = join.select(lower(posts::title)); - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::title` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/right_side_of_left_join_requires_nullable.rs:16:9 @@ -530,7 +530,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/right_side_of_left_join_requires_nullable.rs:110:18 | 110 | let _ = join.select(lower(posts::title)); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<pets::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<pets::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -572,8 +572,8 @@ error[E0271]: type mismatch resolving `<Nullable<title> as Expression>::SqlType --> tests/fail/right_side_of_left_join_requires_nullable.rs:112:25 | 112 | let _ = join.select(lower(posts::title.nullable())); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Nullable<Text>`, found `Text` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Text`, found `Nullable<Text>` | - = note: expected struct `Nullable<diesel::sql_types::Text>` - found struct `diesel::sql_types::Text` + = note: expected struct `diesel::sql_types::Text` + found struct `Nullable<diesel::sql_types::Text>` = note: required for `NullableExpression<posts::columns::title>` to implement `AsExpression<diesel::sql_types::Text>` diff --git a/diesel_compile_tests/tests/fail/select_carries_correct_result_type_info.stderr b/diesel_compile_tests/tests/fail/select_carries_correct_result_type_info.stderr index 657be3ce25ad..29be80bf50b1 100644 --- a/diesel_compile_tests/tests/fail/select_carries_correct_result_type_info.stderr +++ b/diesel_compile_tests/tests/fail/select_carries_correct_result_type_info.stderr @@ -2,7 +2,7 @@ error[E0277]: cannot deserialize a value of the database type `diesel::sql_types --> tests/fail/select_carries_correct_result_type_info.rs:19:39 | 19 | let ids = select_name.load::<i32>(&mut connection); - | ---- ^^^^^^^^^^^^^^^ the trait `FromSql<diesel::sql_types::Text, _>` is not implemented for `i32`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::name>>: LoadQuery<'_, _, i32>` + | ---- ^^^^^^^^^^^^^^^ the trait `FromSql<diesel::sql_types::Text, _>` is not implemented for `i32` | | | required by a bound introduced by this call | @@ -28,7 +28,7 @@ error[E0277]: cannot deserialize a value of the database type `diesel::sql_types --> tests/fail/select_carries_correct_result_type_info.rs:20:42 | 20 | let names = select_id.load::<String>(&mut connection); - | ---- ^^^^^^^^^^^^^^^ the trait `FromSql<diesel::sql_types::Integer, _>` is not implemented for `*const str`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<columns::id>>: LoadQuery<'_, _, std::string::String>` + | ---- ^^^^^^^^^^^^^^^ the trait `FromSql<diesel::sql_types::Integer, _>` is not implemented for `*const str` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.stderr b/diesel_compile_tests/tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.stderr index 49b198ded648..7fe5da250af1 100644 --- a/diesel_compile_tests/tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.stderr +++ b/diesel_compile_tests/tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.stderr @@ -2,18 +2,19 @@ error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, Defau --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:14:24 | 14 | users.for_update().distinct(); - | ^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` to implement `DistinctDsl` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:14:24 | 14 | users.for_update().distinct(); - | ^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: DistinctDsl` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -26,26 +27,28 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:14:24 | 14 | users.for_update().distinct(); - | ^^^^^^^^ the trait `DistinctDsl` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `DistinctDsl` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` = help: the trait `DistinctDsl` is implemented for `SelectStatement<F, S, D, W, O, LOf, G, H>` error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, DistinctClause> as AsQuery>::Query == SelectStatement<FromClause<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, DistinctClause>>>` --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:15:22 | 15 | users.distinct().for_update(); - | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>` to implement `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:15:22 | 15 | users.distinct().for_update(); - | ^^^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>: LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -58,26 +61,28 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:15:22 | 15 | users.distinct().for_update(); - | ^^^^^^^^^^ the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>>>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::DistinctClause>>>` = help: the trait `LockingDsl<Lock>` is implemented for `SelectStatement<F, S, diesel::query_builder::distinct_clause::NoDistinctClause, W, O, LOf>` error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, LimitOffsetClause<NoLimitClause, ...>, ..., ..., ...> as AsQuery>::Query == SelectStatement<FromClause<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, ..., ..., ..., ...>>>` --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:16:24 | 16 | users.for_update().distinct_on(id); - | ^^^^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` to implement `DistinctOnDsl<_>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:16:24 | 16 | users.for_update().distinct_on(id); - | ^^^^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: DistinctOnDsl<_>` + | ^^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -90,8 +95,9 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:16:24 | 16 | users.for_update().distinct_on(id); - | ^^^^^^^^^^^ the trait `DistinctOnDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: DistinctOnDsl<_>` + | ^^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `DistinctOnDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` = help: the trait `DistinctOnDsl<Selection>` is implemented for `SelectStatement<FromClause<F>, S, D, W, O, LOf, G, H>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` to implement `DistinctOnDsl<_>` @@ -99,10 +105,11 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:16:36 | 16 | users.for_update().distinct_on(id); - | ----------- ^^ the trait `DistinctOnDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: DistinctOnDsl<_>` + | ----------- ^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `DistinctOnDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` = help: the trait `DistinctOnDsl<Selection>` is implemented for `SelectStatement<FromClause<F>, S, D, W, O, LOf, G, H>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` to implement `DistinctOnDsl<_>` note: required by a bound in `diesel::QueryDsl::distinct_on` @@ -118,10 +125,11 @@ error[E0277]: Cannot select `columns::id` from `SelectStatement<FromClause<users --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:16:36 | 16 | users.for_update().distinct_on(id); - | ----------- ^^ the trait `SelectableExpression<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>` is not implemented for `columns::id`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: DistinctOnDsl<_>` + | ----------- ^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `SelectableExpression<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>` is not implemented for `columns::id` = note: `columns::id` is no valid selection for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = help: the following other types implement trait `SelectableExpression<QS>`: `columns::id` implements `SelectableExpression<JoinOn<Join, On>>` @@ -145,18 +153,19 @@ error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, Defau --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:17:27 | 17 | users.distinct_on(id).for_update(); - | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>` to implement `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:17:27 | 17 | users.distinct_on(id).for_update(); - | ^^^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>: LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -169,26 +178,28 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:17:27 | 17 | users.distinct_on(id).for_update(); - | ^^^^^^^^^^ the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>>>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, DistinctOnClause<columns::id>>>>` = help: the trait `LockingDsl<Lock>` is implemented for `SelectStatement<F, S, diesel::query_builder::distinct_clause::NoDistinctClause, W, O, LOf>` error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, LimitOffsetClause<NoLimitClause, ...>, ..., ..., ...> as AsQuery>::Query == SelectStatement<FromClause<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, ..., ..., ..., ...>>>` --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:19:24 | 19 | users.for_update().group_by(id); - | ^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` to implement `GroupByDsl<_>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:19:24 | 19 | users.for_update().group_by(id); - | ^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: GroupByDsl<_>` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -201,26 +212,28 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:19:24 | 19 | users.for_update().group_by(id); - | ^^^^^^^^ the trait `GroupByDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `GroupByDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` = help: the trait `GroupByDsl<Expr>` is implemented for `SelectStatement<F, S, D, W, O, LOf, G, H>` error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, LimitOffsetClause<NoLimitClause, ...>, ...> as AsQuery>::Query == SelectStatement<FromClause<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, ..., ...>>>` --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:20:24 | 20 | users.group_by(id).for_update(); - | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>` to implement `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:20:24 | 20 | users.group_by(id).for_update(); - | ^^^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>: LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -233,25 +246,26 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:20:24 | 20 | users.group_by(id).for_update(); - | ^^^^^^^^^^ the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>>>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>>>` = help: the trait `LockingDsl<Lock>` is implemented for `SelectStatement<F, S, diesel::query_builder::distinct_clause::NoDistinctClause, W, O, LOf>` error[E0271]: type mismatch resolving `<BoxedSelectStatement<'_, (Integer,), FromClause<table>, _> as AsQuery>::Query == SelectStatement<FromClause<BoxedSelectStatement<'_, (Integer,), FromClause<table>, _>>>` --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:22:24 | 22 | users.into_boxed().for_update(); - | ^^^^^^^^^^ expected `BoxedSelectStatement<'_, (...,), ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `BoxedSelectStatement<'_, (...,), ..., ...>` | - = note: expected struct `BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>` - found struct `SelectStatement<FromClause<BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>>>` + = note: expected struct `SelectStatement<FromClause<BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>>>` + found struct `BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>` = note: required for `BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>` to implement `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` error[E0277]: the trait bound `BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:22:24 | 22 | users.into_boxed().for_update(); - | ^^^^^^^^^^ the trait `Table` is not implemented for `BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>`, which is required by `BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>: LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` + | ^^^^^^^^^^ the trait `Table` is not implemented for `BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>` | = help: the following other types implement trait `Table`: Only<S> @@ -265,26 +279,28 @@ error[E0277]: the trait bound `SelectStatement<FromClause<BoxedSelectStatement<' --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:22:24 | 22 | users.into_boxed().for_update(); - | ^^^^^^^^^^ the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>>>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<BoxedSelectStatement<'_, (diesel::sql_types::Integer,), FromClause<users::table>, _>>>` = help: the trait `LockingDsl<Lock>` is implemented for `SelectStatement<F, S, diesel::query_builder::distinct_clause::NoDistinctClause, W, O, LOf>` error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, LimitOffsetClause<NoLimitClause, ...>, ..., ..., ...> as AsQuery>::Query == SelectStatement<FromClause<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, ..., ..., ..., ...>>>` --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:23:24 | 23 | users.for_update().into_boxed(); - | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` to implement `BoxedDsl<'_, _>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:23:24 | 23 | users.for_update().into_boxed(); - | ^^^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: BoxedDsl<'_, _>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -297,8 +313,9 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:23:24 | 23 | users.for_update().into_boxed(); - | ^^^^^^^^^^ the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: BoxedDsl<'_, _>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` = help: the following other types implement trait `BoxedDsl<'a, DB>`: SelectStatement<FromClause<F>, S, D, W, O, LOf, G, H> SelectStatement<NoFromClause, S, D, W, O, LOf, G, H> @@ -308,8 +325,9 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:23:24 | 23 | users.for_update().into_boxed(); - | ^^^^^^^^^^ the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: BoxedDsl<'_, _>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `BoxedDsl<'_, _>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` = help: the following other types implement trait `BoxedDsl<'a, DB>`: SelectStatement<FromClause<F>, S, D, W, O, LOf, G, H> SelectStatement<NoFromClause, S, D, W, O, LOf, G, H> @@ -327,18 +345,19 @@ error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, Defau --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:25:24 | 25 | users.for_update().group_by(id).having(id.gt(1)); - | ^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` to implement `GroupByDsl<_>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:25:24 | 25 | users.for_update().group_by(id).having(id.gt(1)); - | ^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: GroupByDsl<_>` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -351,26 +370,28 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:25:24 | 25 | users.for_update().group_by(id).having(id.gt(1)); - | ^^^^^^^^ the trait `GroupByDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` + | ^^^^^^^^ unsatisfied trait bound | + = help: the trait `GroupByDsl<_>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>>>` = help: the trait `GroupByDsl<Expr>` is implemented for `SelectStatement<F, S, D, W, O, LOf, G, H>` error[E0271]: type mismatch resolving `<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, LimitOffsetClause<NoLimitClause, ...>, ..., ...> as AsQuery>::Query == SelectStatement<FromClause<SelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, NoDistinctClause, NoWhereClause, NoOrderClause, ..., ..., ...>>>` --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:26:41 | 26 | users.group_by(id).having(id.gt(1)).for_update(); - | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ...>`, found `SelectStatement<FromClause<...>>` + | ^^^^^^^^^^ expected `SelectStatement<FromClause<...>>`, found `SelectStatement<FromClause<...>, ..., ..., ..., ..., ..., ..., ...>` | - = note: expected struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` - found struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>>>` + = note: expected struct `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>>>` + found struct `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` to implement `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>: Table` is not satisfied --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:26:41 | 26 | users.group_by(id).having(id.gt(1)).for_update(); - | ^^^^^^^^^^ the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>: LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `Table` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` = help: the following other types implement trait `Table`: Only<S> Tablesample<S, TSM> @@ -383,6 +404,7 @@ error[E0277]: the trait bound `SelectStatement<FromClause<SelectStatement<FromCl --> tests/fail/select_for_update_cannot_be_mixed_with_some_clauses.rs:26:41 | 26 | users.group_by(id).having(id.gt(1)).for_update(); - | ^^^^^^^^^^ the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>>>` + | ^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `LockingDsl<diesel::query_builder::locking_clause::ForUpdate>` is not implemented for `SelectStatement<FromClause<SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>, diesel::query_builder::having_clause::HavingClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Gt<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>>>` = help: the trait `LockingDsl<Lock>` is implemented for `SelectStatement<F, S, diesel::query_builder::distinct_clause::NoDistinctClause, W, O, LOf>` diff --git a/diesel_compile_tests/tests/fail/select_for_update_cannot_be_used_on_sqlite.stderr b/diesel_compile_tests/tests/fail/select_for_update_cannot_be_used_on_sqlite.stderr index 81db7b916601..1dd8c8dec110 100644 --- a/diesel_compile_tests/tests/fail/select_for_update_cannot_be_used_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/select_for_update_cannot_be_used_on_sqlite.stderr @@ -2,7 +2,7 @@ error[E0277]: `diesel::query_builder::locking_clause::ForUpdate` is no valid SQL --> tests/fail/select_for_update_cannot_be_used_on_sqlite.rs:16:15 | 16 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::ForUpdate`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::ForUpdate` | | | required by a bound introduced by this call | @@ -28,7 +28,7 @@ error[E0277]: `diesel::query_builder::locking_clause::NoModifier` is no valid SQ --> tests/fail/select_for_update_cannot_be_used_on_sqlite.rs:16:15 | 16 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::NoModifier`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::NoModifier` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/select_for_update_no_wait_cannot_be_used_on_sqlite.stderr b/diesel_compile_tests/tests/fail/select_for_update_no_wait_cannot_be_used_on_sqlite.stderr index f7f91307983c..703b98662183 100644 --- a/diesel_compile_tests/tests/fail/select_for_update_no_wait_cannot_be_used_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/select_for_update_no_wait_cannot_be_used_on_sqlite.stderr @@ -2,7 +2,7 @@ error[E0277]: `diesel::query_builder::locking_clause::ForUpdate` is no valid SQL --> tests/fail/select_for_update_no_wait_cannot_be_used_on_sqlite.rs:17:15 | 17 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::ForUpdate`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause<diesel::query_builder::locking_clause::ForUpdate, diesel::query_builder::locking_clause::NoWait>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::ForUpdate` | | | required by a bound introduced by this call | @@ -28,7 +28,7 @@ error[E0277]: `diesel::query_builder::locking_clause::NoWait` is no valid SQL fr --> tests/fail/select_for_update_no_wait_cannot_be_used_on_sqlite.rs:17:15 | 17 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::NoWait`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause<diesel::query_builder::locking_clause::ForUpdate, diesel::query_builder::locking_clause::NoWait>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::NoWait` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/select_for_update_skip_locked_cannot_be_used_on_sqlite.stderr b/diesel_compile_tests/tests/fail/select_for_update_skip_locked_cannot_be_used_on_sqlite.stderr index b8cd5906efec..43f1cb809f54 100644 --- a/diesel_compile_tests/tests/fail/select_for_update_skip_locked_cannot_be_used_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/select_for_update_skip_locked_cannot_be_used_on_sqlite.stderr @@ -2,7 +2,7 @@ error[E0277]: `diesel::query_builder::locking_clause::ForUpdate` is no valid SQL --> tests/fail/select_for_update_skip_locked_cannot_be_used_on_sqlite.rs:17:15 | 17 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::ForUpdate`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause<diesel::query_builder::locking_clause::ForUpdate, diesel::query_builder::locking_clause::SkipLocked>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::ForUpdate` | | | required by a bound introduced by this call | @@ -28,7 +28,7 @@ error[E0277]: `diesel::query_builder::locking_clause::SkipLocked` is no valid SQ --> tests/fail/select_for_update_skip_locked_cannot_be_used_on_sqlite.rs:17:15 | 17 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::SkipLocked`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::NoGroupByClause, diesel::query_builder::having_clause::NoHavingClause, diesel::query_builder::locking_clause::LockingClause<diesel::query_builder::locking_clause::ForUpdate, diesel::query_builder::locking_clause::SkipLocked>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `QueryFragment<Sqlite>` is not implemented for `diesel::query_builder::locking_clause::SkipLocked` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/select_requires_column_from_same_table.stderr b/diesel_compile_tests/tests/fail/select_requires_column_from_same_table.stderr index 80119754b92a..254afd98328b 100644 --- a/diesel_compile_tests/tests/fail/select_requires_column_from_same_table.stderr +++ b/diesel_compile_tests/tests/fail/select_requires_column_from_same_table.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/select_requires_column_from_same_table.rs:20:41 | 20 | let select_id = users::table.select(posts::id); - | ------ ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `users::table: SelectDsl<_>` + | ------ ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/select_requires_valid_grouping.stderr b/diesel_compile_tests/tests/fail/select_requires_valid_grouping.stderr index 895bd1e2f90b..24773da4afe1 100644 --- a/diesel_compile_tests/tests/fail/select_requires_valid_grouping.stderr +++ b/diesel_compile_tests/tests/fail/select_requires_valid_grouping.stderr @@ -4,7 +4,7 @@ error[E0271]: type mismatch resolving `<name as IsContainedInGroupBy<id>>::Outpu 85 | let source = users::table.group_by(users::name).select(users::id); | ^^^^^^ type mismatch resolving `<name as IsContainedInGroupBy<id>>::Output == Yes` | -note: expected this to be `diesel::expression::is_contained_in_group_by::No` +note: expected this to be `diesel::expression::is_contained_in_group_by::Yes` --> tests/fail/select_requires_valid_grouping.rs:8:9 | 8 | name -> Text, @@ -21,7 +21,7 @@ error[E0271]: type mismatch resolving `<(name, hair_color) as IsContainedInGroup --> tests/fail/select_requires_valid_grouping.rs:88:10 | 88 | .select(users::id); - | ^^^^^^ expected `No`, found `Yes` + | ^^^^^^ expected `Yes`, found `No` | note: required for `users::columns::id` to implement `ValidGrouping<(users::columns::name, users::columns::hair_color)>` --> tests/fail/select_requires_valid_grouping.rs:7:9 @@ -37,7 +37,7 @@ error[E0271]: type mismatch resolving `<name as IsContainedInGroupBy<id>>::Outpu 91 | .select((users::name, users::id)); | ^^^^^^ type mismatch resolving `<name as IsContainedInGroupBy<id>>::Output == Yes` | -note: expected this to be `diesel::expression::is_contained_in_group_by::No` +note: expected this to be `diesel::expression::is_contained_in_group_by::Yes` --> tests/fail/select_requires_valid_grouping.rs:8:9 | 8 | name -> Text, @@ -56,7 +56,7 @@ error[E0271]: type mismatch resolving `<(name, hair_color) as IsContainedInGroup --> tests/fail/select_requires_valid_grouping.rs:94:10 | 94 | .select(users::id); - | ^^^^^^ expected `No`, found `Yes` + | ^^^^^^ expected `Yes`, found `No` | note: required for `users::columns::id` to implement `ValidGrouping<(users::columns::name, users::columns::hair_color)>` --> tests/fail/select_requires_valid_grouping.rs:7:9 @@ -70,7 +70,7 @@ error[E0271]: type mismatch resolving `<(id, title) as IsContainedInGroupBy<id>> --> tests/fail/select_requires_valid_grouping.rs:98:10 | 98 | .select((users::all_columns, posts::id)); - | ^^^^^^ expected `No`, found `Yes` + | ^^^^^^ expected `Yes`, found `No` | note: required for `posts::columns::id` to implement `ValidGrouping<(users::columns::id, posts::columns::title)>` --> tests/fail/select_requires_valid_grouping.rs:15:9 @@ -86,7 +86,7 @@ error[E0277]: the trait bound `users::columns::id: IsContainedInGroupBy<comments --> tests/fail/select_requires_valid_grouping.rs:102:10 | 102 | .select((users::all_columns, posts::all_columns, comments::id)); - | ^^^^^^ the trait `IsContainedInGroupBy<comments::columns::id>` is not implemented for `users::columns::id`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, comments::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<comments::columns::post_id>, NullableExpression<posts::columns::id>>>>>>, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<JoinOn<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, comments::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<comments::columns::post_id>, NullableExpression<posts::columns::id>>>>>>, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<(users::columns::id, posts::columns::id)>>: SelectDsl<_>` + | ^^^^^^ the trait `IsContainedInGroupBy<comments::columns::id>` is not implemented for `users::columns::id` | = help: the following other types implement trait `IsContainedInGroupBy<T>`: `users::columns::id` implements `IsContainedInGroupBy<posts::columns::id>` @@ -109,7 +109,7 @@ error[E0277]: the trait bound `posts::columns::id: IsContainedInGroupBy<comments --> tests/fail/select_requires_valid_grouping.rs:102:10 | 102 | .select((users::all_columns, posts::all_columns, comments::id)); - | ^^^^^^ the trait `IsContainedInGroupBy<comments::columns::id>` is not implemented for `posts::columns::id`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, comments::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<comments::columns::post_id>, NullableExpression<posts::columns::id>>>>>>, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<JoinOn<query_source::joins::Join<users::table, SelectStatement<FromClause<JoinOn<query_source::joins::Join<posts::table, comments::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<comments::columns::post_id>, NullableExpression<posts::columns::id>>>>>>, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<(users::columns::id, posts::columns::id)>>: SelectDsl<_>` + | ^^^^^^ the trait `IsContainedInGroupBy<comments::columns::id>` is not implemented for `posts::columns::id` | = help: the following other types implement trait `IsContainedInGroupBy<T>`: `posts::columns::id` implements `IsContainedInGroupBy<posts::columns::id>` diff --git a/diesel_compile_tests/tests/fail/select_sql_still_ensures_result_type.stderr b/diesel_compile_tests/tests/fail/select_sql_still_ensures_result_type.stderr index ef671b3ccd3c..60d748de8e71 100644 --- a/diesel_compile_tests/tests/fail/select_sql_still_ensures_result_type.stderr +++ b/diesel_compile_tests/tests/fail/select_sql_still_ensures_result_type.stderr @@ -2,7 +2,7 @@ error[E0277]: cannot deserialize a value of the database type `BigInt` as `*cons --> tests/fail/select_sql_still_ensures_result_type.rs:16:51 | 16 | let count = select_count.get_result::<String>(&mut connection).unwrap(); - | ---------- ^^^^^^^^^^^^^^^ the trait `FromSql<BigInt, _>` is not implemented for `*const str`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<SqlLiteral<BigInt>>>: LoadQuery<'_, _, std::string::String>` + | ---------- ^^^^^^^^^^^^^^^ the trait `FromSql<BigInt, _>` is not implemented for `*const str` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/selectable.stderr b/diesel_compile_tests/tests/fail/selectable.stderr index 2e9df0383fbe..167d5180f2c5 100644 --- a/diesel_compile_tests/tests/fail/selectable.stderr +++ b/diesel_compile_tests/tests/fail/selectable.stderr @@ -29,7 +29,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/selectable.rs:162:10 | 162 | .select(UserWithEmbeddedPost::as_select()) - | ^^^^^^ expected `Once`, found `Never` + | ^^^^^^ expected `Never`, found `Once` | note: required for `posts::columns::id` to implement `SelectableExpression<query_source::joins::Join<users::table, posts::table, LeftOuter>>` --> tests/fail/selectable.rs:14:9 @@ -49,7 +49,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:162:10 | 162 | .select(UserWithEmbeddedPost::as_select()) - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | = note: `posts::columns::id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -73,7 +73,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:162:10 | 162 | .select(UserWithEmbeddedPost::as_select()) - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | = note: `posts::columns::title` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -129,7 +129,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:163:15 | 163 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>, diesel::query_builder::select_clause::SelectClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -165,7 +165,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:163:15 | 163 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, LeftOuter>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>, diesel::query_builder::select_clause::SelectClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | | | required by a bound introduced by this call | @@ -201,7 +201,7 @@ error[E0277]: the trait bound `posts::columns::id: IsContainedInGroupBy<users::c --> tests/fail/selectable.rs:170:10 | 170 | .select(UserWithEmbeddedPost::as_select()) - | ^^^^^^ the trait `IsContainedInGroupBy<users::columns::id>` is not implemented for `posts::columns::id`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<posts::columns::id>>: SelectDsl<_>` + | ^^^^^^ the trait `IsContainedInGroupBy<users::columns::id>` is not implemented for `posts::columns::id` | = help: the following other types implement trait `IsContainedInGroupBy<T>`: `posts::columns::id` implements `IsContainedInGroupBy<posts::columns::id>` @@ -220,7 +220,7 @@ error[E0277]: the trait bound `posts::columns::id: IsContainedInGroupBy<users::c --> tests/fail/selectable.rs:170:10 | 170 | .select(UserWithEmbeddedPost::as_select()) - | ^^^^^^ the trait `IsContainedInGroupBy<users::columns::name>` is not implemented for `posts::columns::id`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<posts::columns::id>>: SelectDsl<_>` + | ^^^^^^ the trait `IsContainedInGroupBy<users::columns::name>` is not implemented for `posts::columns::id` | = help: the following other types implement trait `IsContainedInGroupBy<T>`: `posts::columns::id` implements `IsContainedInGroupBy<posts::columns::id>` @@ -239,7 +239,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::No: MixedAggreg --> tests/fail/selectable.rs:177:10 | 177 | .select(UserWithPostCount::as_select()) - | ^^^^^^ the trait `MixedAggregates<diesel::expression::is_aggregate::Yes>` is not implemented for `diesel::expression::is_aggregate::No`, which is required by `SelectStatement<FromClause<JoinOn<query_source::joins::Join<users::table, posts::table, Inner>, diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<NullableExpression<posts::columns::user_id>, NullableExpression<users::columns::id>>>>>>: SelectDsl<_>` + | ^^^^^^ the trait `MixedAggregates<diesel::expression::is_aggregate::Yes>` is not implemented for `diesel::expression::is_aggregate::No` | = help: the following other types implement trait `MixedAggregates<Other>`: `diesel::expression::is_aggregate::No` implements `MixedAggregates<diesel::expression::is_aggregate::Never>` @@ -253,7 +253,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:185:20 | 185 | .returning(UserWithEmbeddedPost::as_select()) - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<users::columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -283,7 +283,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:185:20 | 185 | .returning(UserWithEmbeddedPost::as_select()) - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<users::columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | | | required by a bound introduced by this call | @@ -342,7 +342,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:186:15 | 186 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<users::columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -373,7 +373,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:186:15 | 186 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<users::columns::name, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, users::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | | | required by a bound introduced by this call | @@ -434,7 +434,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:193:20 | 193 | .returning(UserWithEmbeddedPost::as_select()) - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<users::columns::name>, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -464,7 +464,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:193:20 | 193 | .returning(UserWithEmbeddedPost::as_select()) - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<users::columns::name>, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, ReturningClause<_>>: Query` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | | | required by a bound introduced by this call | @@ -523,7 +523,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:194:15 | 194 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<users::columns::name>, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, ReturningClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -554,7 +554,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:194:15 | 194 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<users::columns::name>, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, ReturningClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | | | required by a bound introduced by this call | @@ -615,7 +615,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:200:20 | 200 | .returning(UserWithEmbeddedPost::as_select()) - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>: SelectableExpression<users::table>` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -644,7 +644,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:200:20 | 200 | .returning(UserWithEmbeddedPost::as_select()) - | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>: SelectableExpression<users::table>` + | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | | | required by a bound introduced by this call | @@ -701,7 +701,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selectable.rs:201:15 | 201 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `DeleteStatement<users::table, diesel::query_builder::where_clause::NoWhereClause, ReturningClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | | | required by a bound introduced by this call | @@ -732,7 +732,7 @@ error[E0277]: Cannot select `posts::columns::title` from `users::table` --> tests/fail/selectable.rs:201:15 | 201 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title`, which is required by `DeleteStatement<users::table, diesel::query_builder::where_clause::NoWhereClause, ReturningClause<diesel::expression::select_by::SelectBy<UserWithEmbeddedPost, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::title` | | | required by a bound introduced by this call | @@ -818,7 +818,7 @@ error[E0277]: the trait bound `diesel::expression::select_by::SelectBy<Post, _>: --> tests/fail/selectable.rs:213:32 | 213 | .load::<(i32, String)>(&mut conn) - | ---- ^^^^^^^^^ the trait `SingleValue` is not implemented for `diesel::expression::select_by::SelectBy<Post, _>`, which is required by `SelectStatement<FromClause<posts::table>, diesel::query_builder::select_clause::SelectClause<diesel::expression::select_by::SelectBy<Post, _>>>: LoadQuery<'_, _, (i32, std::string::String)>` + | ---- ^^^^^^^^^ the trait `SingleValue` is not implemented for `diesel::expression::select_by::SelectBy<Post, _>` | | | required by a bound introduced by this call | @@ -847,7 +847,7 @@ error[E0277]: the trait bound `(i32, std::string::String): diesel::Queryable<die --> tests/fail/selectable.rs:213:32 | 213 | .load::<(i32, String)>(&mut conn) - | ---- ^^^^^^^^^ the trait `diesel::Queryable<diesel::expression::select_by::SelectBy<Post, _>, _>` is not implemented for `(i32, std::string::String)`, which is required by `SelectStatement<FromClause<posts::table>, diesel::query_builder::select_clause::SelectClause<diesel::expression::select_by::SelectBy<Post, _>>>: LoadQuery<'_, _, (i32, std::string::String)>` + | ---- ^^^^^^^^^ the trait `diesel::Queryable<diesel::expression::select_by::SelectBy<Post, _>, _>` is not implemented for `(i32, std::string::String)` | | | required by a bound introduced by this call | @@ -877,7 +877,7 @@ error[E0277]: the trait bound `diesel::expression::select_by::SelectBy<Post, _>: --> tests/fail/selectable.rs:218:32 | 218 | .load::<(i32, String)>(&mut conn) - | ---- ^^^^^^^^^ the trait `SingleValue` is not implemented for `diesel::expression::select_by::SelectBy<Post, _>`, which is required by `BoxedSelectStatement<'_, diesel::expression::select_by::SelectBy<Post, _>, FromClause<posts::table>, _>: LoadQuery<'_, _, (i32, std::string::String)>` + | ---- ^^^^^^^^^ the trait `SingleValue` is not implemented for `diesel::expression::select_by::SelectBy<Post, _>` | | | required by a bound introduced by this call | @@ -906,7 +906,7 @@ error[E0277]: the trait bound `(i32, std::string::String): diesel::Queryable<die --> tests/fail/selectable.rs:218:32 | 218 | .load::<(i32, String)>(&mut conn) - | ---- ^^^^^^^^^ the trait `diesel::Queryable<diesel::expression::select_by::SelectBy<Post, _>, _>` is not implemented for `(i32, std::string::String)`, which is required by `BoxedSelectStatement<'_, diesel::expression::select_by::SelectBy<Post, _>, FromClause<posts::table>, _>: LoadQuery<'_, _, (i32, std::string::String)>` + | ---- ^^^^^^^^^ the trait `diesel::Queryable<diesel::expression::select_by::SelectBy<Post, _>, _>` is not implemented for `(i32, std::string::String)` | | | required by a bound introduced by this call | @@ -936,10 +936,11 @@ error[E0277]: the trait bound `(diesel::expression::select_by::SelectBy<Post, _> --> tests/fail/selectable.rs:222:42 | 222 | .load::<((i32, String), String)>(&mut conn) - | ---- ^^^^^^^^^ the trait `load_dsl::private::CompatibleType<((i32, std::string::String), std::string::String), _>` is not implemented for `(diesel::expression::select_by::SelectBy<Post, _>, diesel::sql_types::Text)`, which is required by `SelectStatement<FromClause<posts::table>, diesel::query_builder::select_clause::SelectClause<(diesel::expression::select_by::SelectBy<Post, _>, posts::columns::title)>>: LoadQuery<'_, _, ((i32, std::string::String), std::string::String)>` + | ---- ^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `load_dsl::private::CompatibleType<((i32, std::string::String), std::string::String), _>` is not implemented for `(diesel::expression::select_by::SelectBy<Post, _>, diesel::sql_types::Text)` = note: this is a mismatch between what your query returns and what your type expects the query to return = note: the fields in your struct need to match the fields returned by your query in count, order and type = note: consider using `#[derive(Selectable)]` or #[derive(QueryableByName)] + `#[diesel(check_for_backend(_))]` @@ -968,7 +969,7 @@ error[E0277]: the trait bound `diesel::expression::select_by::SelectBy<Post, _>: --> tests/fail/selectable.rs:227:37 | 227 | .load::<(i32, String, i32)>(&mut conn) - | ---- ^^^^^^^^^ the trait `SingleValue` is not implemented for `diesel::expression::select_by::SelectBy<Post, _>`, which is required by `InsertStatement<posts::table, diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<posts::columns::title, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, posts::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<diesel::expression::select_by::SelectBy<Post, _>>>: LoadQuery<'_, _, (i32, std::string::String, i32)>` + | ---- ^^^^^^^^^ the trait `SingleValue` is not implemented for `diesel::expression::select_by::SelectBy<Post, _>` | | | required by a bound introduced by this call | @@ -997,7 +998,7 @@ error[E0277]: the trait bound `(i32, std::string::String, i32): diesel::Queryabl --> tests/fail/selectable.rs:227:37 | 227 | .load::<(i32, String, i32)>(&mut conn) - | ---- ^^^^^^^^^ the trait `diesel::Queryable<diesel::expression::select_by::SelectBy<Post, _>, _>` is not implemented for `(i32, std::string::String, i32)`, which is required by `InsertStatement<posts::table, diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<posts::columns::title, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, posts::table>, diesel::query_builder::insert_statement::private::Insert, ReturningClause<diesel::expression::select_by::SelectBy<Post, _>>>: LoadQuery<'_, _, (i32, std::string::String, i32)>` + | ---- ^^^^^^^^^ the trait `diesel::Queryable<diesel::expression::select_by::SelectBy<Post, _>, _>` is not implemented for `(i32, std::string::String, i32)` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/selectable_with_typemisamatch.stderr b/diesel_compile_tests/tests/fail/selectable_with_typemisamatch.stderr index 4412eb872c92..6069df6ccb47 100644 --- a/diesel_compile_tests/tests/fail/selectable_with_typemisamatch.stderr +++ b/diesel_compile_tests/tests/fail/selectable_with_typemisamatch.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `i32: FromSqlRow<diesel::sql_types::Text, Pg>` is --> tests/fail/selectable_with_typemisamatch.rs:17:11 | 17 | name: i32, - | ^^^ the trait `FromSql<diesel::sql_types::Text, Pg>` is not implemented for `i32`, which is required by `i32: FromSqlRow<diesel::sql_types::Text, Pg>` + | ^^^ the trait `FromSql<diesel::sql_types::Text, Pg>` is not implemented for `i32` | = note: double check your type mappings via the documentation of `diesel::sql_types::Text` = note: `diesel::sql_query` requires the loading target to column names for loading values. @@ -19,7 +19,7 @@ error[E0277]: cannot deserialize a value of the database type `diesel::sql_types --> tests/fail/selectable_with_typemisamatch.rs:16:9 | 16 | id: String, - | ^^^^^^ the trait `FromSql<diesel::sql_types::Integer, Pg>` is not implemented for `*const str`, which is required by `std::string::String: FromSqlRow<diesel::sql_types::Integer, Pg>` + | ^^^^^^ the trait `FromSql<diesel::sql_types::Integer, Pg>` is not implemented for `*const str` | = note: double check your type mappings via the documentation of `diesel::sql_types::Integer` = help: the following other types implement trait `FromSql<A, DB>`: @@ -35,7 +35,7 @@ error[E0277]: the trait bound `diesel::expression::select_by::SelectBy<User, _>: --> tests/fail/selectable_with_typemisamatch.rs:33:15 | 33 | .load(&mut conn) - | ---- ^^^^^^^^^ the trait `load_dsl::private::CompatibleType<_, _>` is not implemented for `diesel::expression::select_by::SelectBy<User, _>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<diesel::expression::select_by::SelectBy<User, _>>>: LoadQuery<'_, _, _>` + | ---- ^^^^^^^^^ the trait `load_dsl::private::CompatibleType<_, _>` is not implemented for `diesel::expression::select_by::SelectBy<User, _>` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.stderr b/diesel_compile_tests/tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.stderr index da1441d4b9d9..bf5227938f54 100644 --- a/diesel_compile_tests/tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.stderr +++ b/diesel_compile_tests/tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.stderr @@ -2,7 +2,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs:23:30 | 23 | let stuff = users::table.select((posts::id, posts::user_id)); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `SelectStatement<FromClause<users::table>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | = note: `posts::columns::id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -20,7 +20,7 @@ error[E0277]: Cannot select `posts::columns::user_id` from `users::table` --> tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs:23:30 | 23 | let stuff = users::table.select((posts::id, posts::user_id)); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::user_id`, which is required by `SelectStatement<FromClause<users::table>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::user_id` | = note: `posts::columns::user_id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -38,7 +38,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs:23:30 | 23 | let stuff = users::table.select((posts::id, posts::user_id)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<users::table>` --> tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs:14:9 @@ -55,7 +55,7 @@ error[E0277]: Cannot select `posts::columns::id` from `users::table` --> tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs:24:30 | 24 | let stuff = users::table.select((posts::id, users::name)); - | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id`, which is required by `SelectStatement<FromClause<users::table>>: SelectDsl<_>` + | ^^^^^^ the trait `SelectableExpression<users::table>` is not implemented for `posts::columns::id` | = note: `posts::columns::id` is no valid selection for `users::table` = help: the following other types implement trait `SelectableExpression<QS>`: @@ -73,7 +73,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs:24:30 | 24 | let stuff = users::table.select((posts::id, users::name)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<users::table>` --> tests/fail/selecting_multiple_columns_requires_all_must_be_from_selectable_table.rs:14:9 diff --git a/diesel_compile_tests/tests/fail/sqlite_insert_or_ignore_cannot_be_used_on_pg.stderr b/diesel_compile_tests/tests/fail/sqlite_insert_or_ignore_cannot_be_used_on_pg.stderr index 3f82179427f6..1caa48b721d4 100644 --- a/diesel_compile_tests/tests/fail/sqlite_insert_or_ignore_cannot_be_used_on_pg.stderr +++ b/diesel_compile_tests/tests/fail/sqlite_insert_or_ignore_cannot_be_used_on_pg.stderr @@ -2,7 +2,7 @@ error[E0277]: `diesel::query_builder::insert_statement::private::InsertOrIgnore` --> tests/fail/sqlite_insert_or_ignore_cannot_be_used_on_pg.rs:21:18 | 21 | .execute(&mut connection) - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::insert_statement::private::InsertOrIgnore`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, users::table>, diesel::query_builder::insert_statement::private::InsertOrIgnore>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::insert_statement::private::InsertOrIgnore` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/sqlite_upsert_cannot_be_used_on_pg.stderr b/diesel_compile_tests/tests/fail/sqlite_upsert_cannot_be_used_on_pg.stderr index 9e420102a1b9..e4fa62672519 100644 --- a/diesel_compile_tests/tests/fail/sqlite_upsert_cannot_be_used_on_pg.stderr +++ b/diesel_compile_tests/tests/fail/sqlite_upsert_cannot_be_used_on_pg.stderr @@ -2,7 +2,7 @@ error[E0277]: `diesel::query_builder::insert_statement::private::Replace` is no --> tests/fail/sqlite_upsert_cannot_be_used_on_pg.rs:21:18 | 21 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::insert_statement::private::Replace`, which is required by `InsertStatement<users::table, diesel::query_builder::insert_statement::ValuesClause<(DefaultableColumnInsertValue<ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, &i32>>>,), users::table>, diesel::query_builder::insert_statement::private::Replace>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Pg>` is not implemented for `diesel::query_builder::insert_statement::private::Replace` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/subselect_requires_correct_type.stderr b/diesel_compile_tests/tests/fail/subselect_requires_correct_type.stderr index 6937dfd5f0c0..22beb13a6428 100644 --- a/diesel_compile_tests/tests/fail/subselect_requires_correct_type.stderr +++ b/diesel_compile_tests/tests/fail/subselect_requires_correct_type.stderr @@ -2,11 +2,12 @@ error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel: --> tests/fail/subselect_requires_correct_type.rs:22:59 | 22 | let query = posts::table.filter(posts::user_id.eq_any(subquery)); - | ------ ^^^^^^^^ the trait `AsInExpression<diesel::sql_types::Integer>` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<users::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` + | ------ ^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | - = help: the trait `AsInExpression<(diesel::sql_types::Integer, diesel::sql_types::Text)>` is implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<users::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` + = help: the trait `AsInExpression<diesel::sql_types::Integer>` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<users::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` + but trait `AsInExpression<(diesel::sql_types::Integer, diesel::sql_types::Text)>` is implemented for it = help: for that trait implementation, expected `(diesel::sql_types::Integer, diesel::sql_types::Text)`, found `diesel::sql_types::Integer` note: required by a bound in `eq_any` --> $DIESEL/src/expression_methods/global_expression_methods.rs diff --git a/diesel_compile_tests/tests/fail/update_requires_column_be_from_same_table.stderr b/diesel_compile_tests/tests/fail/update_requires_column_be_from_same_table.stderr index f989788fb9c3..c5987efc7081 100644 --- a/diesel_compile_tests/tests/fail/update_requires_column_be_from_same_table.stderr +++ b/diesel_compile_tests/tests/fail/update_requires_column_be_from_same_table.stderr @@ -48,7 +48,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/update_requires_column_be_from_same_table.rs:25:33 | 25 | let command = update(users).set(name.eq(posts::title)); - | ^^^ expected `Never`, found `Once` + | ^^^ expected `Once`, found `Never` | note: required for `posts::columns::title` to implement `AppearsOnTable<users::table>` --> tests/fail/update_requires_column_be_from_same_table.rs:15:9 diff --git a/diesel_compile_tests/tests/fail/update_requires_left_side_of_eq_to_be_a_column.stderr b/diesel_compile_tests/tests/fail/update_requires_left_side_of_eq_to_be_a_column.stderr index c296b4f687be..5bcd43a99936 100644 --- a/diesel_compile_tests/tests/fail/update_requires_left_side_of_eq_to_be_a_column.stderr +++ b/diesel_compile_tests/tests/fail/update_requires_left_side_of_eq_to_be_a_column.stderr @@ -2,7 +2,7 @@ error[E0277]: the trait bound `diesel::expression::bound::Bound<diesel::sql_type --> tests/fail/update_requires_left_side_of_eq_to_be_a_column.rs:16:33 | 16 | let command = update(users).set(foo.eq(name)); - | ^^^ the trait `Column` is not implemented for `diesel::expression::bound::Bound<diesel::sql_types::Text, &str>`, which is required by `diesel::expression::operators::Eq<diesel::expression::bound::Bound<diesel::sql_types::Text, &str>, columns::name>: AsChangeset` + | ^^^ the trait `Column` is not implemented for `diesel::expression::bound::Bound<diesel::sql_types::Text, &str>` | = help: the following other types implement trait `Column`: columns::id diff --git a/diesel_compile_tests/tests/fail/update_requires_set.stderr b/diesel_compile_tests/tests/fail/update_requires_set.stderr index e7124b6ec5c0..49192ea7b5af 100644 --- a/diesel_compile_tests/tests/fail/update_requires_set.stderr +++ b/diesel_compile_tests/tests/fail/update_requires_set.stderr @@ -2,7 +2,7 @@ error[E0277]: `diesel::query_builder::update_statement::SetNotCalled` is no vali --> tests/fail/update_requires_set.rs:14:18 | 14 | .execute(&mut conn); - | ------- ^^^^^^^^^ the trait `QueryFragment<_>` is not implemented for `diesel::query_builder::update_statement::SetNotCalled`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::NoWhereClause>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^ the trait `QueryFragment<_>` is not implemented for `diesel::query_builder::update_statement::SetNotCalled` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/update_requires_valid_where_clause.stderr b/diesel_compile_tests/tests/fail/update_requires_valid_where_clause.stderr index a3dd106c9005..b34bdfa55e9e 100644 --- a/diesel_compile_tests/tests/fail/update_requires_valid_where_clause.stderr +++ b/diesel_compile_tests/tests/fail/update_requires_valid_where_clause.stderr @@ -2,10 +2,11 @@ error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel: --> tests/fail/update_requires_valid_where_clause.rs:23:12 | 23 | update(users::table.filter(posts::id.eq(1))); - | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `IntoUpdateTarget` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<posts::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` + | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `IntoUpdateTarget` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<posts::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` = help: the trait `IntoUpdateTarget` is implemented for `SelectStatement<FromClause<F>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<F>>, diesel::query_builder::distinct_clause::NoDistinctClause, W>` note: required by a bound in `diesel::update` --> $DIESEL/src/query_builder/functions.rs @@ -22,7 +23,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/update_requires_valid_where_clause.rs:25:26 | 25 | update(users::table).filter(posts::id.eq(1)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<users::table>` --> tests/fail/update_requires_valid_where_clause.rs:13:9 @@ -38,7 +39,7 @@ error[E0271]: type mismatch resolving `<table as AppearsInFromClause<table>>::Co --> tests/fail/update_requires_valid_where_clause.rs:29:10 | 29 | .filter(posts::id.eq(1)); - | ^^^^^^ expected `Never`, found `Once` + | ^^^^^^ expected `Once`, found `Never` | note: required for `posts::columns::id` to implement `AppearsOnTable<users::table>` --> tests/fail/update_requires_valid_where_clause.rs:13:9 @@ -54,6 +55,7 @@ error[E0277]: the trait bound `SelectStatement<FromClause<users::table>, diesel: --> tests/fail/update_requires_valid_where_clause.rs:23:5 | 23 | update(users::table.filter(posts::id.eq(1))); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `IntoUpdateTarget` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<posts::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | + = help: the trait `IntoUpdateTarget` is not implemented for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<posts::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>>` = help: the trait `IntoUpdateTarget` is implemented for `SelectStatement<FromClause<F>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<F>>, diesel::query_builder::distinct_clause::NoDistinctClause, W>` diff --git a/diesel_compile_tests/tests/fail/update_statement_does_not_support_returning_methods_on_sqlite.stderr b/diesel_compile_tests/tests/fail/update_statement_does_not_support_returning_methods_on_sqlite.stderr index 14be5b998801..8f1caf613958 100644 --- a/diesel_compile_tests/tests/fail/update_statement_does_not_support_returning_methods_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/update_statement_does_not_support_returning_methods_on_sqlite.stderr @@ -2,7 +2,7 @@ error[E0277]: `ReturningClause<(columns::id, columns::name)>` is no valid SQL fr --> tests/fail/update_statement_does_not_support_returning_methods_on_sqlite.rs:18:21 | 18 | .get_result(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<(columns::id, columns::name)>`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>, diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<columns::name>, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>>: LoadQuery<'_, _, _>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<(columns::id, columns::name)>` | | | required by a bound introduced by this call | @@ -29,7 +29,7 @@ error[E0277]: `ReturningClause<columns::name>` is no valid SQL fragment for the --> tests/fail/update_statement_does_not_support_returning_methods_on_sqlite.rs:23:21 | 23 | .get_result(&mut connection); - | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<columns::name>`, which is required by `UpdateStatement<users::table, diesel::query_builder::where_clause::WhereClause<diesel::expression::grouped::Grouped<diesel::expression::operators::Eq<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>, diesel::query_builder::update_statement::changeset::Assign<diesel::query_builder::update_statement::changeset::ColumnWrapperForUpdate<columns::name>, diesel::expression::bound::Bound<diesel::sql_types::Text, &str>>, ReturningClause<columns::name>>: LoadQuery<'_, _, _>` + | ---------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, DoesNotSupportReturningClause>` is not implemented for `ReturningClause<columns::name>` | | | required by a bound introduced by this call | diff --git a/diesel_compile_tests/tests/fail/upsert_with_multiple_values_not_supported_on_sqlite.stderr b/diesel_compile_tests/tests/fail/upsert_with_multiple_values_not_supported_on_sqlite.stderr index c18a288c4949..c9a05ecf01ed 100644 --- a/diesel_compile_tests/tests/fail/upsert_with_multiple_values_not_supported_on_sqlite.stderr +++ b/diesel_compile_tests/tests/fail/upsert_with_multiple_values_not_supported_on_sqlite.stderr @@ -24,10 +24,11 @@ error[E0277]: `BatchInsert<Vec<diesel::query_builder::insert_statement::ValuesCl --> tests/fail/upsert_with_multiple_values_not_supported_on_sqlite.rs:17:18 | 17 | .execute(&mut connection); - | ------- ^^^^^^^^^^^^^^^ the trait `QueryFragment<Sqlite, sqlite::backend::SqliteBatchInsert>` is not implemented for `BatchInsert<Vec<diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, users::table>>, users::table, (), false>`, which is required by `InsertStatement<users::table, diesel::query_builder::upsert::on_conflict_clause::OnConflictValues<BatchInsert<Vec<diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, users::table>>, users::table, (), false>, diesel::query_builder::upsert::on_conflict_target::NoConflictTarget, diesel::query_builder::upsert::on_conflict_actions::DoNothing<users::table>>>: ExecuteDsl<_, _>` + | ------- ^^^^^^^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | + = help: the trait `QueryFragment<Sqlite, sqlite::backend::SqliteBatchInsert>` is not implemented for `BatchInsert<Vec<diesel::query_builder::insert_statement::ValuesClause<ColumnInsertValue<columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>, users::table>>, users::table, (), false>` = note: this usually means that the `Sqlite` database system does not support this SQL syntax = help: the following other types implement trait `QueryFragment<DB, SP>`: diff --git a/diesel_compile_tests/tests/fail/user_defined_functions_follow_same_selection_rules.stderr b/diesel_compile_tests/tests/fail/user_defined_functions_follow_same_selection_rules.stderr index b5633720fe2d..9b07cfa5a877 100644 --- a/diesel_compile_tests/tests/fail/user_defined_functions_follow_same_selection_rules.stderr +++ b/diesel_compile_tests/tests/fail/user_defined_functions_follow_same_selection_rules.stderr @@ -2,7 +2,7 @@ error[E0271]: type mismatch resolving `<foo<Bound<Integer, i32>> as Expression>: --> tests/fail/user_defined_functions_follow_same_selection_rules.rs:37:38 | 37 | let _ = users::table.filter(name.eq(foo(1))); - | ^^ expected `Integer`, found `Text` + | ^^ expected `Text`, found `Integer` | = note: required for `foo_utils::foo<diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>` to implement `AsExpression<diesel::sql_types::Text>` diff --git a/diesel_compile_tests/tests/fail/valid_grouping_and_boxed_expressions.stderr b/diesel_compile_tests/tests/fail/valid_grouping_and_boxed_expressions.stderr index 8301ee8e495c..f7fe6d2f76dd 100644 --- a/diesel_compile_tests/tests/fail/valid_grouping_and_boxed_expressions.stderr +++ b/diesel_compile_tests/tests/fail/valid_grouping_and_boxed_expressions.stderr @@ -10,9 +10,10 @@ error[E0277]: the trait bound `dyn diesel::BoxableExpression<users::table, Pg, S --> tests/fail/valid_grouping_and_boxed_expressions.rs:71:10 | 71 | .select(some_ungrouped_expression(true)) - | ^^^^^^ the trait `ValidGrouping<columns::id>` is not implemented for `dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>: SelectDsl<_>` + | ^^^^^^ unsatisfied trait bound | - = help: the trait `ValidGrouping<()>` is implemented for `dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>` + = help: the trait `ValidGrouping<columns::id>` is not implemented for `dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>` + but trait `ValidGrouping<()>` is implemented for it = help: for that trait implementation, expected `()`, found `columns::id` = note: required for `Box<dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>>` to implement `ValidGrouping<columns::id>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::DefaultSelectClause<FromClause<users::table>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>` to implement `SelectDsl<Box<dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>>>` @@ -21,11 +22,12 @@ error[E0277]: the trait bound `dyn diesel::BoxableExpression<users::table, Pg, S --> tests/fail/valid_grouping_and_boxed_expressions.rs:72:22 | 72 | .load::<i32>(&mut conn); - | ---- ^^^^^^^^^ the trait `ValidGrouping<columns::id>` is not implemented for `dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<Box<dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>: LoadQuery<'_, _, i32>` + | ---- ^^^^^^^^^ unsatisfied trait bound | | | required by a bound introduced by this call | - = help: the trait `ValidGrouping<()>` is implemented for `dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>` + = help: the trait `ValidGrouping<columns::id>` is not implemented for `dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>` + but trait `ValidGrouping<()>` is implemented for it = help: for that trait implementation, expected `()`, found `columns::id` = note: required for `Box<dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>>` to implement `ValidGrouping<columns::id>` = note: required for `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<Box<dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>>>, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::NoWhereClause, diesel::query_builder::order_clause::NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, diesel::query_builder::group_by_clause::GroupByClause<columns::id>>` to implement `Query` @@ -45,7 +47,7 @@ error[E0271]: type mismatch resolving `<name as IsContainedInGroupBy<id>>::Outpu 88 | .select(maybe_grouped(true)) | ^^^^^^^^^^^^^^^^^^^ type mismatch resolving `<name as IsContainedInGroupBy<id>>::Output == Yes` | -note: expected this to be `diesel::expression::is_contained_in_group_by::No` +note: expected this to be `diesel::expression::is_contained_in_group_by::Yes` --> tests/fail/valid_grouping_and_boxed_expressions.rs:11:9 | 11 | name -> Text, @@ -61,7 +63,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::Yes: MixedAggre --> tests/fail/valid_grouping_and_boxed_expressions.rs:104:10 | 104 | .select(( - | ^^^^^^ the trait `MixedAggregates<diesel::expression::is_aggregate::No>` is not implemented for `diesel::expression::is_aggregate::Yes`, which is required by `SelectStatement<FromClause<users::table>>: SelectDsl<_>` + | ^^^^^^ the trait `MixedAggregates<diesel::expression::is_aggregate::No>` is not implemented for `diesel::expression::is_aggregate::Yes` | = help: the following other types implement trait `MixedAggregates<Other>`: `diesel::expression::is_aggregate::Yes` implements `MixedAggregates<diesel::expression::is_aggregate::Never>` @@ -73,7 +75,7 @@ error[E0277]: the trait bound `diesel::expression::is_aggregate::Yes: MixedAggre --> tests/fail/valid_grouping_and_boxed_expressions.rs:108:37 | 108 | .load::<(Option<i32>, i32)>(&mut conn); - | ---- ^^^^^^^^^ the trait `MixedAggregates<diesel::expression::is_aggregate::No>` is not implemented for `diesel::expression::is_aggregate::Yes`, which is required by `SelectStatement<FromClause<users::table>, diesel::query_builder::select_clause::SelectClause<(Box<dyn diesel::BoxableExpression<users::table, Pg, (), diesel::expression::is_aggregate::Yes, SqlType = Nullable<diesel::sql_types::Integer>>>, Box<dyn diesel::BoxableExpression<users::table, Pg, SqlType = diesel::sql_types::Integer>>)>>: LoadQuery<'_, _, (Option<i32>, i32)>` + | ---- ^^^^^^^^^ the trait `MixedAggregates<diesel::expression::is_aggregate::No>` is not implemented for `diesel::expression::is_aggregate::Yes` | | | required by a bound introduced by this call | diff --git a/diesel_tests/Cargo.toml b/diesel_tests/Cargo.toml index 7c4eda388bb4..510a6332f2d2 100644 --- a/diesel_tests/Cargo.toml +++ b/diesel_tests/Cargo.toml @@ -22,7 +22,7 @@ ipnetwork = ">=0.12.2, <0.22.0" bigdecimal = ">= 0.0.13, < 0.5.0" rand = "0.8.4" libsqlite3-sys = { workspace = true, optional = true } -pq-sys = { version = "0.7", optional = true } +pq-sys = { version = ">=0.6, <0.8", optional = true } pq-src = { version = "0.3", optional = true } mysqlclient-sys = { version = "0.4", optional = true } mysqlclient-src = { version = "0.1.0", optional = true }