70 const std::list<const ColumnDescriptor*>& colDescs,
71 std::vector<Chunk>& chunkVec);
78 const std::vector<size_t>& selected_idx,
79 const size_t byte_limit);
82 const size_t num_elems,
83 const size_t start_idx,
84 const size_t byte_limit,
85 const bool replicating =
false);
88 const size_t numAppendElems,
89 const size_t startIdx,
90 const bool replicating =
false);
93 const Chunk& src_chunk,
94 const std::vector<size_t>& selected_idx);
97 const size_t num_elements,
98 const size_t start_idx);
103 const int deviceId = 0,
104 const size_t page_size = 0);
109 const int deviceId = 0,
110 const size_t num_bytes = 0,
111 const size_t num_elems = 0);
118 const size_t num_bytes,
119 const size_t num_elems,
120 const bool pinnable =
true);
139 const bool pinnable =
true);
144 const int device_id);
Chunk(const ColumnDescriptor *td, bool pinnable)
AbstractBuffer * getIndexBuf() const
void setPinnable(bool pinnable)
Chunk(const ColumnDescriptor *td)
std::vector< int > ChunkKey
const ColumnDescriptor * column_desc_
void setIndexBuffer(AbstractBuffer *ib)
void getChunkBuffer(DataMgr *data_mgr, const ChunkKey &key, const MemoryLevel mem_level, const int deviceId=0, const size_t num_bytes=0, const size_t num_elems=0)
std::shared_ptr< ChunkMetadata > appendEncodedDataAtIndices(const Chunk &src_chunk, const std::vector< size_t > &selected_idx)
void setChunkBuffer(AbstractBuffer *buffer, AbstractBuffer *index_buffer)
Constants for Builtin SQL Types supported by HEAVY.AI.
void setBuffer(AbstractBuffer *b)
const ColumnDescriptor * getColumnDesc() const
bool isChunkOnDevice(DataMgr *data_mgr, const ChunkKey &key, const MemoryLevel mem_level, const int device_id)
An AbstractBuffer is a unit of data management for a data manager.
specifies the content in-memory of a row in the column metadata table
bool g_enable_smem_group_by true
Chunk(AbstractBuffer *b, AbstractBuffer *ib, const ColumnDescriptor *td, bool pinnable=true)
AbstractBuffer * getBuffer() const
size_t getNumElemsForBytesEncodedDataAtIndices(const int8_t *index_data, const std::vector< size_t > &selected_idx, const size_t byte_limit)
std::shared_ptr< ChunkMetadata > appendEncodedData(const Chunk &src_chunk, const size_t num_elements, const size_t start_idx)
void setColumnDesc(const ColumnDescriptor *cd)
std::string toString() const
size_t getNumElemsForBytesInsertData(const DataBlockPtr &src_data, const size_t num_elems, const size_t start_idx, const size_t byte_limit, const bool replicating=false)
ChunkIter begin_iterator(const std::shared_ptr< ChunkMetadata > &, int start_idx=0, int skip=1) const
void createChunkBuffer(DataMgr *data_mgr, const ChunkKey &key, const MemoryLevel mem_level, const int deviceId=0, const size_t page_size=0)
static std::shared_ptr< Chunk > getChunk(const ColumnDescriptor *cd, DataMgr *data_mgr, const ChunkKey &key, const MemoryLevel mem_level, const int deviceId, const size_t num_bytes, const size_t num_elems, const bool pinnable=true)
void decompress(int8_t *compressed, VarlenDatum *result, Datum *datum) const
AbstractBuffer * index_buf_
Chunk(bool pinnable=true)
std::shared_ptr< ChunkMetadata > appendData(DataBlockPtr &srcData, const size_t numAppendElems, const size_t startIdx, const bool replicating=false)
static void translateColumnDescriptorsToChunkVec(const std::list< const ColumnDescriptor * > &colDescs, std::vector< Chunk > &chunkVec)