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: boolALL: 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.