MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
#include <rules.h>
Public 成员函数 | |
Pattern * | get_match_pattern () const |
bool | is_physical () const |
bool | is_logical () const |
RuleType | get_type () |
uint32_t | get_rule_idx () |
virtual RulePromise | promise (GroupExpr *group_expr) const |
virtual void | transform (OperatorNode *input, std::vector< std::unique_ptr< OperatorNode > > *transformed, OptimizerContext *context) const =0 |
Protected 属性 | |
RuleType | type_ |
unique_ptr< Pattern > | match_pattern_ |
TODO: Distinguish from logical rules and unify logical rewrite rule
|
inline |
Gets the match pattern for the rule
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Get the promise of the current rule for a expression in the current context.
|
pure virtual |
Convert a "before" operator tree to an "after" operator tree
input | The "before" operator tree |
transformed | Vector of "after" operator trees |
context | The current optimization context |
在 LogicalGetToPhysicalSeqScan, LogicalProjectionToProjection, LogicalInsertToInsert, LogicalExplainToExplain, LogicalCalcToCalc, LogicalDeleteToDelete , 以及 LogicalPredicateToPredicate 内被实现.