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

表扫描物理算子 更多...

#include <table_scan_physical_operator.h>

类 TableScanPhysicalOperator 继承关系图:
PhysicalOperator OperatorNode

Public 成员函数

 TableScanPhysicalOperator (Table *table, ReadWriteMode mode)
 
string param () const override
 
PhysicalOperatorType type () const override
 
OpType get_op_type () const override
 
virtual uint64_t hash () const override
 
virtual bool operator== (const OperatorNode &other) const override
 
double calculate_cost (LogicalProperty *prop, const vector< LogicalProperty * > &child_log_props, CostModel *cm) override
 Calculates the cost of a logical operation. 更多...
 
RC open (Trx *trx) override
 
RC next () override
 
RC close () override
 
Tuplecurrent_tuple () override
 
void set_predicates (vector< unique_ptr< Expression > > &&exprs)
 
- Public 成员函数 继承自 PhysicalOperator
virtual string name () const
 
virtual string param () const
 
bool is_physical () const override
 
bool is_logical () const override
 
virtual PhysicalOperatorType type () const =0
 
virtual RC open (Trx *trx)=0
 
virtual RC next ()
 
virtual RC next (Chunk &chunk)
 
virtual RC close ()=0
 
virtual Tuplecurrent_tuple ()
 
virtual RC tuple_schema (TupleSchema &schema) const
 
void add_child (unique_ptr< PhysicalOperator > oper)
 
vector< unique_ptr< PhysicalOperator > > & children ()
 
- Public 成员函数 继承自 OperatorNode
virtual OpType get_op_type () const
 
virtual bool is_physical () const =0
 
virtual bool is_logical () const =0
 
virtual uint64_t hash () const
 
virtual bool operator== (const OperatorNode &other) const
 
virtual unique_ptr< LogicalPropertyfind_log_prop (const vector< LogicalProperty * > &log_props)
 Generate the logical property of the operator node using the input logical properties. 更多...
 
virtual double calculate_cost (LogicalProperty *prop, const vector< LogicalProperty * > &child_log_props, CostModel *cm)
 Calculates the cost of a logical operation. 更多...
 
void add_general_child (OperatorNode *child)
 
vector< OperatorNode * > & get_general_children ()
 

Private 成员函数

RC filter (RowTuple &tuple, bool &result)
 

Private 属性

Tabletable_ = nullptr
 
Trxtrx_ = nullptr
 
ReadWriteMode mode_ = ReadWriteMode::READ_WRITE
 
RecordScannerrecord_scanner_
 
Record current_record_
 
RowTuple tuple_
 
vector< unique_ptr< Expression > > predicates_
 

额外继承的成员函数

- Protected 属性 继承自 PhysicalOperator
vector< unique_ptr< PhysicalOperator > > children_
 
- Protected 属性 继承自 OperatorNode
vector< OperatorNode * > general_children_
 

详细描述

表扫描物理算子

成员函数说明

◆ calculate_cost()

double TableScanPhysicalOperator::calculate_cost ( LogicalProperty prop,
const vector< LogicalProperty * > &  child_log_props,
CostModel cm 
)
inlineoverridevirtual

Calculates the cost of a logical operation.

This function is intended to be overridden in derived classes. It calculates the cost associated with a specific logical property, taking into account the provided child logical properties and a cost model.

参数
propA pointer to the logical property for which the cost is being calculated.
child_log_propsA vector containing pointers to child logical properties.
cmA pointer to the cost model used for calculating the cost.
返回
The calculated cost as a double.

重载 OperatorNode .

◆ close()

RC TableScanPhysicalOperator::close ( )
overridevirtual

实现了 PhysicalOperator.

◆ current_tuple()

Tuple * TableScanPhysicalOperator::current_tuple ( )
overridevirtual

重载 PhysicalOperator .

◆ get_op_type()

OpType TableScanPhysicalOperator::get_op_type ( ) const
inlineoverridevirtual

TODO: add this function TODO: unify logical and physical OpType

重载 OperatorNode .

◆ hash()

virtual uint64_t TableScanPhysicalOperator::hash ( ) const
inlineoverridevirtual

TODO: complete it if needed

重载 OperatorNode .

◆ next()

RC TableScanPhysicalOperator::next ( )
overridevirtual

重载 PhysicalOperator .

◆ open()

RC TableScanPhysicalOperator::open ( Trx trx)
overridevirtual

实现了 PhysicalOperator.

◆ operator==()

virtual bool TableScanPhysicalOperator::operator== ( const OperatorNode other) const
inlineoverridevirtual

重载 OperatorNode .

◆ param()

string TableScanPhysicalOperator::param ( ) const
overridevirtual

重载 PhysicalOperator .

◆ type()

PhysicalOperatorType TableScanPhysicalOperator::type ( ) const
inlineoverridevirtual

实现了 PhysicalOperator.


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