Skip to main content

SetOp

Struct SetOp 

Source
pub struct SetOp {
    pub kind: SetKind,
    pub all: bool,
    pub left: SetTree,
    pub right: SetTree,
    pub columns: Vec<(u32, i32)>,
    pub groups: Vec<SortGroup>,
    pub work: Option<usize>,
    pub project: Vec<Expr>,
}
Expand description

An operation of the tree, as SetOperationStmt.

Fields§

§kind: SetKind§all: bool

ALL: the operation keeps the rows that are equal.

§left: SetTree§right: SetTree§columns: Vec<(u32, i32)>

The type and the typmod of each column of the result.

§groups: Vec<SortGroup>

The operators that find the equal rows, one for each column, as groupClauses. UNION ALL has none.

§work: Option<usize>

For the UNION of a recursive query of WITH, as RecursiveUnion, the number of the work table that the reference of the recursive term reads. The right side runs again with the rows of the last step in the work table until it gives no new rows.

§project: Vec<Expr>

The casts of the columns of the operation to the types of the operation above it, which the planner fills for EXPLAIN: a Result above the plan of the operation computes them, as recurse_set_operations adds it. Each cast reads the column of the leftmost SELECT. Empty when the types are the same.

Trait Implementations§

Source§

impl Clone for SetOp

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SetOp

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SetOp

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for SetOp

Auto Trait Implementations§

§

impl Freeze for SetOp

§

impl RefUnwindSafe for SetOp

§

impl Send for SetOp

§

impl Sync for SetOp

§

impl Unpin for SetOp

§

impl UnsafeUnpin for SetOp

§

impl UnwindSafe for SetOp

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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.