OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Fragmenter_Namespace::ArrayChunkConverter Struct Reference
+ Inheritance diagram for Fragmenter_Namespace::ArrayChunkConverter:
+ Collaboration diagram for Fragmenter_Namespace::ArrayChunkConverter:

Public Member Functions

 ArrayChunkConverter (const size_t num_rows, const Chunk_NS::Chunk *chunk)
 
 ~ArrayChunkConverter () override
 
void convertToColumnarFormat (size_t row, size_t indexInFragment) override
 
- Public Member Functions inherited from Fragmenter_Namespace::FixedLenArrayChunkConverter
 FixedLenArrayChunkConverter (const size_t num_rows, const Chunk_NS::Chunk *chunk)
 
 ~FixedLenArrayChunkConverter () override
 
void addDataBlocksToInsertData (Fragmenter_Namespace::InsertData &insertData) override
 
- Public Member Functions inherited from Fragmenter_Namespace::ChunkToInsertDataConverter
virtual ~ChunkToInsertDataConverter ()
 

Public Attributes

ArrayOffsetTindex_buffer_addr_
 
- Public Attributes inherited from Fragmenter_Namespace::FixedLenArrayChunkConverter
const Chunk_NS::Chunkchunk_
 
const ColumnDescriptorcolumn_descriptor_
 
std::unique_ptr< std::vector
< ArrayDatum > > 
column_data_
 
int8_t * data_buffer_addr_
 
size_t fixed_array_length_
 

Detailed Description

Definition at line 180 of file UpdelStorage.cpp.

Constructor & Destructor Documentation

Fragmenter_Namespace::ArrayChunkConverter::ArrayChunkConverter ( const size_t  num_rows,
const Chunk_NS::Chunk chunk 
)
inline

Definition at line 183 of file UpdelStorage.cpp.

References Chunk_NS::Chunk::getIndexBuf(), Data_Namespace::AbstractBuffer::getMemoryPtr(), and index_buffer_addr_.

184  : FixedLenArrayChunkConverter(num_rows, chunk) {
186  (StringOffsetT*)(chunk->getIndexBuf() ? chunk->getIndexBuf()->getMemoryPtr()
187  : nullptr);
188  }
AbstractBuffer * getIndexBuf() const
Definition: Chunk.h:148
virtual int8_t * getMemoryPtr()=0
FixedLenArrayChunkConverter(const size_t num_rows, const Chunk_NS::Chunk *chunk)
int32_t StringOffsetT
Definition: sqltypes.h:1493

+ Here is the call graph for this function:

Fragmenter_Namespace::ArrayChunkConverter::~ArrayChunkConverter ( )
inlineoverride

Definition at line 190 of file UpdelStorage.cpp.

190 {}

Member Function Documentation

void Fragmenter_Namespace::ArrayChunkConverter::convertToColumnarFormat ( size_t  row,
size_t  indexInFragment 
)
inlineoverridevirtual

Reimplemented from Fragmenter_Namespace::FixedLenArrayChunkConverter.

Definition at line 192 of file UpdelStorage.cpp.

References Fragmenter_Namespace::FixedLenArrayChunkConverter::data_buffer_addr_, and index_buffer_addr_.

192  {
193  auto startIndex = index_buffer_addr_[indexInFragment];
194  auto endIndex = index_buffer_addr_[indexInFragment + 1];
195  size_t src_value_size = std::abs(endIndex) - std::abs(startIndex);
196  auto src_value_ptr = data_buffer_addr_ + index_buffer_addr_[indexInFragment];
197  (*column_data_)[row] = ArrayDatum(
198  src_value_size, (int8_t*)src_value_ptr, endIndex < 0, DoNothingDeleter());
199  }
std::conditional_t< is_cuda_compiler(), DeviceArrayDatum, HostArrayDatum > ArrayDatum
Definition: sqltypes.h:229

Member Data Documentation

ArrayOffsetT* Fragmenter_Namespace::ArrayChunkConverter::index_buffer_addr_

Definition at line 181 of file UpdelStorage.cpp.

Referenced by ArrayChunkConverter(), and convertToColumnarFormat().


The documentation for this struct was generated from the following file: