OmniSciDB  0bd2ec9cf4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros 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 "Shared/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.


class  QueryMemoryDescriptor


enum  GroupByMemSharing { GroupByMemSharing::Shared, GroupByMemSharing::SharedForKeylessOneColumnKnownRange }


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)


bool g_cluster

Detailed Description

Descriptor for the result set buffer layout.

Alex Suhan Copyright (c) 2014 MapD Technologies, Inc. All rights reserved.

Definition in file QueryMemoryDescriptor.h.

Enumeration Type Documentation

enum GroupByMemSharing

Definition at line 58 of file QueryMemoryDescriptor.h.

Function Documentation

void set_notnull ( TargetInfo target,
const bool  not_null 

Definition at line 372 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().

372  {
373  target.skip_null_val = !not_null;
374  auto new_type = get_compact_type(target);
375  new_type.set_notnull(not_null);
376  set_compact_type(target, new_type);
377 }
void set_compact_type(TargetInfo &target, const SQLTypeInfo &new_type)
bool skip_null_val
Definition: TargetInfo.h:44
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 1179 of file QueryMemoryDescriptor.cpp.

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

Referenced by SpeculativeTopNMap::asRows(), device_allocator_(), and QueryMemoryInitializer::QueryMemoryInitializer().

1181  {
1182  std::vector<TargetInfo> target_infos;
1183  for (const auto target_expr : targets) {
1184  auto target = get_target_info(target_expr, g_bigint_count);
1185  if (query_mem_desc.getQueryDescriptionType() ==
1187  set_notnull(target, false);
1188  target.sql_type.set_notnull(false);
1189  }
1190  target_infos.push_back(target);
1191  }
1192  return target_infos;
1193 }
TargetInfo get_target_info(const PointerType target_expr, const bool bigint_count)
Definition: TargetInfo.h:66
bool g_bigint_count
QueryDescriptionType getQueryDescriptionType() 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