OmniSciDB  72c90bc290
 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 751 of file BaselineJoinHashTable.cpp.

Referenced by BaselineJoinHashTable::initHashTableForDevice().

752  {
753  StrProxyTranslationMapsPtrsAndOffsets translation_map_ptrs_and_offsets;
754  // First element of pair is vector of int32_t* pointing to translation map "vector"
755  // Second element of pair is vector of int32_t of min inner dictionary ids (offsets)
756  const size_t num_translation_maps = str_proxy_translation_maps.size();
757  translation_map_ptrs_and_offsets.first.reserve(num_translation_maps);
758  translation_map_ptrs_and_offsets.second.reserve(num_translation_maps);
759  for (const auto& str_proxy_translation_map : str_proxy_translation_maps) {
760  if (str_proxy_translation_map) {
761  translation_map_ptrs_and_offsets.first.emplace_back(
762  str_proxy_translation_map->data());
763  translation_map_ptrs_and_offsets.second.emplace_back(
764  str_proxy_translation_map->domainStart());
765  } else {
766  // dummy values
767  translation_map_ptrs_and_offsets.first.emplace_back(nullptr);
768  translation_map_ptrs_and_offsets.second.emplace_back(0);
769  }
770  }
771  return translation_map_ptrs_and_offsets;
772 }
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 243 of file BaselineJoinHashTable.cpp.

References CHECK_EQ.

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

246  {
247  const auto num_col_pairs = inner_outer_pairs.size();
248  CHECK_EQ(num_col_pairs, inner_outer_string_op_infos_pairs.size());
249  for (size_t col_pair_idx = 0; col_pair_idx < num_col_pairs; ++col_pair_idx) {
250  if (needs_dictionary_translation(inner_outer_pairs[col_pair_idx],
251  inner_outer_string_op_infos_pairs[col_pair_idx],
252  executor)) {
253  return true;
254  }
255  }
256  return false;
257 }
#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: