MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
将一些谓词表达式下推到表数据扫描中 更多...
#include <predicate_pushdown_rewriter.h>
Public 成员函数 | |
RC | rewrite (std::unique_ptr< LogicalOperator > &oper, bool &change_made) override |
virtual RC | rewrite (std::unique_ptr< LogicalOperator > &oper, bool &change_made)=0 |
Private 成员函数 | |
RC | get_exprs_can_pushdown (std::unique_ptr< Expression > &expr, std::vector< std::unique_ptr< Expression > > &pushdown_exprs) |
将一些谓词表达式下推到表数据扫描中
这样可以提前过滤一些数据
|
private |
查看表达式是否可以直接下放到table get算子的filter
expr | 是当前的表达式。如果可以下放给table get 算子,执行完成后expr就失效了 |
pushdown_exprs | 当前所有要下放给table get 算子的filter。此函数执行多次, pushdown_exprs 只会增加,不要做清理操作 |
|
overridevirtual |
实现了 RewriteRule.