pub enum Rel {
Scan {
source: SourceName,
table: TableName,
bind: BindingName,
},
Values {
bind: BindingName,
row_type: RowType,
rows: Vec<Row>,
},
Project {
input: Box<Rel>,
bind: BindingName,
fields: Vec<NamedScalar>,
},
Filter {
input: Box<Rel>,
predicate: Scalar,
},
Join {
left: Box<Rel>,
right: Box<Rel>,
kind: JoinKind,
on: Scalar,
},
Group {
input: Box<Rel>,
bind: BindingName,
keys: Vec<NamedScalar>,
aggregates: Vec<NamedAggregate>,
having: Option<Scalar>,
},
Set {
op: SetOp,
inputs: Vec<Rel>,
},
Distinct(Box<Rel>),
Order {
input: Box<Rel>,
keys: Vec<OrderKey>,
},
Limit {
input: Box<Rel>,
count: Option<u64>,
offset: u64,
},
}Expand description
Complete logical relation algebra.
Variants§
Scan
Catalog table scan.
Values
Bounded literal rows.
Fields
§
bind: BindingNameIntroduced binding.
Project
Projection.
Filter
Predicate filter.
Join
Binary join.
Fields
Group
Grouped projection.
Fields
§
bind: BindingNameIntroduced output binding.
§
keys: Vec<NamedScalar>Group keys.
§
aggregates: Vec<NamedAggregate>Aggregates.
Set
Compatible set operation.
Distinct(Box<Rel>)
Duplicate elimination.
Order
Stable ordering.
Limit
Bounded result window.
Trait Implementations§
impl Eq for Rel
impl StructuralPartialEq for Rel
Auto Trait Implementations§
impl Freeze for Rel
impl RefUnwindSafe for Rel
impl Send for Rel
impl Sync for Rel
impl Unpin for Rel
impl UnsafeUnpin for Rel
impl UnwindSafe for Rel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more