OmniSciDB  1dac507f6e
 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.

Classes

class  QueryMemoryDescriptor
 

Enumerations

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

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.

Author
Alex Suhan alex@.nosp@m.mapd.nosp@m..com Copyright (c) 2014 MapD Technologies, Inc. All rights reserved.

Definition in file QueryMemoryDescriptor.h.

Enumeration Type Documentation

enum GroupByMemSharing
strong
Enumerator
Shared 
SharedForKeylessOneColumnKnownRange 

Definition at line 58 of file QueryMemoryDescriptor.h.

Function Documentation

void set_notnull ( TargetInfo target,
const bool  not_null 
)
inline

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:65
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