#[derive(Debug, Clone)]
pub enum QueryOp {
Aggregate {
collection: String,
group_by: Vec<String>,
aggregates: Vec<(String, String)>,
filters: Vec<u8>,
having: Vec<u8>,
limit: usize,
sub_group_by: Vec<String>,
sub_aggregates: Vec<(String, String)>,
},
PartialAggregate {
collection: String,
group_by: Vec<String>,
aggregates: Vec<(String, String)>,
filters: Vec<u8>,
},
HashJoin {
left_collection: String,
right_collection: String,
on: Vec<(String, String)>,
join_type: String,
limit: usize,
},
BroadcastJoin {
large_collection: String,
broadcast_data: Vec<u8>,
on: Vec<(String, String)>,
join_type: String,
limit: usize,
},
ShuffleJoin {
left_collection: String,
right_collection: String,
on: Vec<(String, String)>,
join_type: String,
limit: usize,
target_core: usize,
},
NestedLoopJoin {
left_collection: String,
right_collection: String,
condition: Vec<u8>,
join_type: String,
limit: usize,
},
}