17#include "sql/operator/group_by_physical_operator.h" 
   18#include "sql/expr/composite_tuple.h" 
   35  OpType               
get_op_type()
 const override { 
return OpType::HASHGROUPBY; }
 
   37  RC open(
Trx *trx) 
override;
 
   41  Tuple *current_tuple() 
override;
 
   44  using AggregatorList = GroupByPhysicalOperator::AggregatorList;
 
   47  using GroupType = tuple<ValueListTuple, GroupValueType>;
 
   53  vector<unique_ptr<Expression>> group_by_exprs_;
 
   60  vector<GroupType>::iterator current_group_;
 
   61  bool                        first_emited_ = 
false;  
 
Group By 物理算子基类
Definition: group_by_physical_operator.h:26
 
tuple< AggregatorList, CompositeTuple > GroupValueType
聚合出来的一组数据
Definition: group_by_physical_operator.h:42
 
Group By Hash 方式物理算子
Definition: hash_group_by_physical_operator.h:28
 
vector< GroupType > groups_
一组一条数据 pair的first是group by 的值列表,second是计算出来的表达式值列表 TODO 改成hash/unordered_map
Definition: hash_group_by_physical_operator.h:58
 
OpType get_op_type() const override
Definition: hash_group_by_physical_operator.h:35
 
tuple< ValueListTuple, GroupValueType > GroupType
聚合出来的一组数据
Definition: hash_group_by_physical_operator.h:47
 
事务接口
Definition: trx.h:141
 
元组的抽象描述
Definition: tuple.h:66
 
PhysicalOperatorType
物理算子类型
Definition: physical_operator.h:36