MCPcopy Create free account
hub / github.com/apache/impala / GetNextValue

Method GetNextValue

be/src/util/dict-encoding.h:500–514  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

498// Force inlining - GCC does not always inline this into hot loops in Parquet scanner.
499template <typename T>
500ALWAYS_INLINE inline bool DictDecoder<T>::GetNextValue(T* value) {
501 // IMPALA-959: Use memcpy() instead of '=' to set *value: addresses are not always 16
502 // byte aligned for Decimal16Values.
503 if (num_repeats_ > 0) {
504 --num_repeats_;
505 memcpy(value, &decoded_values_[0], sizeof(T));
506 return true;
507 } else if (next_literal_idx_ < num_literal_values_) {
508 int idx = next_literal_idx_++;
509 memcpy(value, &decoded_values_[idx], sizeof(T));
510 return true;
511 }
512 // No decoded values left - need to decode some more.
513 return DecodeNextValue(value);
514}
515
516template <typename T>
517ALWAYS_INLINE inline bool DictDecoder<T>::GetNextValues(

Callers 4

DecodeValueMethod · 0.80
DictBenchmark_OneByOneFunction · 0.80
ValidateValuesFunction · 0.80
TESTFunction · 0.80

Calls

no outgoing calls

Tested by 2

ValidateValuesFunction · 0.64
TESTFunction · 0.64