Class foreign_storage::ParquetDecimalEncoder

template<typename V, typename T, typename NullType = V>
class ParquetDecimalEncoder : public foreign_storage::TypedParquetInPlaceEncoder<V, T, NullType>

Public Functions

ParquetDecimalEncoder(Data_Namespace::AbstractBuffer *buffer, const ColumnDescriptor *column_desciptor, const parquet::ColumnDescriptor *parquet_column_descriptor)
void encodeAndCopy(const int8_t *parquet_data_bytes, int8_t *omnisci_data_bytes)
void validate(const int8_t *parquet_data, const int64_t j, const SQLTypeInfo &column_type) const

Protected Functions

int64_t getDecimal(const int32_t &parquet_data_value) const
int64_t getDecimal(const int64_t &parquet_data_value) const
int64_t getDecimal(const parquet::FixedLenByteArray &parquet_data_value) const
int64_t getDecimal(const parquet::ByteArray &parquet_data_value) const
bool encodingIsIdentityForSameTypes() const

Private Functions

int64_t convertDecimalByteArrayToInt(const uint8_t *byte_array, const int byte_array_size) const

Private Members

const size_t parquet_column_type_length_
const DecimalOverflowValidator decimal_overflow_validator_