OmniSciDB
a5dc49c757
|
Functions | |
int32_t | get_agg_count (const std::vector< Analyzer::Expr * > &target_exprs) |
bool | expr_is_rowid (const Analyzer::Expr *expr) |
bool | has_count_distinct (const RelAlgExecutionUnit &ra_exe_unit) |
bool | is_column_range_too_big_for_perfect_hash (const ColRangeInfo &col_range_info, const int64_t max_entry_count) |
bool | cardinality_estimate_less_than_column_range (const int64_t cardinality_estimate, const ColRangeInfo &col_range_info) |
ColRangeInfo | get_expr_range_info (const RelAlgExecutionUnit &ra_exe_unit, const std::vector< InputTableInfo > &query_infos, const Analyzer::Expr *expr, Executor *executor) |
int64_t | get_bucketed_cardinality_without_nulls (const ColRangeInfo &col_range_info) |
KeylessInfo | get_keyless_info (const RelAlgExecutionUnit &ra_exe_unit, const std::vector< InputTableInfo > &query_infos, const bool is_group_by, Executor *executor) |
CountDistinctDescriptors | init_count_distinct_descriptors (const RelAlgExecutionUnit &ra_exe_unit, const std::vector< InputTableInfo > &query_infos, const ColRangeInfo &group_by_range_info, const ExecutorDeviceType device_type, Executor *executor) |
bool anonymous_namespace{GroupByAndAggregate.cpp}::cardinality_estimate_less_than_column_range | ( | const int64_t | cardinality_estimate, |
const ColRangeInfo & | col_range_info | ||
) |
Definition at line 161 of file GroupByAndAggregate.cpp.
References ColRangeInfo::max, and ColRangeInfo::min.
Referenced by GroupByAndAggregate::getColRangeInfo().
bool anonymous_namespace{GroupByAndAggregate.cpp}::expr_is_rowid | ( | const Analyzer::Expr * | expr | ) |
Definition at line 128 of file GroupByAndAggregate.cpp.
References CHECK_EQ, and get_column_descriptor_maybe().
Referenced by GroupByAndAggregate::getColRangeInfo().
int32_t anonymous_namespace{GroupByAndAggregate.cpp}::get_agg_count | ( | const std::vector< Analyzer::Expr * > & | target_exprs | ) |
Definition at line 103 of file GroupByAndAggregate.cpp.
References agg_count(), CHECK, Analyzer::Expr::get_type_info(), kAVG, and kSAMPLE.
Referenced by GroupByAndAggregate::codegen().
int64_t anonymous_namespace{GroupByAndAggregate.cpp}::get_bucketed_cardinality_without_nulls | ( | const ColRangeInfo & | col_range_info | ) |
Definition at line 368 of file GroupByAndAggregate.cpp.
References ColRangeInfo::bucket, ColRangeInfo::max, and ColRangeInfo::min.
Referenced by init_count_distinct_descriptors().
ColRangeInfo anonymous_namespace{GroupByAndAggregate.cpp}::get_expr_range_info | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const std::vector< InputTableInfo > & | query_infos, | ||
const Analyzer::Expr * | expr, | ||
Executor * | executor | ||
) |
Definition at line 177 of file GroupByAndAggregate.cpp.
References CHECK, Double, Float, getExpressionRange(), heavyai::GroupByBaselineHash, heavyai::GroupByPerfectHash, Integer, Invalid, heavyai::NonGroupedAggregate, heavyai::Projection, and RelAlgExecutionUnit::simple_quals.
Referenced by GroupByAndAggregate::codegenGroupBy(), GroupByAndAggregate::codegenPerfectHashFunction(), GroupByAndAggregate::getColRangeInfo(), GroupByAndAggregate::gpuCanHandleOrderEntries(), and init_count_distinct_descriptors().
KeylessInfo anonymous_namespace{GroupByAndAggregate.cpp}::get_keyless_info | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const std::vector< InputTableInfo > & | query_infos, | ||
const bool | is_group_by, | ||
Executor * | executor | ||
) |
This function goes through all target expressions and answers two questions:
NOTE: Keyless hash is only valid with single-column group by at the moment.
Definition at line 478 of file GroupByAndAggregate.cpp.
References agg_arg(), CHECK, constrained_not_null(), Double, Float, g_bigint_count, get_agg_initial_val(), get_compact_type(), get_target_info(), getExpressionRange(), Integer, Invalid, is_distinct_target(), kAVG, kCOUNT, kMAX, kMIN, kSUM, RelAlgExecutionUnit::quals, takes_float_argument(), and RelAlgExecutionUnit::target_exprs.
Referenced by GroupByAndAggregate::initQueryMemoryDescriptorImpl().
bool anonymous_namespace{GroupByAndAggregate.cpp}::has_count_distinct | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 141 of file GroupByAndAggregate.cpp.
References g_bigint_count, get_target_info(), is_distinct_target(), and RelAlgExecutionUnit::target_exprs.
Referenced by GroupByAndAggregate::getColRangeInfo().
CountDistinctDescriptors anonymous_namespace{GroupByAndAggregate.cpp}::init_count_distinct_descriptors | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const std::vector< InputTableInfo > & | query_infos, | ||
const ColRangeInfo & | group_by_range_info, | ||
const ExecutorDeviceType | device_type, | ||
Executor * | executor | ||
) |
Definition at line 639 of file GroupByAndAggregate.cpp.
References align_to_int64(), Bitmap, ColRangeInfo::bucket, CHECK, CHECK_GE, Analyzer::ColumnVar::collect_column_var(), Analyzer::ColumnVar::colvar_comp(), g_bigint_count, g_bitmap_memory_limit, g_enable_watchdog, g_hll_precision_bits, Analyzer::AggExpr::get_arg(), get_bucketed_cardinality_without_nulls(), get_count_distinct_sub_bitmap_count(), DateConverters::get_epoch_days_from_seconds(), get_expr_range_info(), get_target_info(), Analyzer::Expr::get_type_info(), GPU, heavyai::GroupByPerfectHash, hll_size_for_rate(), Invalid, is_distinct_target(), kAPPROX_COUNT_DISTINCT, kCOUNT, kDATE, kENCODING_DATE_IN_DAYS, kINT, ColRangeInfo::max, ColRangeInfo::min, heavyai::Projection, RelAlgExecutionUnit::target_exprs, RelAlgExecutionUnit::target_exprs_original_type_infos, and UnorderedSet.
Referenced by GroupByAndAggregate::initQueryMemoryDescriptorImpl().
bool anonymous_namespace{GroupByAndAggregate.cpp}::is_column_range_too_big_for_perfect_hash | ( | const ColRangeInfo & | col_range_info, |
const int64_t | max_entry_count | ||
) |
Definition at line 151 of file GroupByAndAggregate.cpp.
References ColRangeInfo::max, and ColRangeInfo::min.
Referenced by GroupByAndAggregate::getColRangeInfo().