22 #include <parquet/schema.h>
23 #include <parquet/types.h>
25 namespace foreign_storage {
37 const int16_t* rep_levels,
38 const int64_t values_read,
39 const int64_t levels_read,
40 int8_t* values)
override {
41 CHECK(levels_read > 0);
44 auto parquet_data_ptr =
reinterpret_cast<const parquet::ByteArray*
>(values);
49 for (int64_t i = 0, j = 0; i < levels_read; ++i) {
51 CHECK(j < values_read);
52 auto& byte_array = parquet_data_ptr[j++];
56 total_len += byte_array.len;
59 offsets[i] = last_offset + total_len;
66 for (int64_t i = 0, j = 0; i < levels_read; ++i) {
68 CHECK(j < values_read);
69 auto& byte_array = parquet_data_ptr[j++];
74 memcpy(
encode_buffer_.data() + total_len, byte_array.ptr, byte_array.len);
75 total_len += byte_array.len;
91 const int16_t* rep_levels,
92 const int64_t values_read,
93 const int64_t levels_read,
94 int8_t* values)
override {
96 appendData(def_levels, rep_levels, values_read, levels_read, values);
void appendDataTrackErrors(const int16_t *def_levels, const int16_t *rep_levels, const int64_t values_read, const int64_t levels_read, int8_t *values) override
Data_Namespace::AbstractBuffer * index_buffer_
bool is_error_tracking_enabled_
RejectedRowIndices invalid_indices_
void writeInitialOffsetIfApplicable()
std::vector< int8_t > encode_buffer_
void appendData(const int16_t *def_levels, const int16_t *rep_levels, const int64_t values_read, const int64_t levels_read, int8_t *values) override
An AbstractBuffer is a unit of data management for a data manager.
virtual void append(int8_t *src, const size_t num_bytes, const MemoryLevel src_buffer_type=CPU_LEVEL, const int device_id=-1)=0
ParquetStringNoneEncoder(Data_Namespace::AbstractBuffer *buffer, Data_Namespace::AbstractBuffer *index_buffer)
static constexpr size_t MAX_STRLEN
Data_Namespace::AbstractBuffer * buffer_
virtual void reserve(size_t num_bytes)=0
size_t current_chunk_offset_