pub enum Op {
Nop,
Seq(Vec<Op>),
Iterate {
source: DataSource,
body: Box<Op>,
},
Filter {
cond: Condition,
body: Box<Op>,
},
Insert {
relation: NameId,
args: Vec<Operand>,
},
Let {
var: NameId,
expr: Expr,
body: Box<Op>,
},
GroupBy {
source: NameId,
vars: Vec<NameId>,
keys: Vec<NameId>,
aggregates: Vec<Aggregate>,
body: Box<Op>,
},
}Variants§
Nop
A no-op.
Seq(Vec<Op>)
Sequence of operations executed in order.
Iterate
Iterate over a data source.
For each tuple yielded by source, body is executed.
Variables defined in source are bound and available in body.
Filter
Filter / Check condition.
If cond evaluates to true, body is executed.
Insert
Insert a tuple into a relation.
All variables in args must be bound.
Let
Calculate a value and bind it to a variable.
let var = expr
GroupBy
GroupBy operation.
Scans source (binding columns to vars), groups by keys, computes aggregates
for each group, and then executes body for each group.
Trait Implementations§
impl StructuralPartialEq for Op
Auto Trait Implementations§
impl Freeze for Op
impl RefUnwindSafe for Op
impl Send for Op
impl Sync for Op
impl Unpin for Op
impl UnsafeUnpin for Op
impl UnwindSafe for Op
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