OmniSciDB
0264ff685a
|
#include <Chunk.h>
Public Member Functions | |
Chunk () | |
Chunk (const ColumnDescriptor *td) | |
Chunk (AbstractBuffer *b, AbstractBuffer *ib, const ColumnDescriptor *td) | |
~Chunk () | |
const ColumnDescriptor * | getColumnDesc () const |
ChunkIter | begin_iterator (const std::shared_ptr< ChunkMetadata > &, int start_idx=0, int skip=1) 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) |
std::shared_ptr< ChunkMetadata > | appendData (DataBlockPtr &srcData, const size_t numAppendElems, const size_t startIdx, const bool replicating=false) |
void | createChunkBuffer (DataMgr *data_mgr, const ChunkKey &key, const MemoryLevel mem_level, const int deviceId=0, const size_t page_size=0) |
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) |
bool | isChunkOnDevice (DataMgr *data_mgr, const ChunkKey &key, const MemoryLevel mem_level, const int device_id) |
AbstractBuffer * | getBuffer () const |
AbstractBuffer * | getIndexBuf () const |
void | setBuffer (AbstractBuffer *b) |
void | setIndexBuffer (AbstractBuffer *ib) |
void | initEncoder () |
void | decompress (int8_t *compressed, VarlenDatum *result, Datum *datum) const |
Static Public Member Functions | |
static void | translateColumnDescriptorsToChunkVec (const std::list< const ColumnDescriptor *> &colDescs, std::vector< Chunk > &chunkVec) |
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) |
Private Member Functions | |
void | unpinBuffer () |
Private Attributes | |
AbstractBuffer * | buffer_ |
AbstractBuffer * | index_buf_ |
const ColumnDescriptor * | column_desc_ |
|
inline |
Definition at line 43 of file Chunk.h.
Referenced by getChunk().
|
inlineexplicit |
|
inline |
|
inline |
Definition at line 51 of file Chunk.h.
References unpinBuffer().
std::shared_ptr< ChunkMetadata > Chunk_NS::Chunk::appendData | ( | DataBlockPtr & | srcData, |
const size_t | numAppendElems, | ||
const size_t | startIdx, | ||
const bool | replicating = false |
||
) |
Definition at line 171 of file Chunk.cpp.
References StringNoneEncoder::appendData(), FixedLengthArrayNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), Encoder::appendData(), DataBlockPtr::arraysPtr, buffer_, CHECK, CHECK_EQ, column_desc_, ColumnDescriptor::columnType, Data_Namespace::AbstractBuffer::getEncoder(), kARRAY, kCHAR, kENCODING_NONE, kLINESTRING, kMULTIPOLYGON, kPOINT, kPOLYGON, kTEXT, kVARCHAR, DataBlockPtr::numbersPtr, and DataBlockPtr::stringsPtr.
Referenced by translateColumnDescriptorsToChunkVec().
ChunkIter Chunk_NS::Chunk::begin_iterator | ( | const std::shared_ptr< ChunkMetadata > & | chunk_metadata, |
int | start_idx = 0 , |
||
int | skip = 1 |
||
) | const |
Definition at line 260 of file Chunk.cpp.
References buffer_, column_desc_, ColumnDescriptor::columnType, ChunkIter::current_pos, ChunkIter::end_pos, SQLTypeInfo::get_size(), Data_Namespace::AbstractBuffer::getMemoryPtr(), index_buf_, ChunkIter::num_elems, ChunkIter::second_buf, Data_Namespace::AbstractBuffer::size(), ChunkIter::skip, ChunkIter::skip_size, ChunkIter::start_pos, and ChunkIter::type_info.
Referenced by translateColumnDescriptorsToChunkVec().
void Chunk_NS::Chunk::createChunkBuffer | ( | DataMgr * | data_mgr, |
const ChunkKey & | key, | ||
const MemoryLevel | mem_level, | ||
const int | deviceId = 0 , |
||
const size_t | page_size = 0 |
||
) |
Definition at line 110 of file Chunk.cpp.
References buffer_, column_desc_, ColumnDescriptor::columnType, Data_Namespace::DataMgr::createChunkBuffer(), index_buf_, SQLTypeInfo::is_fixlen_array(), and SQLTypeInfo::is_varlen().
Referenced by translateColumnDescriptorsToChunkVec().
void Chunk_NS::Chunk::decompress | ( | int8_t * | compressed, |
VarlenDatum * | result, | ||
Datum * | datum | ||
) | const |
|
inline |
Definition at line 104 of file Chunk.h.
References buffer_.
Referenced by foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_string_encoder(), Fragmenter_Namespace::DateChunkConverter< BUFFER_DATA_TYPE >::DateChunkConverter(), Fragmenter_Namespace::FixedLenArrayChunkConverter::FixedLenArrayChunkConverter(), Fragmenter_Namespace::ScalarChunkConverter< BUFFER_DATA_TYPE, INSERT_DATA_TYPE >::ScalarChunkConverter(), and Fragmenter_Namespace::StringChunkConverter::StringChunkConverter().
|
static |
Definition at line 28 of file Chunk.cpp.
References Chunk().
Referenced by Fragmenter_Namespace::get_chunks(), getChunkAccessorTable(), Fragmenter_Namespace::InsertOrderFragmenter::getChunksForAllColumns(), ColumnFetcher::getOneColumnFragment(), ColumnFetcher::getOneTableColumnFragment(), anonymous_namespace{RelAlgExecutor.cpp}::prepare_foreign_table_for_execution(), translateColumnDescriptorsToChunkVec(), Fragmenter_Namespace::InsertOrderFragmenter::updateChunkStats(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), Catalog_Namespace::Catalog::vacuumDeletedRows(), StorageIOFacility::yieldDeleteCallback(), and StorageIOFacility::yieldUpdateCallback().
void Chunk_NS::Chunk::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 |
||
) |
Definition at line 58 of file Chunk.cpp.
References buffer_, CHECK, CHECK_EQ, column_desc_, ColumnDescriptor::columnType, SQLTypeInfo::get_compression(), SQLTypeInfo::get_type(), Data_Namespace::DataMgr::getChunkBuffer(), Data_Namespace::AbstractBuffer::getEncoder(), index_buf_, SQLTypeInfo::is_fixlen_array(), SQLTypeInfo::is_varlen(), kARRAY, kCHAR, kENCODING_NONE, kLINESTRING, kMULTIPOLYGON, kPOINT, kPOLYGON, kTEXT, kVARCHAR, and UNREACHABLE.
Referenced by translateColumnDescriptorsToChunkVec().
|
inline |
Definition at line 53 of file Chunk.h.
References column_desc_.
Referenced by Fragmenter_Namespace::FixedLenArrayChunkConverter::FixedLenArrayChunkConverter(), and anonymous_namespace{ExecutionKernel.cpp}::need_to_hold_chunk().
|
inline |
Definition at line 106 of file Chunk.h.
References index_buf_.
Referenced by Fragmenter_Namespace::ArrayChunkConverter::ArrayChunkConverter(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_string_encoder(), and Fragmenter_Namespace::StringChunkConverter::StringChunkConverter().
size_t Chunk_NS::Chunk::getNumElemsForBytesInsertData | ( | const DataBlockPtr & | src_data, |
const size_t | num_elems, | ||
const size_t | start_idx, | ||
const size_t | byte_limit, | ||
const bool | replicating = false |
||
) |
Definition at line 128 of file Chunk.cpp.
References DataBlockPtr::arraysPtr, buffer_, CHECK, CHECK_EQ, column_desc_, ColumnDescriptor::columnType, SQLTypeInfo::get_compression(), SQLTypeInfo::get_size(), SQLTypeInfo::get_type(), Data_Namespace::AbstractBuffer::getEncoder(), StringNoneEncoder::getNumElemsForBytesInsertData(), FixedLengthArrayNoneEncoder::getNumElemsForBytesInsertData(), ArrayNoneEncoder::getNumElemsForBytesInsertData(), SQLTypeInfo::is_varlen(), kARRAY, kCHAR, kENCODING_NONE, kLINESTRING, kMULTIPOLYGON, kPOINT, kPOLYGON, kTEXT, kVARCHAR, and DataBlockPtr::stringsPtr.
Referenced by translateColumnDescriptorsToChunkVec().
void Chunk_NS::Chunk::initEncoder | ( | ) |
Definition at line 225 of file Chunk.cpp.
References buffer_, CHECK, CHECK_EQ, column_desc_, ColumnDescriptor::columnType, SQLTypeInfo::get_compression(), SQLTypeInfo::get_type(), Data_Namespace::AbstractBuffer::getEncoder(), index_buf_, Data_Namespace::AbstractBuffer::initEncoder(), SQLTypeInfo::is_fixlen_array(), SQLTypeInfo::is_varlen(), kARRAY, kCHAR, kENCODING_NONE, kLINESTRING, kMULTIPOLYGON, kPOINT, kPOLYGON, kTEXT, kVARCHAR, StringNoneEncoder::setIndexBuffer(), and ArrayNoneEncoder::setIndexBuffer().
Referenced by setIndexBuffer().
bool Chunk_NS::Chunk::isChunkOnDevice | ( | DataMgr * | data_mgr, |
const ChunkKey & | key, | ||
const MemoryLevel | mem_level, | ||
const int | device_id | ||
) |
Definition at line 40 of file Chunk.cpp.
References column_desc_, ColumnDescriptor::columnType, SQLTypeInfo::is_fixlen_array(), SQLTypeInfo::is_varlen(), and Data_Namespace::DataMgr::isBufferOnDevice().
Referenced by translateColumnDescriptorsToChunkVec().
|
inline |
Definition at line 108 of file Chunk.h.
References buffer_.
Referenced by foreign_storage::CsvDataWrapper::populateChunkMapForColumns().
|
inline |
Definition at line 110 of file Chunk.h.
References decompress(), index_buf_, initEncoder(), and run_benchmark_import::result.
|
inlinestatic |
Definition at line 55 of file Chunk.h.
References appendData(), begin_iterator(), createChunkBuffer(), getChunk(), getChunkBuffer(), getNumElemsForBytesInsertData(), and isChunkOnDevice().
|
private |
Definition at line 216 of file Chunk.cpp.
References buffer_, index_buf_, and Data_Namespace::AbstractBuffer::unPin().
Referenced by ~Chunk().
|
private |
Definition at line 117 of file Chunk.h.
Referenced by appendData(), begin_iterator(), createChunkBuffer(), getBuffer(), getChunkBuffer(), getNumElemsForBytesInsertData(), initEncoder(), setBuffer(), and unpinBuffer().
|
private |
Definition at line 119 of file Chunk.h.
Referenced by appendData(), begin_iterator(), createChunkBuffer(), getChunkBuffer(), getColumnDesc(), getNumElemsForBytesInsertData(), initEncoder(), and isChunkOnDevice().
|
private |
Definition at line 118 of file Chunk.h.
Referenced by begin_iterator(), createChunkBuffer(), getChunkBuffer(), getIndexBuf(), initEncoder(), setIndexBuffer(), and unpinBuffer().