Skip to main content

UntypedExpressionMethods

Trait UntypedExpressionMethods 

Source
pub trait UntypedExpressionMethods: Sized {
    // Provided methods
    fn is_null(self) -> IsNull<Self> { ... }
    fn is_not_null(self) -> IsNotNull<Self> { ... }
    fn desc(self) -> Desc<Self> { ... }
    fn asc(self) -> Asc<Self> { ... }
}
Expand description

Methods present on untyped expressions.

This trait is implemented for expressions where the sql type is Untyped. This allows calling common operators on these expressions.

This trait is primarily meant to be used for untyped queries in diesel_dynamic_schema.

Provided Methods§

Source

fn is_null(self) -> IsNull<Self>

Creates a SQL IS NULL expression.

§Example
use diesel::sql_types::Untyped;
use diesel::dsl::sql;

let data = animals
    .select(species)
    .filter(sql::<Untyped>("name").is_null())
    .first::<String>(connection)?;
assert_eq!("spider", data);
Source

fn is_not_null(self) -> IsNotNull<Self>

Creates a SQL IS NOT NULL expression.

§Example
use diesel::sql_types::Untyped;
use diesel::dsl::sql;

let data = animals
    .select(species)
    .filter(sql::<Untyped>("name").is_not_null())
    .first::<String>(connection)?;
assert_eq!("dog", data);
Source

fn desc(self) -> Desc<Self>

Creates a SQL DESC expression, representing this expression in descending order.

§Example
use diesel::sql_types::Untyped;
use diesel::dsl::sql;

let data = users
    .select(name)
    .order(sql::<Untyped>("name").desc())
    .load::<String>(connection)?;
let expected = vec!["Tess", "Sean"];
assert_eq!(expected, data);
Source

fn asc(self) -> Asc<Self>

Creates a SQL ASC expression, representing this expression in ascending order.

§Example
use diesel::sql_types::Untyped;
use diesel::dsl::sql;

let data = users
    .select(name)
    .order(sql::<Untyped>("name").asc())
    .load::<String>(connection)?;
let expected = vec!["Sean", "Tess"];
assert_eq!(expected, data);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T> UntypedExpressionMethods for T
where T: Expression<SqlType = Untyped>,