Class QueryExecutionContext

class QueryExecutionContext : private noncopyable

Public Functions

QueryExecutionContext(const RelAlgExecutionUnit &ra_exe_unit, const QueryMemoryDescriptor &query_mem_desc, const Executor *executor, const ExecutorDeviceType device_type, const ExecutorDispatchMode dispatch_mode, const int device_id, const int outer_table_id, const int64_t num_rows, const std::vector<std::vector<const int8_t *>> &col_buffers, const std::vector<std::vector<uint64_t>> &frag_offsets, std::shared_ptr<RowSetMemoryOwner> row_set_mem_owner, const bool output_columnar, const bool sort_on_gpu, const size_t thread_idx, RenderInfo *render_info)
ResultSetPtr getRowSet(const RelAlgExecutionUnit &ra_exe_unit, const QueryMemoryDescriptor &query_mem_desc) const
ResultSetPtr groupBufferToResults(const size_t i) const
std::vector<int64_t *> launchGpuCode(const RelAlgExecutionUnit &ra_exe_unit, const CompilationContext *compilation_context, const bool hoist_literals, const std::vector<int8_t> &literal_buff, std::vector<std::vector<const int8_t *>> col_buffers, const std::vector<std::vector<int64_t>> &num_rows, const std::vector<std::vector<uint64_t>> &frag_row_offsets, const int32_t scan_limit, Data_Namespace::DataMgr *data_mgr, const unsigned block_size_x, const unsigned grid_size_x, const int device_id, const size_t shared_memory_size, int32_t *error_code, const uint32_t num_tables, const bool allow_runtime_interrupt, const std::vector<int8_t *> &join_hash_tables, RenderAllocatorMap *render_allocator_map)
std::vector<int64_t *> launchCpuCode(const RelAlgExecutionUnit &ra_exe_unit, const CpuCompilationContext *fn_ptrs, const bool hoist_literals, const std::vector<int8_t> &literal_buff, std::vector<std::vector<const int8_t *>> col_buffers, const std::vector<std::vector<int64_t>> &num_rows, const std::vector<std::vector<uint64_t>> &frag_row_offsets, const int32_t scan_limit, int32_t *error_code, const uint32_t num_tables, const std::vector<int8_t *> &join_hash_tables, const int64_t num_rows_to_process = -1)
int64_t getAggInitValForIndex(const size_t index) const

Private Types

enum [anonymous]

Values:

COL_BUFFERS
NUM_FRAGMENTS
LITERALS
NUM_ROWS
FRAG_ROW_OFFSETS
MAX_MATCHED
TOTAL_MATCHED
INIT_AGG_VALS
GROUPBY_BUF
ERROR_CODE
NUM_TABLES
JOIN_HASH_TABLES
KERN_PARAM_COUNT

Private Functions

std::vector<int8_t *> prepareKernelParams(const std::vector<std::vector<const int8_t *>> &col_buffers, const std::vector<int8_t> &literal_buff, const std::vector<std::vector<int64_t>> &num_rows, const std::vector<std::vector<uint64_t>> &frag_offsets, const int32_t scan_limit, const std::vector<int64_t> &init_agg_vals, const std::vector<int32_t> &error_codes, const uint32_t num_tables, const std::vector<int8_t *> &join_hash_tables, Data_Namespace::DataMgr *data_mgr, const int device_id, const bool hoist_literals, const bool is_group_by) const
ResultSetPtr groupBufferToDeinterleavedResults(const size_t i) const

Private Members

std::unique_ptr<DeviceAllocator> gpu_allocator_
QueryMemoryDescriptor query_mem_desc_
const Executor *executor_
const ExecutorDeviceType device_type_
const ExecutorDispatchMode dispatch_mode_
std::shared_ptr<RowSetMemoryOwner> row_set_mem_owner_
const bool output_columnar_
std::unique_ptr<QueryMemoryInitializer> query_buffers_
std::unique_ptr<ResultSet> estimator_result_set_

Friends

friend QueryExecutionContext::Executor