MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
NestedLoopJoinPhysicalOperator类 参考

最简单的两表(称为左表、右表)join算子 更多...

#include <join_physical_operator.h>

类 NestedLoopJoinPhysicalOperator 继承关系图:
PhysicalOperator

Public 成员函数

PhysicalOperatorType type () const override
 
RC open (Trx *trx) override
 
RC next () override
 
RC close () override
 
Tuplecurrent_tuple () override
 
- Public 成员函数 继承自 PhysicalOperator
virtual std::string name () const
 
virtual std::string param () const
 
virtual PhysicalOperatorType type () const =0
 
virtual RC open (Trx *trx)=0
 
virtual RC next ()=0
 
virtual RC close ()=0
 
virtual Tuplecurrent_tuple ()=0
 
void add_child (std::unique_ptr< PhysicalOperator > oper)
 
std::vector< std::unique_ptr< PhysicalOperator > > & children ()
 

Private 成员函数

RC left_next ()
 
RC right_next ()
 左表遍历下一条数据
 

Private 属性

Trxtrx_ = nullptr
 右表遍历下一条数据,如果上一轮结束了就重新开始新的一轮
 
PhysicalOperatorleft_ = nullptr
 左表右表的真实对象是在PhysicalOperator::children_中,这里是为了写的时候更简单
 
PhysicalOperatorright_ = nullptr
 
Tupleleft_tuple_ = nullptr
 
Tupleright_tuple_ = nullptr
 
JoinedTuple joined_tuple_
 
bool round_done_ = true
 当前关联的左右两个tuple
 
bool right_closed_ = true
 右表遍历的一轮是否结束
 

额外继承的成员函数

- Protected 属性 继承自 PhysicalOperator
std::vector< std::unique_ptr< PhysicalOperator > > children_
 

详细描述

最简单的两表(称为左表、右表)join算子

依次遍历左表的每一行,然后关联右表的每一行

成员函数说明

◆ close()

RC NestedLoopJoinPhysicalOperator::close ( )
overridevirtual

实现了 PhysicalOperator.

◆ current_tuple()

Tuple * NestedLoopJoinPhysicalOperator::current_tuple ( )
overridevirtual

实现了 PhysicalOperator.

◆ next()

RC NestedLoopJoinPhysicalOperator::next ( )
overridevirtual

实现了 PhysicalOperator.

◆ open()

RC NestedLoopJoinPhysicalOperator::open ( Trx trx)
overridevirtual

实现了 PhysicalOperator.

◆ type()

PhysicalOperatorType NestedLoopJoinPhysicalOperator::type ( ) const
inlineoverridevirtual

实现了 PhysicalOperator.


该类的文档由以下文件生成: