80 if (index_of_chunk < join_column->num_chunks) {
96 if (index_of_chunk < join_column->num_chunks) {
112 : join_column(join_column)
113 , type_info(type_info)
115 reinterpret_cast<const struct
JoinChunk*>(join_column->col_chunks_buff))
123 auto temp = this->
step;
124 this->step = this->
start;
182 : num_cols(num_cols) {
183 for (
size_t i = 0; i <
num_cols; ++i) {
186 type_info_per_key ? &type_info_per_key[i] :
nullptr,
193 for (
size_t i = 0; i <
num_cols; ++i) {
203 for (
size_t i = 0; i <
num_cols; ++i) {
226 , join_column_per_key(join_column_per_key)
227 , type_info_per_key(type_info_per_key) {}
const int8_t * chunk_data
const ColumnType column_type
DEVICE Slice slice(size_t start, size_t step)
struct JoinChunk * join_chunk_array
DEVICE JoinColumnTupleIterator(size_t num_cols, const JoinColumn *join_column_per_key, const JoinColumnTypeInfo *type_info_per_key, size_t start, size_t step)
DEVICE FORCE_INLINE JoinColumnTupleIterator & operator*()
DEVICE FORCE_INLINE JoinColumnTupleIterator & operator++()
DEVICE JoinColumnTuple(size_t num_cols, const JoinColumn *join_column_per_key, const JoinColumnTypeInfo *type_info_per_key)
DEVICE JoinColumnTupleIterator()
DEVICE NEVER_INLINE int64_t SUFFIX() fixed_width_int_decode_noinline(const int8_t *byte_stream, const int32_t byte_width, const int64_t pos)
DEVICE JoinColumnIterator end()
DEVICE FORCE_INLINE JoinColumnIterator & operator--()
DEVICE JoinColumnTupleIterator begin()
JoinColumnTyped * join_column_typed
Iterates over the rows of a JoinColumnTuple across multiple fragments/chunks.
struct JoinColumnTypeInfo * type_info
JoinColumnIterator join_column_iterators[g_maximum_conditions_to_coalesce]
JoinColumnTuple * join_column_tuple
Iterates over the rows of a JoinColumn across multiple fragments/chunks.
DEVICE JoinColumnIterator end()
DEVICE JoinColumnIterator begin()
DEVICE JoinColumnIterator begin()
const JoinColumn * join_column
DEVICE NEVER_INLINE int64_t SUFFIX() fixed_width_unsigned_decode_noinline(const int8_t *byte_stream, const int32_t byte_width, const int64_t pos)
DEVICE JoinColumnIterator()
DEVICE FORCE_INLINE int64_t getElementSwitch() const
DEVICE JoinColumnIterator(const JoinColumn *join_column, const JoinColumnTypeInfo *type_info, size_t start, size_t step)
size_t index_inside_chunk
DEVICE FORCE_INLINE JoinColumnIterator & operator++()
DEVICE JoinColumnTupleIterator end()
DEVICE NEVER_INLINE int64_t SUFFIX() fixed_width_small_date_decode_noinline(const int8_t *byte_stream, const int32_t byte_width, const int32_t null_val, const int64_t ret_null_val, const int64_t pos)
const JoinColumnTypeInfo * type_info_per_key
DEVICE JoinColumnTupleIterator begin()
DEVICE Slice slice(size_t start, size_t step)
const JoinColumn * join_column_per_key
DEVICE JoinColumnTupleIterator end()
DEVICE NEVER_INLINE double SUFFIX() fixed_width_double_decode_noinline(const int8_t *byte_stream, const int64_t pos)
DEVICE FORCE_INLINE IndexedElement operator*() const
DEVICE FORCE_INLINE const int8_t * ptr() const
const JoinColumnTypeInfo * type_info
struct JoinColumn * join_column
const size_t g_maximum_conditions_to_coalesce