OmniSciDB  eb3a3d0a03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BaselineHashTableBuilder.h File Reference
+ Include dependency graph for BaselineHashTableBuilder.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  BaselineJoinHashTableBuilder
 

Functions

template<typename SIZE , class KEY_HANDLER , typename std::enable_if< sizeof(SIZE)==4, SIZE >::type * = nullptr>
int fill_baseline_hash_join_buff (int8_t *hash_buff, const size_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, const KEY_HANDLER *key_handler, const size_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count)
 
template<typename SIZE , class KEY_HANDLER , typename std::enable_if< sizeof(SIZE)==4, SIZE >::type * = nullptr>
void fill_baseline_hash_join_buff_on_device (int8_t *hash_buff, const size_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const KEY_HANDLER *key_handler, const size_t num_elems)
 
template<typename SIZE , class KEY_HANDLER , typename std::enable_if< sizeof(SIZE)==4, SIZE >::type * = nullptr>
void fill_one_to_many_baseline_hash_table_on_device (int32_t *buff, const SIZE *composite_key_dict, const size_t hash_entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const KEY_HANDLER *key_handler, const size_t num_elems)
 

Function Documentation

template<typename SIZE , class KEY_HANDLER , typename std::enable_if< sizeof(SIZE)==4, SIZE >::type * = nullptr>
int fill_baseline_hash_join_buff ( int8_t *  hash_buff,
const size_t  entry_count,
const int32_t  invalid_slot_val,
const bool  for_semi_join,
const size_t  key_component_count,
const bool  with_val_slot,
const KEY_HANDLER *  key_handler,
const size_t  num_elems,
const int32_t  cpu_thread_idx,
const int32_t  cpu_thread_count 
)

Definition at line 29 of file BaselineHashTableBuilder.h.

References fill_baseline_hash_join_buff_32(), overlaps_fill_baseline_hash_join_buff_32(), and range_fill_baseline_hash_join_buff_32().

Referenced by fill_baseline_hash_join_buff_wrapper().

38  {
39  if constexpr (std::is_same<KEY_HANDLER, GenericKeyHandler>::value) {
40  return fill_baseline_hash_join_buff_32(hash_buff,
41  entry_count,
42  invalid_slot_val,
43  for_semi_join,
44  key_component_count,
45  with_val_slot,
46  key_handler,
47  num_elems,
48  cpu_thread_idx,
49  cpu_thread_count);
50  } else if constexpr (std::is_same<KEY_HANDLER, RangeKeyHandler>::value) {
52  entry_count,
53  invalid_slot_val,
54  key_component_count,
55  with_val_slot,
56  key_handler,
57  num_elems,
58  cpu_thread_idx,
59  cpu_thread_count);
60  } else {
61  static_assert(std::is_same<KEY_HANDLER, OverlapsKeyHandler>::value,
62  "Only Generic, Overlaps, and Range Key Handlers are supported.");
64  entry_count,
65  invalid_slot_val,
66  key_component_count,
67  with_val_slot,
68  key_handler,
69  num_elems,
70  cpu_thread_idx,
71  cpu_thread_count);
72  }
73 }
int range_fill_baseline_hash_join_buff_32(int8_t *hash_buff, const size_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const RangeKeyHandler *key_handler, const size_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count)
int overlaps_fill_baseline_hash_join_buff_32(int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const OverlapsKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count)
int fill_baseline_hash_join_buff_32(int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, const GenericKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename SIZE , class KEY_HANDLER , typename std::enable_if< sizeof(SIZE)==4, SIZE >::type * = nullptr>
void fill_baseline_hash_join_buff_on_device ( int8_t *  hash_buff,
const size_t  entry_count,
const int32_t  invalid_slot_val,
const bool  for_semi_join,
const size_t  key_component_count,
const bool  with_val_slot,
int *  dev_err_buff,
const KEY_HANDLER *  key_handler,
const size_t  num_elems 
)

Definition at line 127 of file BaselineHashTableBuilder.h.

References logger::FATAL, fill_baseline_hash_join_buff_on_device_32(), LOG, and UNREACHABLE.

135  {
136  if constexpr (std::is_same<KEY_HANDLER, GenericKeyHandler>::value) {
138  entry_count,
139  invalid_slot_val,
140  for_semi_join,
141  key_component_count,
142  with_val_slot,
143  dev_err_buff,
144  key_handler,
145  num_elems);
146  } else if constexpr (std::is_same<KEY_HANDLER, RangeKeyHandler>::value) {
147  UNREACHABLE();
148  } else {
149  static_assert(std::is_same<KEY_HANDLER, OverlapsKeyHandler>::value,
150  "Only Generic, Overlaps, and Range Key Handlers are supported.");
151  LOG(FATAL) << "32-bit keys not yet supported for overlaps join.";
152  }
153 }
#define LOG(tag)
Definition: Logger.h:203
void fill_baseline_hash_join_buff_on_device_32(int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const GenericKeyHandler *key_handler, const int64_t num_elems)
#define UNREACHABLE()
Definition: Logger.h:253

+ Here is the call graph for this function:

template<typename SIZE , class KEY_HANDLER , typename std::enable_if< sizeof(SIZE)==4, SIZE >::type * = nullptr>
void fill_one_to_many_baseline_hash_table_on_device ( int32_t *  buff,
const SIZE *  composite_key_dict,
const size_t  hash_entry_count,
const int32_t  invalid_slot_val,
const size_t  key_component_count,
const KEY_HANDLER *  key_handler,
const size_t  num_elems 
)

Definition at line 203 of file BaselineHashTableBuilder.h.

References logger::FATAL, fill_one_to_many_baseline_hash_table_on_device_32(), and LOG.

209  {
210  if constexpr (std::is_same<KEY_HANDLER, GenericKeyHandler>::value) {
212  composite_key_dict,
213  hash_entry_count,
214  invalid_slot_val,
215  key_component_count,
216  key_handler,
217  num_elems);
218  } else {
219  static_assert(std::is_same<KEY_HANDLER, OverlapsKeyHandler>::value ||
220  std::is_same<KEY_HANDLER, RangeKeyHandler>::value,
221  "Only Generic, Overlaps, and Range Key Handlers are supported.");
222  LOG(FATAL) << "32-bit keys not yet supported for overlaps join.";
223  }
224 }
void fill_one_to_many_baseline_hash_table_on_device_32(int32_t *buff, const int32_t *composite_key_dict, const int64_t hash_entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const GenericKeyHandler *key_handler, const int64_t num_elems)
#define LOG(tag)
Definition: Logger.h:203

+ Here is the call graph for this function: