MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | 所有成员列表
PredicatePushdownRewriter类 参考

将一些谓词表达式下推到表数据扫描中 更多...

#include <predicate_pushdown_rewriter.h>

类 PredicatePushdownRewriter 继承关系图:
RewriteRule

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)
 

详细描述

将一些谓词表达式下推到表数据扫描中

这样可以提前过滤一些数据

成员函数说明

◆ get_exprs_can_pushdown()

RC PredicatePushdownRewriter::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 只会增加,不要做清理操作

◆ rewrite()

RC PredicatePushdownRewriter::rewrite ( std::unique_ptr< LogicalOperator > &  oper,
bool &  change_made 
)
overridevirtual

实现了 RewriteRule.


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