OmniSciDB
c0231cc57d
|
Classes | |
struct | GetTargetInfo |
class | OutVecOwner |
Functions | |
void | prepare_string_dictionaries (const std::unordered_set< PhysicalInput > &phys_inputs, const Catalog_Namespace::Catalog &catalog) |
bool | is_empty_table (Fragmenter_Namespace::AbstractFragmenter *fragmenter) |
ResultSetPtr | get_merged_result (std::vector< std::pair< ResultSetPtr, std::vector< size_t >>> &results_per_device, std::vector< TargetInfo > const &targets) |
ReductionCode | get_reduction_code (const size_t executor_id, std::vector< std::pair< ResultSetPtr, std::vector< size_t >>> &results_per_device, int64_t *compilation_queue_time) |
size_t | compute_buffer_entry_guess (const std::vector< InputTableInfo > &query_infos) |
std::string | get_table_name (const InputDescriptor &input_desc, const Catalog_Namespace::Catalog &cat) |
size_t | getDeviceBasedScanLimit (const ExecutorDeviceType device_type, const int device_count) |
void | checkWorkUnitWatchdog (const RelAlgExecutionUnit &ra_exe_unit, const std::vector< InputTableInfo > &table_infos, const Catalog_Namespace::Catalog &cat, const ExecutorDeviceType device_type, const int device_count) |
template<typename T > | |
std::vector< std::string > | expr_container_to_string (const T &expr_container) |
template<> | |
std::vector< std::string > | expr_container_to_string (const std::list< Analyzer::OrderEntry > &expr_container) |
std::string | sort_algorithm_to_string (const SortAlgorithm algorithm) |
RelAlgExecutionUnit | replace_scan_limit (const RelAlgExecutionUnit &ra_exe_unit_in, const size_t new_scan_limit) |
int64_t | inline_null_val (const SQLTypeInfo &ti, const bool float_argument_input) |
void | fill_entries_for_empty_input (std::vector< TargetInfo > &target_infos, std::vector< int64_t > &entry, const std::vector< Analyzer::Expr * > &target_exprs, const QueryMemoryDescriptor &query_mem_desc) |
ResultSetPtr | build_row_for_empty_input (const std::vector< Analyzer::Expr * > &target_exprs_in, const QueryMemoryDescriptor &query_mem_desc, const ExecutorDeviceType device_type) |
size_t | permute_storage_columnar (const ResultSetStorage *input_storage, const QueryMemoryDescriptor &input_query_mem_desc, const ResultSetStorage *output_storage, size_t output_row_index, const QueryMemoryDescriptor &output_query_mem_desc, const std::vector< uint32_t > &top_permutation) |
size_t | permute_storage_row_wise (const ResultSetStorage *input_storage, const ResultSetStorage *output_storage, size_t output_row_index, const QueryMemoryDescriptor &output_query_mem_desc, const std::vector< uint32_t > &top_permutation) |
bool | has_lazy_fetched_columns (const std::vector< ColumnLazyFetchInfo > &fetched_cols) |
const ColumnDescriptor * | try_get_column_descriptor (const InputColDescriptor *col_desc, const Catalog_Namespace::Catalog &cat) |
size_t | get_selected_input_descs_index (int const table_id, std::vector< InputDescriptor > const &input_descs) |
size_t | get_selected_input_col_descs_index (int const table_id, std::list< std::shared_ptr< InputColDescriptor const >> const &input_col_descs) |
std::list< std::shared_ptr < const InputColDescriptor > > | get_selected_input_col_descs (int const table_id, std::list< std::shared_ptr< InputColDescriptor const >> const &input_col_descs) |
void | set_mod_range (std::vector< int8_t const * > &frag_col_buffers, int8_t const *const ptr, size_t const local_col_id, size_t const N) |
bool | check_rows_less_than_needed (const ResultSetPtr &results, const size_t scan_limit) |
void | add_deleted_col_to_map (PlanState::DeletedColumnsMap &deleted_cols_map, const ColumnDescriptor *deleted_cd) |
std::tuple< bool, int64_t, int64_t > | get_hpt_overflow_underflow_safe_scaled_values (const int64_t chunk_min, const int64_t chunk_max, const SQLTypeInfo &lhs_type, const SQLTypeInfo &rhs_type) |
void anonymous_namespace{Execute.cpp}::add_deleted_col_to_map | ( | PlanState::DeletedColumnsMap & | deleted_cols_map, |
const ColumnDescriptor * | deleted_cd | ||
) |
Definition at line 3906 of file Execute.cpp.
References CHECK, CHECK_EQ, and ColumnDescriptor::tableId.
Referenced by Executor::addDeletedColumn().
ResultSetPtr anonymous_namespace{Execute.cpp}::build_row_for_empty_input | ( | const std::vector< Analyzer::Expr * > & | target_exprs_in, |
const QueryMemoryDescriptor & | query_mem_desc, | ||
const ExecutorDeviceType | device_type | ||
) |
Definition at line 2281 of file Execute.cpp.
References CHECK, fill_entries_for_empty_input(), QueryMemoryDescriptor::getExecutor(), query_mem_desc, and SQLTypeInfo::set_notnull().
Referenced by Executor::collectAllDeviceResults().
bool anonymous_namespace{Execute.cpp}::check_rows_less_than_needed | ( | const ResultSetPtr & | results, |
const size_t | scan_limit | ||
) |
Definition at line 3519 of file Execute.cpp.
References CHECK.
Referenced by Executor::executePlanWithGroupBy().
void anonymous_namespace{Execute.cpp}::checkWorkUnitWatchdog | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const std::vector< InputTableInfo > & | table_infos, | ||
const Catalog_Namespace::Catalog & | cat, | ||
const ExecutorDeviceType | device_type, | ||
const int | device_count | ||
) |
Definition at line 1508 of file Execute.cpp.
References SortInfo::algorithm, foreign_storage::get_table_name(), getDeviceBasedScanLimit(), RelAlgExecutionUnit::groupby_exprs, Executor::high_scan_limit, RelAlgExecutionUnit::input_descs, join(), RelAlgExecutionUnit::scan_limit, RelAlgExecutionUnit::sort_info, StreamingTopN, RelAlgExecutionUnit::target_exprs, to_string(), and RelAlgExecutionUnit::use_bump_allocator.
Referenced by Executor::createKernels().
size_t anonymous_namespace{Execute.cpp}::compute_buffer_entry_guess | ( | const std::vector< InputTableInfo > & | query_infos | ) |
Definition at line 1458 of file Execute.cpp.
References CHECK.
Referenced by Executor::executeWorkUnitImpl().
std::vector<std::string> anonymous_namespace{Execute.cpp}::expr_container_to_string | ( | const T & | expr_container | ) |
Definition at line 1579 of file Execute.cpp.
Referenced by operator<<().
std::vector<std::string> anonymous_namespace{Execute.cpp}::expr_container_to_string | ( | const std::list< Analyzer::OrderEntry > & | expr_container | ) |
Definition at line 1592 of file Execute.cpp.
void anonymous_namespace{Execute.cpp}::fill_entries_for_empty_input | ( | std::vector< TargetInfo > & | target_infos, |
std::vector< int64_t > & | entry, | ||
const std::vector< Analyzer::Expr * > & | target_exprs, | ||
const QueryMemoryDescriptor & | query_mem_desc | ||
) |
Definition at line 2226 of file Execute.cpp.
References Bitmap, CHECK, g_bigint_count, g_cluster, get_target_info(), QueryMemoryDescriptor::getCountDistinctDescriptor(), QueryMemoryDescriptor::getExecutor(), inline_null_val(), kAPPROX_COUNT_DISTINCT, kAVG, kCOUNT, kSAMPLE, kSINGLE_VALUE, takes_float_argument(), and UnorderedSet.
Referenced by build_row_for_empty_input().
std::tuple<bool, int64_t, int64_t> anonymous_namespace{Execute.cpp}::get_hpt_overflow_underflow_safe_scaled_values | ( | const int64_t | chunk_min, |
const int64_t | chunk_max, | ||
const SQLTypeInfo & | lhs_type, | ||
const SQLTypeInfo & | rhs_type | ||
) |
Definition at line 3962 of file Execute.cpp.
References CHECK, SQLTypeInfo::get_dimension(), and DateTimeUtils::get_timestamp_precision_scale().
Referenced by Executor::skipFragment().
ResultSetPtr anonymous_namespace{Execute.cpp}::get_merged_result | ( | std::vector< std::pair< ResultSetPtr, std::vector< size_t >>> & | results_per_device, |
std::vector< TargetInfo > const & | targets | ||
) |
Definition at line 1243 of file Execute.cpp.
References CHECK, and result_set::first_dict_encoded_idx().
Referenced by Executor::resultsUnion().
ReductionCode anonymous_namespace{Execute.cpp}::get_reduction_code | ( | const size_t | executor_id, |
std::vector< std::pair< ResultSetPtr, std::vector< size_t >>> & | results_per_device, | ||
int64_t * | compilation_queue_time | ||
) |
Definition at line 1328 of file Execute.cpp.
References ResultSetReductionJIT::codegen(), timer_start(), and timer_stop().
Referenced by Executor::reduceMultiDeviceResultSets().
std::list<std::shared_ptr<const InputColDescriptor> > anonymous_namespace{Execute.cpp}::get_selected_input_col_descs | ( | int const | table_id, |
std::list< std::shared_ptr< InputColDescriptor const >> const & | input_col_descs | ||
) |
Definition at line 3083 of file Execute.cpp.
Referenced by Executor::fetchUnionChunks().
size_t anonymous_namespace{Execute.cpp}::get_selected_input_col_descs_index | ( | int const | table_id, |
std::list< std::shared_ptr< InputColDescriptor const >> const & | input_col_descs | ||
) |
Definition at line 3072 of file Execute.cpp.
Referenced by Executor::fetchUnionChunks().
size_t anonymous_namespace{Execute.cpp}::get_selected_input_descs_index | ( | int const | table_id, |
std::vector< InputDescriptor > const & | input_descs | ||
) |
Definition at line 3063 of file Execute.cpp.
Referenced by Executor::fetchUnionChunks().
std::string anonymous_namespace{Execute.cpp}::get_table_name | ( | const InputDescriptor & | input_desc, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1488 of file Execute.cpp.
References CHECK, Catalog_Namespace::Catalog::getMetadataForTable(), InputDescriptor::getSourceType(), InputDescriptor::getTableId(), TABLE, and to_string().
|
inline |
Definition at line 1500 of file Execute.cpp.
References GPU, and Executor::high_scan_limit.
Referenced by checkWorkUnitWatchdog().
bool anonymous_namespace{Execute.cpp}::has_lazy_fetched_columns | ( | const std::vector< ColumnLazyFetchInfo > & | fetched_cols | ) |
Definition at line 2503 of file Execute.cpp.
Referenced by Executor::createKernels().
int64_t anonymous_namespace{Execute.cpp}::inline_null_val | ( | const SQLTypeInfo & | ti, |
const bool | float_argument_input | ||
) |
Definition at line 2211 of file Execute.cpp.
References CHECK, SQLTypeInfo::get_type(), inline_fp_null_val(), inline_int_null_val(), SQLTypeInfo::is_boolean(), SQLTypeInfo::is_fp(), SQLTypeInfo::is_number(), SQLTypeInfo::is_string(), SQLTypeInfo::is_time(), and kFLOAT.
Referenced by fill_entries_for_empty_input().
bool anonymous_namespace{Execute.cpp}::is_empty_table | ( | Fragmenter_Namespace::AbstractFragmenter * | fragmenter | ) |
Definition at line 195 of file Execute.cpp.
Referenced by foreign_storage::populate_string_dictionary().
size_t anonymous_namespace{Execute.cpp}::permute_storage_columnar | ( | const ResultSetStorage * | input_storage, |
const QueryMemoryDescriptor & | input_query_mem_desc, | ||
const ResultSetStorage * | output_storage, | ||
size_t | output_row_index, | ||
const QueryMemoryDescriptor & | output_query_mem_desc, | ||
const std::vector< uint32_t > & | top_permutation | ||
) |
This functions uses the permutation indices in "top_permutation", and permutes all group columns (if any) and aggregate columns into the output storage. In columnar layout, since different columns are not consecutive in the memory, different columns are copied back into the output storage separetely and through different memcpy operations.
output_row_index contains the current index of the output storage (input storage will be appended to it), and the final output row index is returned.
Definition at line 2367 of file Execute.cpp.
References QueryMemoryDescriptor::getColOffInBytes(), QueryMemoryDescriptor::getKeyCount(), QueryMemoryDescriptor::getPaddedSlotWidthBytes(), QueryMemoryDescriptor::getPrependedGroupColOffInBytes(), QueryMemoryDescriptor::getSlotCount(), ResultSetStorage::getUnderlyingBuffer(), and QueryMemoryDescriptor::groupColWidth().
Referenced by Executor::collectAllDeviceShardedTopResults().
size_t anonymous_namespace{Execute.cpp}::permute_storage_row_wise | ( | const ResultSetStorage * | input_storage, |
const ResultSetStorage * | output_storage, | ||
size_t | output_row_index, | ||
const QueryMemoryDescriptor & | output_query_mem_desc, | ||
const std::vector< uint32_t > & | top_permutation | ||
) |
This functions uses the permutation indices in "top_permutation", and permutes all group columns (if any) and aggregate columns into the output storage. In row-wise, since different columns are consecutive within the memory, it suffices to perform a single memcpy operation and copy the whole row.
output_row_index contains the current index of the output storage (input storage will be appended to it), and the final output row index is returned.
Definition at line 2417 of file Execute.cpp.
References QueryMemoryDescriptor::getRowSize(), and ResultSetStorage::getUnderlyingBuffer().
Referenced by Executor::collectAllDeviceShardedTopResults().
void anonymous_namespace{Execute.cpp}::prepare_string_dictionaries | ( | const std::unordered_set< PhysicalInput > & | phys_inputs, |
const Catalog_Namespace::Catalog & | catalog | ||
) |
Definition at line 188 of file Execute.cpp.
Referenced by Executor::computeStringDictionaryGenerations(), and anonymous_namespace{RelAlgExecutor.cpp}::prepare_foreign_table_for_execution().
RelAlgExecutionUnit anonymous_namespace{Execute.cpp}::replace_scan_limit | ( | const RelAlgExecutionUnit & | ra_exe_unit_in, |
const size_t | new_scan_limit | ||
) |
Definition at line 1717 of file Execute.cpp.
References RelAlgExecutionUnit::estimator, RelAlgExecutionUnit::groupby_exprs, RelAlgExecutionUnit::hash_table_build_plan_dag, RelAlgExecutionUnit::input_col_descs, RelAlgExecutionUnit::input_descs, RelAlgExecutionUnit::join_quals, RelAlgExecutionUnit::quals, RelAlgExecutionUnit::query_hint, RelAlgExecutionUnit::query_plan_dag_hash, RelAlgExecutionUnit::query_state, RelAlgExecutionUnit::simple_quals, RelAlgExecutionUnit::sort_info, RelAlgExecutionUnit::table_id_to_node_map, RelAlgExecutionUnit::target_exprs, RelAlgExecutionUnit::target_exprs_original_type_infos, RelAlgExecutionUnit::union_all, and RelAlgExecutionUnit::use_bump_allocator.
Referenced by Executor::executeWorkUnit().
void anonymous_namespace{Execute.cpp}::set_mod_range | ( | std::vector< int8_t const * > & | frag_col_buffers, |
int8_t const *const | ptr, | ||
size_t const | local_col_id, | ||
size_t const | N | ||
) |
Definition at line 3096 of file Execute.cpp.
References CHECK_LE, and anonymous_namespace{Utm.h}::N.
Referenced by Executor::fetchUnionChunks().
std::string anonymous_namespace{Execute.cpp}::sort_algorithm_to_string | ( | const SortAlgorithm | algorithm | ) |
Definition at line 1601 of file Execute.cpp.
References Default, SpeculativeTopN, StreamingTopN, and UNREACHABLE.
Referenced by operator<<().
const ColumnDescriptor* anonymous_namespace{Execute.cpp}::try_get_column_descriptor | ( | const InputColDescriptor * | col_desc, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 2805 of file Execute.cpp.
References get_column_descriptor_maybe(), InputColDescriptor::getColId(), InputColDescriptor::getScanDesc(), and InputDescriptor::getTableId().
Referenced by Executor::fetchChunks(), and Executor::fetchUnionChunks().