|
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 内被实现.