Skip to content

Commit

Permalink
fix nullability of IN / NOT IN / = ANY / != ALL
Browse files Browse the repository at this point in the history
Conflicts:
	diesel/src/expression/array_comparison.rs
  • Loading branch information
Ten0 committed Nov 20, 2024
1 parent e656d16 commit 80e8833
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions diesel/src/expression/array_comparison.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
//! This module contains the query dsl node definitions
//! for array comparison operations like `IN` and `NOT IN`
use crate::backend::sql_dialect;
use crate::backend::Backend;
use crate::backend::SqlDialect;
use crate::backend::{sql_dialect, Backend, SqlDialect};
use crate::expression::subselect::Subselect;
use crate::expression::{
AppearsOnTable, AsExpression, Expression, SelectableExpression, TypedExpressionType,
Expand All @@ -15,8 +13,7 @@ use crate::query_builder::{
};
use crate::result::QueryResult;
use crate::serialize::ToSql;
use crate::sql_types::HasSqlType;
use crate::sql_types::{Bool, SingleValue, SqlType};
use crate::sql_types::{self, HasSqlType, SingleValue, SqlType};
use std::marker::PhantomData;

/// Query dsl node that represents a `left IN (values)`
Expand Down Expand Up @@ -75,16 +72,28 @@ impl<T, U> Expression for In<T, U>
where
T: Expression,
U: Expression<SqlType = T::SqlType>,
T::SqlType: SqlType,
sql_types::is_nullable::IsSqlTypeNullable<T::SqlType>:
sql_types::MaybeNullableType<sql_types::Bool>,
{
type SqlType = Bool;
type SqlType = sql_types::is_nullable::MaybeNullable<
sql_types::is_nullable::IsSqlTypeNullable<T::SqlType>,
sql_types::Bool,
>;
}

impl<T, U> Expression for NotIn<T, U>
where
T: Expression,
U: Expression<SqlType = T::SqlType>,
T::SqlType: SqlType,
sql_types::is_nullable::IsSqlTypeNullable<T::SqlType>:
sql_types::MaybeNullableType<sql_types::Bool>,
{
type SqlType = Bool;
type SqlType = sql_types::is_nullable::MaybeNullable<
sql_types::is_nullable::IsSqlTypeNullable<T::SqlType>,
sql_types::Bool,
>;
}

impl<T, U, DB> QueryFragment<DB> for In<T, U>
Expand Down

0 comments on commit 80e8833

Please sign in to comment.