OmniSciDB  a5dc49c757
 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 size_t key_component_count, const KEY_HANDLER *key_handler, const size_t num_elems, const bool for_window_framing)
 

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 30 of file BaselineHashTableBuilder.h.

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

Referenced by fill_baseline_hash_join_buff_wrapper().

39  {
40  if constexpr (std::is_same<KEY_HANDLER, GenericKeyHandler>::value) {
41  return fill_baseline_hash_join_buff_32(hash_buff,
42  entry_count,
43  invalid_slot_val,
44  for_semi_join,
45  key_component_count,
46  with_val_slot,
47  key_handler,
48  num_elems,
49  cpu_thread_idx,
50  cpu_thread_count);
51  } else if constexpr (std::is_same<KEY_HANDLER, RangeKeyHandler>::value) {
53  entry_count,
54  invalid_slot_val,
55  key_component_count,
56  with_val_slot,
57  key_handler,
58  num_elems,
59  cpu_thread_idx,
60  cpu_thread_count);
61  } else {
62  static_assert(
63  std::is_same<KEY_HANDLER, BoundingBoxIntersectKeyHandler>::value,
64  "Only Generic, Bounding Box Intersect, and Range Key Handlers are supported.");
66  entry_count,
67  invalid_slot_val,
68  key_component_count,
69  with_val_slot,
70  key_handler,
71  num_elems,
72  cpu_thread_idx,
73  cpu_thread_count);
74  }
75 }
int bbox_intersect_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 BoundingBoxIntersectKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count)
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 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 130 of file BaselineHashTableBuilder.h.

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

138  {
139  if constexpr (std::is_same<KEY_HANDLER, GenericKeyHandler>::value) {
141  entry_count,
142  invalid_slot_val,
143  for_semi_join,
144  key_component_count,
145  with_val_slot,
146  dev_err_buff,
147  key_handler,
148  num_elems);
149  } else if constexpr (std::is_same<KEY_HANDLER, RangeKeyHandler>::value) {
150  UNREACHABLE();
151  } else {
152  static_assert(
153  std::is_same<KEY_HANDLER, BoundingBoxIntersectKeyHandler>::value,
154  "Only Generic, Bounding Box Intersection, and Range Key Handlers are supported.");
155  LOG(FATAL) << "32-bit keys not yet supported for bounding box intersect.";
156  }
157 }
#define LOG(tag)
Definition: Logger.h:285
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:338

+ 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 size_t  key_component_count,
const KEY_HANDLER *  key_handler,
const size_t  num_elems,
const bool  for_window_framing 
)

Definition at line 208 of file BaselineHashTableBuilder.h.

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

214  {
215  if constexpr (std::is_same<KEY_HANDLER, GenericKeyHandler>::value) {
217  composite_key_dict,
218  hash_entry_count,
219  key_component_count,
220  key_handler,
221  num_elems,
222  for_window_framing);
223  } else {
224  static_assert(
225  std::is_same<KEY_HANDLER, BoundingBoxIntersectKeyHandler>::value ||
226  std::is_same<KEY_HANDLER, RangeKeyHandler>::value,
227  "Only Generic, Bounding Box Intersection, and Range Key Handlers are supported.");
228  LOG(FATAL) << "32-bit keys not yet supported for bounding box intersect.";
229  }
230 }
#define LOG(tag)
Definition: Logger.h:285
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 size_t key_component_count, const GenericKeyHandler *key_handler, const int64_t num_elems, const bool for_window_framing)

+ Here is the call graph for this function: