OmniSciDB  085a039ca4
 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_BUILDER   executor_->cgen_state_->ir_builder_
#define LL_FP (   v)    executor_->cgen_state_->llFp(v)

Definition at line 902 of file BaselineJoinHashTable.cpp.

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

Definition at line 903 of file BaselineJoinHashTable.cpp.

Function Documentation

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

Definition at line 739 of file BaselineJoinHashTable.cpp.

Referenced by BaselineJoinHashTable::initHashTableForDevice().

740  {
741  StrProxyTranslationMapsPtrsAndOffsets translation_map_ptrs_and_offsets;
742  // First element of pair is vector of int32_t* pointing to translation map "vector"
743  // Second element of pair is vector of int32_t of min inner dictionary ids (offsets)
744  const size_t num_translation_maps = str_proxy_translation_maps.size();
745  translation_map_ptrs_and_offsets.first.reserve(num_translation_maps);
746  translation_map_ptrs_and_offsets.second.reserve(num_translation_maps);
747  for (const auto& str_proxy_translation_map : str_proxy_translation_maps) {
748  if (str_proxy_translation_map) {
749  translation_map_ptrs_and_offsets.first.emplace_back(
750  str_proxy_translation_map->data());
751  translation_map_ptrs_and_offsets.second.emplace_back(
752  str_proxy_translation_map->domainStart());
753  } else {
754  // dummy values
755  translation_map_ptrs_and_offsets.first.emplace_back(nullptr);
756  translation_map_ptrs_and_offsets.second.emplace_back(0);
757  }
758  }
759  return translation_map_ptrs_and_offsets;
760 }
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 228 of file BaselineJoinHashTable.cpp.

References CHECK_EQ.

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

231  {
232  const auto num_col_pairs = inner_outer_pairs.size();
233  CHECK_EQ(num_col_pairs, inner_outer_string_op_infos_pairs.size());
234  for (size_t col_pair_idx = 0; col_pair_idx < num_col_pairs; ++col_pair_idx) {
235  if (needs_dictionary_translation(inner_outer_pairs[col_pair_idx],
236  inner_outer_string_op_infos_pairs[col_pair_idx],
237  executor)) {
238  return true;
239  }
240  }
241  return false;
242 }
#define CHECK_EQ(x, y)
Definition: Logger.h:231
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: