19 #include <parquet/types.h> 26 std::shared_ptr<ParquetScalarEncoder> scalar_encoder,
30 column_desciptor->columnType.get_elem_type().get_size())
37 const int16_t* rep_levels,
38 const int64_t values_read,
39 const int64_t levels_read,
40 const bool is_last_batch,
41 int8_t* values)
override {
42 CHECK(levels_read > 0);
49 for (int64_t i = 0, j = 0; i < levels_read; ++i) {
63 const parquet::RowGroupMetaData* group_metadata,
64 const int parquet_column_index,
67 group_metadata, parquet_column_index, column_type);
117 if (def_level == non_null_def_level) {
120 }
else if (def_level == item_null_def_level) {
123 }
else if (def_level == list_null_def_level) {
131 encode_buffer_.resize(values_read * omnisci_data_type_byte_size_);
132 scalar_encoder_->encodeAndCopyContiguous(values,
encode_buffer_.data(), values_read);
139 scalar_encoder_->copy(
140 encode_buffer_.data() + (encoded_index)*omnisci_data_type_byte_size_,
void resetLastArrayMetadata()
std::vector< int8_t > data_buffer_bytes_
size_t omnisci_data_type_byte_size_
virtual void appendArraysToBuffer()
void processArrayItem(const int16_t def_level, int64_t &encoded_index)
std::shared_ptr< ChunkMetadata > getRowGroupMetadata(const parquet::RowGroupMetaData *group_metadata, const int parquet_column_index, const SQLTypeInfo &column_type) override
void appendNullArrayItem()
void appendArrayItem(const int64_t encoded_index)
ParquetArrayEncoder(Data_Namespace::AbstractBuffer *data_buffer, std::shared_ptr< ParquetScalarEncoder > scalar_encoder, const ColumnDescriptor *column_desciptor)
bool isLastArrayNull() const
bool isNewArray(const int16_t rep_level) const
int8_t * resizeArrayDataBytes(const size_t additional_num_elements)
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 has_assembly_started_
std::vector< int8_t > encode_buffer_
void encodeAllValues(const int8_t *values, const int64_t values_read)
virtual void append(int8_t *src, const size_t num_bytes, const MemoryLevel src_buffer_type=CPU_LEVEL, const int device_id=-1)=0
virtual void processLastArray()=0
static const int16_t list_null_def_level
static const int16_t item_null_def_level
size_t sizeOfLastArray() const
static const int16_t non_null_def_level
size_t num_elements_in_array_
Data_Namespace::AbstractBuffer * buffer_
std::shared_ptr< ParquetScalarEncoder > scalar_encoder_
void appendData(const int16_t *def_levels, const int16_t *rep_levels, const int64_t values_read, const int64_t levels_read, const bool is_last_batch, int8_t *values) override