OmniSciDB  343343d194
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
anonymous_namespace{ExecutionDispatch.cpp} Namespace Reference

Functions

bool needs_skip_result (const ResultSetPtr &res)
 
bool need_to_hold_chunk (const Chunk_NS::Chunk *chunk, const RelAlgExecutionUnit &ra_exe_unit)
 
bool query_has_inner_join (const RelAlgExecutionUnit &ra_exe_unit)
 

Function Documentation

bool anonymous_namespace{ExecutionDispatch.cpp}::need_to_hold_chunk ( const Chunk_NS::Chunk chunk,
const RelAlgExecutionUnit ra_exe_unit 
)

Definition at line 38 of file ExecutionDispatch.cpp.

References CHECK, ColumnDescriptor::columnId, ColumnDescriptor::columnType, Chunk_NS::Chunk::get_column_desc(), kENCODING_NONE, ColumnDescriptor::tableId, and RelAlgExecutionUnit::target_exprs.

Referenced by Executor::ExecutionDispatch::runImpl().

39  {
40  CHECK(chunk->get_column_desc());
41  const auto chunk_ti = chunk->get_column_desc()->columnType;
42  if (chunk_ti.is_array() ||
43  (chunk_ti.is_string() && chunk_ti.get_compression() == kENCODING_NONE)) {
44  for (const auto target_expr : ra_exe_unit.target_exprs) {
45  const auto col_var = dynamic_cast<const Analyzer::ColumnVar*>(target_expr);
46  if (col_var && col_var->get_column_id() == chunk->get_column_desc()->columnId &&
47  col_var->get_table_id() == chunk->get_column_desc()->tableId) {
48  return true;
49  }
50  }
51  }
52  return false;
53 }
std::vector< Analyzer::Expr * > target_exprs
const ColumnDescriptor * get_column_desc() const
Definition: Chunk.h:52
#define CHECK(condition)
Definition: Logger.h:187
SQLTypeInfo columnType

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool anonymous_namespace{ExecutionDispatch.cpp}::needs_skip_result ( const ResultSetPtr res)

Definition at line 32 of file ExecutionDispatch.cpp.

Referenced by Executor::ExecutionDispatch::runImpl().

32  {
33  return !res || res->definitelyHasNoRows();
34 }

+ Here is the caller graph for this function:

bool anonymous_namespace{ExecutionDispatch.cpp}::query_has_inner_join ( const RelAlgExecutionUnit ra_exe_unit)
inline

Definition at line 55 of file ExecutionDispatch.cpp.

References INNER, and RelAlgExecutionUnit::join_quals.

Referenced by Executor::ExecutionDispatch::runImpl().

55  {
56  return (std::count_if(ra_exe_unit.join_quals.begin(),
57  ra_exe_unit.join_quals.end(),
58  [](const auto& join_condition) {
59  return join_condition.type == JoinType::INNER;
60  }) > 0);
61 }
const JoinQualsPerNestingLevel join_quals

+ Here is the caller graph for this function: