OmniSciDB
a5dc49c757
|
Go to the source code of this file.
Classes | |
class | anonymous_namespace{JoinFilterPushDown.cpp}::BindFilterToOutermostVisitor |
class | anonymous_namespace{JoinFilterPushDown.cpp}::CollectInputColumnsVisitor |
Namespaces | |
anonymous_namespace{JoinFilterPushDown.cpp} | |
Functions | |
bool | to_gather_info_for_filter_selectivity (const std::vector< InputTableInfo > &table_infos) |
std::vector< PushedDownFilterInfo > | find_push_down_filters (const RelAlgExecutionUnit &ra_exe_unit, const std::vector< size_t > &input_permutation, const std::vector< size_t > &left_deep_join_input_sizes) |
std::vector<PushedDownFilterInfo> find_push_down_filters | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const std::vector< size_t > & | input_permutation, | ||
const std::vector< size_t > & | left_deep_join_input_sizes | ||
) |
Go through all tables involved in the relational algebra plan, and select potential candidates to be pushed down by calcite. For each filter we store a set of intermediate indices (previous, current, and next table) based on the column indices in their query string.
Definition at line 215 of file JoinFilterPushDown.cpp.
References CHECK_EQ, CHECK_GE, CHECK_LT, RelAlgExecutionUnit::input_descs, gpu_enabled::iota(), RelAlgExecutionUnit::join_quals, gpu_enabled::partial_sum(), run_benchmark_import::result, and ScalarExprVisitor< T >::visit().
Referenced by RelAlgExecutor::selectFiltersToBePushedDown().
bool to_gather_info_for_filter_selectivity | ( | const std::vector< InputTableInfo > & | table_infos | ) |
The main purpose of this function is to prevent going through extra overhead of computing required statistics for finding the right candidates and then the actual push-down, unless the problem is large enough that such effort is potentially helpful.
Definition at line 188 of file JoinFilterPushDown.cpp.
Referenced by RelAlgExecutor::selectFiltersToBePushedDown().