SelectBuilder

Struct SelectBuilder 

Source
pub struct SelectBuilder { /* private fields */ }
Available on crate feature unparser only.

Implementations§

Source§

impl SelectBuilder

Source

pub fn distinct(&mut self, value: Option<Distinct>) -> &mut Self

Source

pub fn top(&mut self, value: Option<Top>) -> &mut Self

Source

pub fn projection(&mut self, value: Vec<SelectItem>) -> &mut Self

Source

pub fn pop_projections(&mut self) -> Vec<SelectItem>

Source

pub fn already_projected(&self) -> bool

Returns true if a projection has been explicitly set via projection().

This method is used to determine whether the SELECT clause has already been defined, which helps avoid creating duplicate projection nodes during query unparsing. It returns true for both empty and non-empty projections.

§Returns
  • true if projection() has been called (regardless of whether it was empty or not)
  • false if no projection has been set yet
§Example
let mut builder = SelectBuilder::default();
assert!(!builder.already_projected());

builder.projection(vec![]);
assert!(builder.already_projected()); // true even for empty projection

builder.projection(vec![SelectItem::Wildcard(...)]);
assert!(builder.already_projected()); // true for non-empty projection
Source

pub fn into(&mut self, value: Option<SelectInto>) -> &mut Self

Source

pub fn from(&mut self, value: Vec<TableWithJoinsBuilder>) -> &mut Self

Source

pub fn push_from(&mut self, value: TableWithJoinsBuilder) -> &mut Self

Source

pub fn pop_from(&mut self) -> Option<TableWithJoinsBuilder>

Source

pub fn lateral_views(&mut self, value: Vec<LateralView>) -> &mut Self

Source

pub fn replace_mark(&mut self, existing_expr: &Expr, value: &Expr) -> &mut Self

Replaces the selection with a new value.

This function is used to replace a specific expression within the selection. Unlike the selection method which combines existing and new selections with AND, this method searches for and replaces occurrences of a specific expression.

This method is primarily used to modify LEFT MARK JOIN expressions. When processing a LEFT MARK JOIN, we need to replace the placeholder expression with the actual join condition in the selection clause.

§Arguments
  • existing_expr - The expression to replace
  • value - The new expression to set as the selection
Source

pub fn selection(&mut self, value: Option<Expr>) -> &mut Self

Source

pub fn group_by(&mut self, value: GroupByExpr) -> &mut Self

Source

pub fn cluster_by(&mut self, value: Vec<Expr>) -> &mut Self

Source

pub fn distribute_by(&mut self, value: Vec<Expr>) -> &mut Self

Source

pub fn sort_by(&mut self, value: Vec<OrderByExpr>) -> &mut Self

Source

pub fn having(&mut self, value: Option<Expr>) -> &mut Self

Source

pub fn named_window(&mut self, value: Vec<NamedWindowDefinition>) -> &mut Self

Source

pub fn qualify(&mut self, value: Option<Expr>) -> &mut Self

Source

pub fn value_table_mode(&mut self, value: Option<ValueTableMode>) -> &mut Self

Source

pub fn build(&self) -> Result<Select, BuilderError>

Trait Implementations§

Source§

impl Clone for SelectBuilder

Source§

fn clone(&self) -> SelectBuilder

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for SelectBuilder

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,