|
template<typename T > |
IndexPair | find_null_range_int (int8_t const *order_col_buf) const |
|
template<typename COL_TYPE , typename NULL_TYPE = std::conditional_t<sizeof(COL_TYPE) == sizeof(int32_t), int32_t, int64_t>> |
IndexPair | find_null_range_fp (int8_t const *order_col_buf) const |
|
Definition at line 777 of file WindowContext.cpp.
template<typename COL_TYPE , typename NULL_TYPE = std::conditional_t<sizeof(COL_TYPE) == sizeof(int32_t), int32_t, int64_t>>
IndexPair anonymous_namespace{WindowContext.cpp}::FindNullRange::find_null_range_fp |
( |
int8_t const * |
order_col_buf | ) |
const |
|
inline |
Definition at line 818 of file WindowContext.cpp.
819 IndexPair null_range{std::numeric_limits<int64_t>::max(),
820 std::numeric_limits<int64_t>::min()};
821 auto const casted_order_col_buf =
reinterpret_cast<COL_TYPE const*
>(order_col_buf);
822 auto check_null_val = [&casted_order_col_buf,
this](
size_t idx) {
823 return *
reinterpret_cast<NULL_TYPE const*
>(
824 may_alias_ptr(&casted_order_col_buf
828 if (check_null_val(0)) {
829 int64_t null_range_max = 1;
830 while (null_range_max <
partition_size && check_null_val(null_range_max)) {
833 null_range.first = 0;
834 null_range.second = null_range_max - 1;
837 while (null_range_min >= 0 && check_null_val(null_range_min)) {
840 null_range.first = null_range_min + 1;
int32_t const * original_col_idx_buf
int32_t const partition_size
std::pair< int64_t, int64_t > IndexPair
int64_t const * ordered_col_idx_buf
template<typename T >
IndexPair anonymous_namespace{WindowContext.cpp}::FindNullRange::find_null_range_int |
( |
int8_t const * |
order_col_buf | ) |
const |
|
inline |
Definition at line 784 of file WindowContext.cpp.
References heavydb.dtypes::T.
785 IndexPair null_range{std::numeric_limits<int64_t>::max(),
786 std::numeric_limits<int64_t>::min()};
787 auto const null_val = inline_int_null_value<T>();
788 auto const casted_order_col_buf =
reinterpret_cast<T const*
>(order_col_buf);
790 int64_t null_range_max = 1;
797 null_range.first = 0;
798 null_range.second = null_range_max - 1;
799 }
else if (casted_order_col_buf
803 while (null_range_min >= 0 &&
809 null_range.first = null_range_min + 1;
int32_t const * original_col_idx_buf
int32_t const partition_size
std::pair< int64_t, int64_t > IndexPair
int64_t const * ordered_col_idx_buf
int64_t anonymous_namespace{WindowContext.cpp}::FindNullRange::null_bit_pattern = -1 |
int64_t const* anonymous_namespace{WindowContext.cpp}::FindNullRange::ordered_col_idx_buf |
int32_t const* anonymous_namespace{WindowContext.cpp}::FindNullRange::original_col_idx_buf |
int32_t const anonymous_namespace{WindowContext.cpp}::FindNullRange::partition_size |
The documentation for this struct was generated from the following file: