MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
根据一些规则对逻辑计划进行重写 更多...
#include <rewriter.h>
Public 成员函数 | |
RC | rewrite (std::unique_ptr< LogicalOperator > &oper, bool &change_made) |
对逻辑计划进行重写 更多... | |
Private 属性 | |
std::vector< std::unique_ptr< RewriteRule > > | rewrite_rules_ |
根据一些规则对逻辑计划进行重写
当前仅实现了一两个非常简单的规则。 重写包括对逻辑计划和计划中包含的表达式。
RC Rewriter::rewrite | ( | std::unique_ptr< LogicalOperator > & | oper, |
bool & | change_made | ||
) |
对逻辑计划进行重写
如果重写发生,change_made为true,否则为false。 通常情况下如果改写发生改变,就会继续重写,直到没有改变为止。
oper | 逻辑计划 |
change_made | 当前是否有重写发生 |