MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Protected 属性 | 所有成员列表
OperatorNode类 参考abstract
类 OperatorNode 继承关系图:
LogicalOperator PhysicalOperator CalcLogicalOperator DeleteLogicalOperator ExplainLogicalOperator GroupByLogicalOperator InsertLogicalOperator JoinLogicalOperator PredicateLogicalOperator ProjectLogicalOperator TableGetLogicalOperator AggregateVecPhysicalOperator CalcPhysicalOperator DeletePhysicalOperator ExplainPhysicalOperator ExprVecPhysicalOperator GroupByPhysicalOperator GroupByVecPhysicalOperator IndexScanPhysicalOperator InsertPhysicalOperator NestedLoopJoinPhysicalOperator NestedLoopJoinPhysicalOperator PredicatePhysicalOperator ProjectPhysicalOperator ProjectVecPhysicalOperator StringListPhysicalOperator TableScanPhysicalOperator TableScanVecPhysicalOperator

Public 成员函数

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 ()
 

Protected 属性

vector< OperatorNode * > general_children_
 

成员函数说明

◆ calculate_cost()

virtual double OperatorNode::calculate_cost ( LogicalProperty prop,
const vector< LogicalProperty * > &  child_log_props,
CostModel cm 
)
inlinevirtual

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.

ExplainPhysicalOperator, NestedLoopJoinPhysicalOperator, ProjectPhysicalOperator , 以及 TableScanPhysicalOperator 重载.

◆ find_log_prop()

virtual unique_ptr< LogicalProperty > OperatorNode::find_log_prop ( const vector< LogicalProperty * > &  log_props)
inlinevirtual

Generate the logical property of the operator node using the input logical properties.

参数
log_propsInput logical properties of the operator node.
返回
Logical property of the operator node.

JoinLogicalOperator, ProjectLogicalOperator , 以及 TableGetLogicalOperator 重载.

◆ get_op_type()

virtual OpType OperatorNode::get_op_type ( ) const
inlinevirtual

◆ hash()

virtual uint64_t OperatorNode::hash ( ) const
inlinevirtual

TODO: complete it if needed

TableGetLogicalOperator , 以及 TableScanPhysicalOperator 重载.

◆ is_logical()

virtual bool OperatorNode::is_logical ( ) const
pure virtual
返回
Whether node represents a logical operator / expression

LogicalOperator , 以及 PhysicalOperator 内被实现.

◆ is_physical()

virtual bool OperatorNode::is_physical ( ) const
pure virtual
返回
Whether node contents represent a physical operator / expression

LogicalOperator , 以及 PhysicalOperator 内被实现.


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