Class ColSlotContext

class ColSlotContext

Public Functions

ColSlotContext()
ColSlotContext(const std::vector<Analyzer::Expr *> &col_expr_list, const std::vector<int64_t> &col_exprs_to_not_project)
void setAllSlotsSize(const int8_t slot_width_size)
void setAllSlotsPaddedSize(const int8_t padded_size)
void setAllUnsetSlotsPaddedSize(const int8_t padded_size)
void setAllSlotsPaddedSizeToLogicalSize()
void validate() const
size_t getColCount() const
size_t getSlotCount() const
const SlotSize &getSlotInfo(const size_t slot_idx) const
void setPaddedSlotWidthBytes(const size_t slot_idx, const int8_t bytes)
const std::vector<size_t> &getSlotsForCol(const size_t col_idx) const
size_t getAllSlotsPaddedSize() const
size_t getAllSlotsAlignedPaddedSize() const
size_t getAlignedPaddedSizeForRange(const size_t end) const
size_t getTotalBytesOfColumnarBuffers(const size_t entry_count) const
int8_t getMinPaddedByteSize(const int8_t actual_min_byte_width) const
size_t getCompactByteWidth() const
size_t getColOnlyOffInBytes(const size_t slot_idx) const
bool empty()
void clear()
void addColumn(const std::vector<std::tuple<int8_t, int8_t>> &slots_for_col)
bool operator==(const ColSlotContext &that) const
bool operator!=(const ColSlotContext &that) const
void alignPaddedSlots(const bool sort_on_gpu)
int64_t varlenOutputElementSize(const size_t slot_idx) const
bool hasVarlenOutput() const
bool slotIsVarlen(const size_t slot_idx) const
std::string toString() const

Private Types

using ArraySize = int64_t
using SlotIndex = size_t

Private Functions

void addSlotForColumn(const int8_t logical_size, const size_t column_idx)
void addSlotForColumn(const int8_t padded_size, const int8_t logical_size, const size_t column_idx)

Private Members

std::vector<SlotSize> slot_sizes_
std::vector<std::vector<size_t>> col_to_slot_map_
std::unordered_map<SlotIndex, ArraySize> varlen_output_slot_map_