OmniSciDB
a5dc49c757
|
Classes | |
struct | GetTargetInfo |
class | OutVecOwner |
Functions | |
void | prepare_string_dictionaries (const std::unordered_set< PhysicalInput > &phys_inputs) |
bool | is_empty_table (Fragmenter_Namespace::AbstractFragmenter *fragmenter) |
void | log_system_memory_info_impl (std::string const &mem_log, size_t executor_id, size_t log_time_ms, std::string const &log_tag, size_t const thread_idx) |
size_t | get_col_byte_width (const shared::ColumnKey &column_key) |
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, const RelAlgExecutionUnit &ra_exe_unit) |
std::string | get_table_name (const InputDescriptor &input_desc) |
size_t | getDeviceBasedWatchdogScanLimit (size_t watchdog_max_projected_rows_per_device, const ExecutorDeviceType device_type, const int device_count) |
void | checkWorkUnitWatchdog (const RelAlgExecutionUnit &ra_exe_unit, const std::vector< InputTableInfo > &table_infos, 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) |
size_t | get_selected_input_descs_index (const shared::TableKey &table_key, std::vector< InputDescriptor > const &input_descs) |
size_t | get_selected_input_col_descs_index (const shared::TableKey &table_key, std::list< std::shared_ptr< InputColDescriptor const >> const &input_col_descs) |
std::list< std::shared_ptr < const InputColDescriptor > > | get_selected_input_col_descs (const shared::TableKey &table_key, 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, const shared::TableKey &table_key) |
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, | ||
const shared::TableKey & | table_key | ||
) |
Definition at line 4463 of file Execute.cpp.
References CHECK, and CHECK_EQ.
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 2673 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 4054 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 ExecutorDeviceType | device_type, | ||
const int | device_count | ||
) |
Definition at line 1847 of file Execute.cpp.
References SortInfo::algorithm, g_watchdog_max_projected_rows_per_device, foreign_storage::get_table_name(), getDeviceBasedWatchdogScanLimit(), RelAlgExecutionUnit::groupby_exprs, RelAlgExecutionUnit::input_descs, RegisteredQueryHint::isHintRegistered(), join(), kWatchdogMaxProjectedRowsPerDevice, RelAlgExecutionUnit::query_hint, RelAlgExecutionUnit::scan_limit, RelAlgExecutionUnit::sort_info, StreamingTopN, RelAlgExecutionUnit::target_exprs, to_string(), RelAlgExecutionUnit::use_bump_allocator, VLOG, and RegisteredQueryHint::watchdog_max_projected_rows_per_device.
Referenced by Executor::createKernels().
size_t anonymous_namespace{Execute.cpp}::compute_buffer_entry_guess | ( | const std::vector< InputTableInfo > & | query_infos, |
const RelAlgExecutionUnit & | ra_exe_unit | ||
) |
Definition at line 1778 of file Execute.cpp.
References CHECK, RelAlgExecutionUnit::scan_limit, and VLOG.
Referenced by Executor::executeWorkUnitImpl().
std::vector<std::string> anonymous_namespace{Execute.cpp}::expr_container_to_string | ( | const T & | expr_container | ) |
Definition at line 1923 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 1936 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 2615 of file Execute.cpp.
References Bitmap, CHECK, g_bigint_count, g_cluster, get_target_info(), QueryMemoryDescriptor::getCountDistinctDescriptor(), QueryMemoryDescriptor::getExecutor(), inline_null_val(), takes_float_argument(), and UnorderedSet.
Referenced by build_row_for_empty_input().
size_t anonymous_namespace{Execute.cpp}::get_col_byte_width | ( | const shared::ColumnKey & | column_key | ) |
Definition at line 791 of file Execute.cpp.
References Catalog_Namespace::get_metadata_for_column(), and shared::ColumnKey::table_id.
Referenced by Executor::getColumnByteWidthMap().
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 4526 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 1535 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 1647 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 | ( | const shared::TableKey & | table_key, |
std::list< std::shared_ptr< InputColDescriptor const >> const & | input_col_descs | ||
) |
Definition at line 3614 of file Execute.cpp.
Referenced by Executor::fetchUnionChunks().
size_t anonymous_namespace{Execute.cpp}::get_selected_input_col_descs_index | ( | const shared::TableKey & | table_key, |
std::list< std::shared_ptr< InputColDescriptor const >> const & | input_col_descs | ||
) |
Definition at line 3603 of file Execute.cpp.
Referenced by Executor::fetchUnionChunks().
size_t anonymous_namespace{Execute.cpp}::get_selected_input_descs_index | ( | const shared::TableKey & | table_key, |
std::vector< InputDescriptor > const & | input_descs | ||
) |
Definition at line 3594 of file Execute.cpp.
Referenced by Executor::fetchUnionChunks().
std::string anonymous_namespace{Execute.cpp}::get_table_name | ( | const InputDescriptor & | input_desc | ) |
Definition at line 1824 of file Execute.cpp.
References CHECK, CHECK_GT, Catalog_Namespace::get_metadata_for_table(), InputDescriptor::getSourceType(), InputDescriptor::getTableKey(), TABLE, shared::TableKey::table_id, and to_string().
|
inline |
Definition at line 1837 of file Execute.cpp.
References GPU.
Referenced by checkWorkUnitWatchdog().
bool anonymous_namespace{Execute.cpp}::has_lazy_fetched_columns | ( | const std::vector< ColumnLazyFetchInfo > & | fetched_cols | ) |
Definition at line 2896 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 2600 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 227 of file Execute.cpp.
Referenced by foreign_storage::populate_string_dictionary().
void anonymous_namespace{Execute.cpp}::log_system_memory_info_impl | ( | std::string const & | mem_log, |
size_t | executor_id, | ||
size_t | log_time_ms, | ||
std::string const & | log_tag, | ||
size_t const | thread_idx | ||
) |
Definition at line 752 of file Execute.cpp.
References VLOG.
Referenced by Executor::logSystemCPUMemoryStatus(), and Executor::logSystemGPUMemoryStatus().
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 2759 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 2809 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 | ) |
Definition at line 221 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 2075 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 3627 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 1945 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 | ) |
Definition at line 3340 of file Execute.cpp.
References get_column_descriptor_maybe(), InputColDescriptor::getColId(), InputColDescriptor::getScanDesc(), and InputDescriptor::getTableKey().
Referenced by Executor::fetchChunks(), and Executor::fetchUnionChunks().