OmniSciDB
a5dc49c757
|
Execution unit for relational algebra. It's a low-level description of any relational algebra operation in a format understood by our VM. More...
#include "Descriptors/InputDescriptors.h"
#include "QueryHint.h"
#include "RelAlgDag.h"
#include "Shared/DbObjectKeys.h"
#include "Shared/sqldefs.h"
#include "Shared/toString.h"
#include "TableFunctions/TableFunctionOutputBufferSizeType.h"
#include "TableFunctions/TableFunctionsFactory.h"
#include "ThriftHandler/QueryState.h"
#include <boost/graph/adjacency_list.hpp>
#include <functional>
#include <list>
#include <memory>
#include <optional>
#include <vector>
Go to the source code of this file.
Classes | |
struct | HashTableBuildDag |
struct | SortInfo |
struct | JoinCondition |
struct | RelAlgExecutionUnit |
struct | TableFunctionExecutionUnit |
Namespaces | |
Analyzer | |
Typedefs | |
using | AdjacentList = boost::adjacency_list< boost::setS, boost::vecS, boost::directedS > |
using | RelNodeId = size_t |
using | RelNodeExplainedHash = size_t |
using | QueryPlanDAG = std::string |
using | QueryPlanHash = size_t |
using | HashTableBuildDagMap = std::unordered_map< size_t, HashTableBuildDag > |
using | TableIdToNodeMap = std::unordered_map< shared::TableKey, const RelAlgNode * > |
using | JoinQualsPerNestingLevel = std::vector< JoinCondition > |
using | ResultSetPtr = std::shared_ptr< ResultSet > |
Enumerations | |
enum | JoinColumnSide { kInner, kOuter, kQual, kDirect } |
enum | SortAlgorithm { SortAlgorithm::Default, SortAlgorithm::SpeculativeTopN, SortAlgorithm::StreamingTopN } |
Functions | |
std::ostream & | operator<< (std::ostream &os, const RelAlgExecutionUnit &ra_exe_unit) |
Variables | |
constexpr char const * | EMPTY_QUERY_PLAN = "" |
constexpr QueryPlanHash | EMPTY_HASHED_PLAN_DAG_KEY = 0 |
Execution unit for relational algebra. It's a low-level description of any relational algebra operation in a format understood by our VM.
Definition in file RelAlgExecutionUnit.h.
using AdjacentList = boost::adjacency_list<boost::setS, boost::vecS, boost::directedS> |
Definition at line 44 of file RelAlgExecutionUnit.h.
using HashTableBuildDagMap = std::unordered_map<size_t, HashTableBuildDag> |
Definition at line 87 of file RelAlgExecutionUnit.h.
using JoinQualsPerNestingLevel = std::vector<JoinCondition> |
Definition at line 163 of file RelAlgExecutionUnit.h.
using QueryPlanDAG = std::string |
Definition at line 57 of file RelAlgExecutionUnit.h.
using QueryPlanHash = size_t |
Definition at line 59 of file RelAlgExecutionUnit.h.
using RelNodeExplainedHash = size_t |
Definition at line 52 of file RelAlgExecutionUnit.h.
using RelNodeId = size_t |
Definition at line 50 of file RelAlgExecutionUnit.h.
using ResultSetPtr = std::shared_ptr<ResultSet> |
Definition at line 231 of file RelAlgExecutionUnit.h.
using TableIdToNodeMap = std::unordered_map<shared::TableKey, const RelAlgNode*> |
Definition at line 95 of file RelAlgExecutionUnit.h.
enum JoinColumnSide |
Enumerator | |
---|---|
kInner | |
kOuter | |
kQual | |
kDirect |
Definition at line 97 of file RelAlgExecutionUnit.h.
|
strong |
Enumerator | |
---|---|
Default | |
SpeculativeTopN | |
StreamingTopN |
Definition at line 107 of file RelAlgExecutionUnit.h.
std::ostream& operator<< | ( | std::ostream & | os, |
const RelAlgExecutionUnit & | ra_exe_unit | ||
) |
Definition at line 2024 of file Execute.cpp.
References RelAlgExecutionUnit::estimator, anonymous_namespace{Execute.cpp}::expr_container_to_string(), RelAlgExecutionUnit::groupby_exprs, RelAlgExecutionUnit::input_col_descs, join(), RelAlgExecutionUnit::join_quals, RelAlgExecutionUnit::quals, RelAlgExecutionUnit::query_plan_dag_hash, RelAlgExecutionUnit::scan_limit, RelAlgExecutionUnit::simple_quals, anonymous_namespace{Execute.cpp}::sort_algorithm_to_string(), RelAlgExecutionUnit::sort_info, RelAlgExecutionUnit::target_exprs, to_string(), toString(), RelAlgExecutionUnit::union_all, and RelAlgExecutionUnit::use_bump_allocator.
constexpr QueryPlanHash EMPTY_HASHED_PLAN_DAG_KEY = 0 |
Definition at line 105 of file RelAlgExecutionUnit.h.
Referenced by RelAlgExecutor::createUnionWorkUnit(), QueryPlanDagExtractor::extractJoinInfo(), HashtableRecycler::getCachedHashtableWithoutCacheKey(), ResultSetRecycler::getCachedResultSetWithoutCacheKey(), HashtableRecycler::getHashtableAccessPathInfo(), BoundingBoxIntersectTuningParamRecycler::getItemFromCache(), HashtableRecycler::getJoinColumnInfoHash(), QueryPlanDagCache::getJoinColumnsInfoHash(), ResultSetRecycler::getOutputMetaInfo(), QueryPlanDagExtractor::handleTranslatedJoin(), anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag(), HashingSchemeRecycler::hasItemInCache(), BoundingBoxIntersectTuningParamRecycler::hasItemInCache(), ChunkMetadataRecycler::hasItemInCache(), ResultSetRecycler::hasItemInCache(), HashtableRecycler::hasItemInCache(), HashtableRecycler::isInvalidHashTableCacheKey(), HashingSchemeRecycler::putItemToCache(), BoundingBoxIntersectTuningParamRecycler::putItemToCache(), ChunkMetadataRecycler::putItemToCache(), ResultSetRecycler::putItemToCache(), HashtableRecycler::putItemToCache(), ResultSetRecycler::removeItemFromCache(), HashtableRecycler::removeItemFromCache(), and QueryPlanDagCache::translateColVarsToInfoHash().
constexpr char const* EMPTY_QUERY_PLAN = "" |
Definition at line 104 of file RelAlgExecutionUnit.h.
Referenced by QueryPlanDagExtractor::extractQueryPlanDag(), QueryPlanDagExtractor::getExtractedQueryPlanDagStr(), and RaExecutionSequence::next().