19 #include <boost/graph/adjacency_list.hpp>
34 const std::vector<TargetMetaInfo>& targets_meta);
42 ExecutionResult(
const std::vector<PushedDownFilterInfo>& pushed_down_filter_info,
43 bool filter_push_down_enabled);
61 result_->setQueueTime(queue_time_ms);
122 adjacency_list<boost::setS, boost::vecS, boost::bidirectionalS, const RelAlgNode*>;
155 std::optional<size_t>
nextStepId(
const bool after_broadcast)
const;
186 size_t const start_idx)
const;
225 std::vector<std::unique_ptr<RaExecutionDesc>>
descs_;
RType getResultType() const
std::string getExplanation()
RaExecutionDesc * getDescriptor(size_t idx) const
uint64_t execution_time_ms_
std::vector< Vertex > mergeSortWithInput(const std::vector< Vertex > &vertices, const DAG &graph)
const bool hasQueryStepForUnion() const
ExecutionResult & operator=(const ExecutionResult &that)
const std::unordered_map< int, QueryPlanHash > getSkippedQueryStepCacheKeys() const
void setQueueTime(const int64_t queue_time_ms)
const ResultSetPtr & getDataPtr() const
std::shared_ptr< ResultSet > ResultSetPtr
std::unordered_set< Vertex > joins_
void addExecutionTime(int64_t execution_time_ms)
std::unordered_set< int > cached_query_steps_
std::vector< std::unique_ptr< RaExecutionDesc > > descs_
A container for relational algebra descriptors defining the execution order for a relational algebra ...
const std::vector< TargetMetaInfo > & getTargetsMeta() const
const std::shared_ptr< ResultSet > & getRows() const
bool filter_push_down_enabled_
bool executionFinished() const
void updateResultSet(const std::string &query_ra, RType type, bool success=true)
RaExecutionDesc(const RelAlgNode *body)
void extractQueryStepSkippingInfo()
std::string toString() const
std::vector< PushedDownFilterInfo > pushed_down_filter_info_
size_t stepsToNextBroadcast() const
void setResultType(RType type)
std::unordered_map< const RelAlgNode *, int > node_ptr_to_vert_idx_
RaExecutionSequence(const RelAlgNode *, Executor *, const bool build_sequence=true)
const std::vector< PushedDownFilterInfo > & getPushedDownFilterInfo() const
std::vector< Vertex > ordering_
Descriptor for the result set buffer layout.
std::string typeName(const T *v)
const bool isFilterPushDownEnabled() const
void setExecutionTime(int64_t execution_time_ms)
const RelAlgNode * getBody() const
Basic constructors and methods of the row set interface.
boost::adjacency_list< boost::setS, boost::vecS, boost::bidirectionalS, const RelAlgNode * > DAG
DAG::vertex_descriptor Vertex
size_t totalDescriptorsCount() const
std::vector< TargetMetaInfo > targets_meta_
int64_t getExecutionTime() const
RaExecutionDesc * getDescriptorByBodyId(unsigned const body_id, size_t const start_idx) const
ResultSet(const std::vector< TargetInfo > &targets, const ExecutorDeviceType device_type, const QueryMemoryDescriptor &query_mem_desc, const std::shared_ptr< RowSetMemoryOwner > row_set_mem_owner, const unsigned block_size, const unsigned grid_size)
std::unordered_map< int, std::unordered_set< int > > skippable_steps_
std::unordered_map< int, QueryPlanHash > cached_resultset_keys_
std::optional< size_t > nextStepId(const bool after_broadcast) const