OmniSciDB  0fdbebe030
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Fragmenter_Namespace::FixedLenArrayChunkConverter Struct Reference
+ Inheritance diagram for Fragmenter_Namespace::FixedLenArrayChunkConverter:
+ Collaboration diagram for Fragmenter_Namespace::FixedLenArrayChunkConverter:

Public Member Functions

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

Public Attributes

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 168 of file UpdelStorage.cpp.

Constructor & Destructor Documentation

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

Definition at line 176 of file UpdelStorage.cpp.

References column_data_, ColumnDescriptor::columnType, data_buffer_addr_, fixed_array_length_, Chunk_NS::Chunk::get_buffer(), Chunk_NS::Chunk::get_column_desc(), SQLTypeInfo::get_size(), Data_Namespace::AbstractBuffer::getMemoryPtr(), and num_rows.

177  : chunk_(chunk), column_descriptor_(chunk->get_column_desc()) {
178  column_data_ = std::make_unique<std::vector<ArrayDatum>>(num_rows);
181  }
HOST DEVICE int get_size() const
Definition: sqltypes.h:258
const ColumnDescriptor * get_column_desc() const
Definition: Chunk.h:52
const int8_t const int64_t * num_rows
virtual int8_t * getMemoryPtr()=0
AbstractBuffer * get_buffer() const
Definition: Chunk.h:94
std::unique_ptr< std::vector< ArrayDatum > > column_data_
SQLTypeInfo columnType

+ Here is the call graph for this function:

Fragmenter_Namespace::FixedLenArrayChunkConverter::~FixedLenArrayChunkConverter ( )
inlineoverride

Definition at line 183 of file UpdelStorage.cpp.

183 {}

Member Function Documentation

void Fragmenter_Namespace::FixedLenArrayChunkConverter::addDataBlocksToInsertData ( Fragmenter_Namespace::InsertData insertData)
inlineoverridevirtual

Implements Fragmenter_Namespace::ChunkToInsertDataConverter.

Definition at line 195 of file UpdelStorage.cpp.

References DataBlockPtr::arraysPtr, column_data_, column_descriptor_, ColumnDescriptor::columnId, Fragmenter_Namespace::InsertData::columnIds, and Fragmenter_Namespace::InsertData::data.

195  {
196  DataBlockPtr dataBlock;
197  dataBlock.arraysPtr = column_data_.get();
198  insertData.data.push_back(dataBlock);
199  insertData.columnIds.push_back(column_descriptor_->columnId);
200  }
std::vector< ArrayDatum > * arraysPtr
Definition: sqltypes.h:140
std::unique_ptr< std::vector< ArrayDatum > > column_data_
std::vector< DataBlockPtr > data
the number of rows being inserted
Definition: Fragmenter.h:64
std::vector< int > columnIds
identifies the table into which the data is being inserted
Definition: Fragmenter.h:62
void Fragmenter_Namespace::FixedLenArrayChunkConverter::convertToColumnarFormat ( size_t  row,
size_t  indexInFragment 
)
inlineoverridevirtual

Implements Fragmenter_Namespace::ChunkToInsertDataConverter.

Reimplemented in Fragmenter_Namespace::ArrayChunkConverter.

Definition at line 185 of file UpdelStorage.cpp.

References column_descriptor_, ColumnDescriptor::columnType, data_buffer_addr_, fixed_array_length_, anonymous_namespace{TypedDataAccessors.h}::is_null(), and FixedLengthArrayNoneEncoder::is_null().

185  {
186  auto src_value_ptr = data_buffer_addr_ + (indexInFragment * fixed_array_length_);
187 
189  src_value_ptr);
190 
191  (*column_data_)[row] = ArrayDatum(
192  fixed_array_length_, (int8_t*)src_value_ptr, is_null, DoNothingDeleter());
193  }
bool is_null(const T &v, const SQLTypeInfo &t)
static bool is_null(const SQLTypeInfo &type, int8_t *array)
SQLTypeInfo columnType
std::conditional_t< isCudaCC(), DeviceArrayDatum, HostArrayDatum > ArrayDatum
Definition: sqltypes.h:120

+ Here is the call graph for this function:

Member Data Documentation

const Chunk_NS::Chunk* Fragmenter_Namespace::FixedLenArrayChunkConverter::chunk_

Definition at line 169 of file UpdelStorage.cpp.

std::unique_ptr<std::vector<ArrayDatum> > Fragmenter_Namespace::FixedLenArrayChunkConverter::column_data_

Definition at line 172 of file UpdelStorage.cpp.

Referenced by addDataBlocksToInsertData(), and FixedLenArrayChunkConverter().

const ColumnDescriptor* Fragmenter_Namespace::FixedLenArrayChunkConverter::column_descriptor_

Definition at line 170 of file UpdelStorage.cpp.

Referenced by addDataBlocksToInsertData(), and convertToColumnarFormat().

int8_t* Fragmenter_Namespace::FixedLenArrayChunkConverter::data_buffer_addr_
size_t Fragmenter_Namespace::FixedLenArrayChunkConverter::fixed_array_length_

Definition at line 174 of file UpdelStorage.cpp.

Referenced by convertToColumnarFormat(), and FixedLenArrayChunkConverter().


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