|
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 778 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 819 of file WindowContext.cpp.
820 IndexPair null_range{std::numeric_limits<int64_t>::max(),
821 std::numeric_limits<int64_t>::min()};
822 auto const casted_order_col_buf =
reinterpret_cast<COL_TYPE const*
>(order_col_buf);
823 auto check_null_val = [&casted_order_col_buf,
this](
size_t idx) {
824 return *
reinterpret_cast<NULL_TYPE const*
>(
825 may_alias_ptr(&casted_order_col_buf
829 if (check_null_val(0)) {
830 int64_t null_range_max = 1;
831 while (null_range_max <
partition_size && check_null_val(null_range_max)) {
834 null_range.first = 0;
835 null_range.second = null_range_max - 1;
838 while (null_range_min >= 0 && check_null_val(null_range_min)) {
841 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 785 of file WindowContext.cpp.
References heavydb.dtypes::T.
786 IndexPair null_range{std::numeric_limits<int64_t>::max(),
787 std::numeric_limits<int64_t>::min()};
788 auto const null_val = inline_int_null_value<T>();
789 auto const casted_order_col_buf =
reinterpret_cast<T const*
>(order_col_buf);
791 int64_t null_range_max = 1;
798 null_range.first = 0;
799 null_range.second = null_range_max - 1;
800 }
else if (casted_order_col_buf
804 while (null_range_min >= 0 &&
810 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: