OmniSciDB
c1a53651b2
|
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) |
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) |
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 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 3918 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 2276 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 3512 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 1516 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 1465 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 2221 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().
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 3981 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 1252 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 1335 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 3074 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 3063 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 3054 of file Execute.cpp.
Referenced by Executor::fetchUnionChunks().
std::string anonymous_namespace{Execute.cpp}::get_table_name | ( | const InputDescriptor & | input_desc | ) |
Definition at line 1495 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 1508 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 2496 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 2206 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 2361 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 2411 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 189 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 3087 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 | ) |
Definition at line 2798 of file Execute.cpp.
References get_column_descriptor_maybe(), InputColDescriptor::getColId(), InputColDescriptor::getScanDesc(), and InputDescriptor::getTableKey().
Referenced by Executor::fetchChunks(), and Executor::fetchUnionChunks().