OmniSciDB  c1a53651b2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BaselineJoinHashTable.cpp File Reference
+ Include dependency graph for BaselineJoinHashTable.cpp:

Go to the source code of this file.

Macros

#define LL_CONTEXT   executor_->cgen_state_->context_
 
#define LL_BUILDER   executor_->cgen_state_->ir_builder_
 
#define LL_INT(v)   executor_->cgen_state_->llInt(v)
 
#define LL_FP(v)   executor_->cgen_state_->llFp(v)
 
#define ROW_FUNC   executor_->cgen_state_->row_func_
 

Functions

bool needs_dictionary_translation (const std::vector< InnerOuter > &inner_outer_pairs, const std::vector< InnerOuterStringOpInfos > &inner_outer_string_op_infos_pairs, const Executor *executor)
 
StrProxyTranslationMapsPtrsAndOffsets decomposeStrDictTranslationMaps (const std::vector< const StringDictionaryProxy::IdMap * > &str_proxy_translation_maps)
 

Macro Definition Documentation

#define LL_FP (   v)    executor_->cgen_state_->llFp(v)

Definition at line 911 of file BaselineJoinHashTable.cpp.

#define LL_INT (   v)    executor_->cgen_state_->llInt(v)
#define ROW_FUNC   executor_->cgen_state_->row_func_

Definition at line 912 of file BaselineJoinHashTable.cpp.

Function Documentation

StrProxyTranslationMapsPtrsAndOffsets decomposeStrDictTranslationMaps ( const std::vector< const StringDictionaryProxy::IdMap * > &  str_proxy_translation_maps)

Definition at line 746 of file BaselineJoinHashTable.cpp.

Referenced by BaselineJoinHashTable::initHashTableForDevice().

747  {
748  StrProxyTranslationMapsPtrsAndOffsets translation_map_ptrs_and_offsets;
749  // First element of pair is vector of int32_t* pointing to translation map "vector"
750  // Second element of pair is vector of int32_t of min inner dictionary ids (offsets)
751  const size_t num_translation_maps = str_proxy_translation_maps.size();
752  translation_map_ptrs_and_offsets.first.reserve(num_translation_maps);
753  translation_map_ptrs_and_offsets.second.reserve(num_translation_maps);
754  for (const auto& str_proxy_translation_map : str_proxy_translation_maps) {
755  if (str_proxy_translation_map) {
756  translation_map_ptrs_and_offsets.first.emplace_back(
757  str_proxy_translation_map->data());
758  translation_map_ptrs_and_offsets.second.emplace_back(
759  str_proxy_translation_map->domainStart());
760  } else {
761  // dummy values
762  translation_map_ptrs_and_offsets.first.emplace_back(nullptr);
763  translation_map_ptrs_and_offsets.second.emplace_back(0);
764  }
765  }
766  return translation_map_ptrs_and_offsets;
767 }
std::pair< std::vector< const int32_t * >, std::vector< int32_t >> StrProxyTranslationMapsPtrsAndOffsets

+ Here is the caller graph for this function:

bool needs_dictionary_translation ( const std::vector< InnerOuter > &  inner_outer_pairs,
const std::vector< InnerOuterStringOpInfos > &  inner_outer_string_op_infos_pairs,
const Executor executor 
)

Definition at line 232 of file BaselineJoinHashTable.cpp.

References CHECK_EQ.

Referenced by PerfectJoinHashTable::getEffectiveMemoryLevel(), BaselineJoinHashTable::getEffectiveMemoryLevel(), BaselineJoinHashTable::reify(), and PerfectJoinHashTable::reify().

235  {
236  const auto num_col_pairs = inner_outer_pairs.size();
237  CHECK_EQ(num_col_pairs, inner_outer_string_op_infos_pairs.size());
238  for (size_t col_pair_idx = 0; col_pair_idx < num_col_pairs; ++col_pair_idx) {
239  if (needs_dictionary_translation(inner_outer_pairs[col_pair_idx],
240  inner_outer_string_op_infos_pairs[col_pair_idx],
241  executor)) {
242  return true;
243  }
244  }
245  return false;
246 }
#define CHECK_EQ(x, y)
Definition: Logger.h:301
bool needs_dictionary_translation(const std::vector< InnerOuter > &inner_outer_pairs, const std::vector< InnerOuterStringOpInfos > &inner_outer_string_op_infos_pairs, const Executor *executor)

+ Here is the caller graph for this function: