OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
QueryMemoryDescriptor.h File Reference

Descriptor for the result set buffer layout. More...

#include "../CompilationOptions.h"
#include "../CountDistinct.h"
#include "ColSlotContext.h"
#include "Types.h"
#include <boost/optional.hpp>
#include "Logger/Logger.h"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <memory>
#include <numeric>
#include <unordered_map>
#include <vector>
#include <Shared/SqlTypesLayout.h>
#include <Shared/TargetInfo.h>
+ Include dependency graph for QueryMemoryDescriptor.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  StreamingTopNOOM
 
class  QueryMemoryDescriptor
 

Functions

void set_notnull (TargetInfo &target, const bool not_null)
 
std::vector< TargetInfotarget_exprs_to_infos (const std::vector< Analyzer::Expr * > &targets, const QueryMemoryDescriptor &query_mem_desc)
 

Variables

bool g_cluster
 

Detailed Description

Descriptor for the result set buffer layout.

Definition in file QueryMemoryDescriptor.h.

Function Documentation

void set_notnull ( TargetInfo target,
const bool  not_null 
)
inline

Definition at line 426 of file QueryMemoryDescriptor.h.

References get_compact_type(), set_compact_type(), and TargetInfo::skip_null_val.

Referenced by init_agg_val_vec(), and target_exprs_to_infos().

426  {
427  target.skip_null_val = !not_null;
428  auto new_type = get_compact_type(target);
429  new_type.set_notnull(not_null);
430  set_compact_type(target, new_type);
431 }
void set_compact_type(TargetInfo &target, const SQLTypeInfo &new_type)
bool skip_null_val
Definition: TargetInfo.h:54
const SQLTypeInfo get_compact_type(const TargetInfo &target)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::vector<TargetInfo> target_exprs_to_infos ( const std::vector< Analyzer::Expr * > &  targets,
const QueryMemoryDescriptor query_mem_desc 
)

Definition at line 1312 of file QueryMemoryDescriptor.cpp.

References QueryMemoryDescriptor::checkSlotUsesFlatBufferFormat(), g_bigint_count, get_target_info(), QueryMemoryDescriptor::getQueryDescriptionType(), NonGroupedAggregate, and set_notnull().

Referenced by SpeculativeTopNMap::asRows(), Executor::executeTableFunction(), QueryMemoryInitializer::QueryMemoryInitializer(), ExecutionKernel::runImpl(), and thread_idx_().

1314  {
1315  std::vector<TargetInfo> target_infos;
1316  size_t index = 0;
1317  for (const auto target_expr : targets) {
1318  auto target = get_target_info(target_expr, g_bigint_count);
1319  if (query_mem_desc.getQueryDescriptionType() ==
1321  set_notnull(target, false);
1322  target.sql_type.set_notnull(false);
1323  }
1324  if (target.sql_type.supportsFlatBuffer()) {
1325  target.sql_type.setUsesFlatBuffer(
1326  query_mem_desc.checkSlotUsesFlatBufferFormat(index));
1327  }
1328  target_infos.push_back(target);
1329  index++;
1330  }
1331  return target_infos;
1332 }
TargetInfo get_target_info(const Analyzer::Expr *target_expr, const bool bigint_count)
Definition: TargetInfo.h:92
bool g_bigint_count
QueryDescriptionType getQueryDescriptionType() const
bool checkSlotUsesFlatBufferFormat(const size_t slot_idx) const
void set_notnull(TargetInfo &target, const bool not_null)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

bool g_cluster

Referenced by QueryMemoryDescriptor::blocksShareMemory(), RelAlgExecutor::canUseResultsetCache(), QueryFragmentDescriptor::checkDeviceMemoryUsage(), HashJoin::checkHashJoinReplicationConstraint(), GroupByAndAggregate::codegenAggCalls(), GroupByAndAggregate::codegenAggColumnPtr(), CodeGenerator::codegenCastFromString(), CodeGenerator::codegenCastNonStringToString(), Executor::codegenFrameBoundExpr(), CodeGenerator::codegenPerRowStringOper(), CodeGenerator::codegenQualifierCmp(), anonymous_namespace{RelAlgExecutor.cpp}::decide_approx_count_distinct_implementation(), anonymous_namespace{RelAlgExecutor.cpp}::do_table_reordering(), TableArchiver::dumpTable(), AlterTableAlterColumnCommand::execute(), Parser::CreateTableAsSelectStmt::execute(), RelAlgExecutor::executeRelAlgSeq(), RelAlgExecutor::executeRelAlgStep(), RelAlgExecutor::executeRelAlgSubSeq(), RelAlgExecutor::executeSort(), RelAlgExecutor::executeTableFunction(), RelAlgExecutor::executeWorkUnit(), anonymous_namespace{Execute.cpp}::fill_entries_for_empty_input(), get_count_distinct_sub_bitmap_count(), DBHandler::get_status(), RelAlgTranslator::getInIntegerSetExpr(), DBHandler::getServerRole(), anonymous_namespace{RelAlgExecutor.cpp}::handle_query_hint(), dist::is_distributed(), QueryMemoryDescriptor::isLogicalSizedColumnsAllowed(), loadGeo(), RelAlgDagBuilder::optimizeDag(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::prepare_loader_generic(), RaExecutionSequence::RaExecutionSequence(), TableArchiver::restoreTable(), DBHandler::set_table_epochs(), DBHandler::sql_execute_impl(), RelAlgTranslator::translateAggregateRex(), RelAlgTranslator::translateScalarSubquery(), RelAlgTranslator::translateUoper(), use_speculative_top_n(), and anonymous_namespace{QueryMemoryDescriptor.cpp}::use_streaming_top_n().