21 namespace foreign_storage {
22 template <
typename NullType>
29 const parquet::ColumnDescriptor* parquet_column_descriptor)
33 parquet_column_descriptor) {
34 CHECK(parquet_column_descriptor->logical_type()->is_date());
43 int8_t* omnisci_data_bytes)
override {
44 const auto& parquet_data_value =
45 reinterpret_cast<const int32_t*
>(parquet_data_bytes)[0];
46 auto& omnisci_data_value =
reinterpret_cast<int64_t*
>(omnisci_data_bytes)[0];
47 omnisci_data_value = parquet_data_value *
kSecsPerDay;
52 auto [unencoded_stats_min, unencoded_stats_max] =
54 validate(unencoded_stats_min, column_type);
55 validate(unencoded_stats_max, column_type);
61 const auto& parquet_data_value =
reinterpret_cast<const int32_t*
>(parquet_data)[j];
62 validate(parquet_data_value, column_type);
static void validateValue(const D &data_value, const SQLTypeInfo &column_type)
void encodeAndCopy(const int8_t *parquet_data_bytes, int8_t *omnisci_data_bytes) override
void validate(std::shared_ptr< parquet::Statistics > stats, const SQLTypeInfo &column_type) const override
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
std::pair< T, T > getUnencodedStats(std::shared_ptr< parquet::Statistics > stats) const
HOST DEVICE EncodingType get_compression() const
ParquetDateInSecondsEncoder(Data_Namespace::AbstractBuffer *buffer, const ColumnDescriptor *column_desciptor, const parquet::ColumnDescriptor *parquet_column_descriptor)
void validate(const int32_t &value, const SQLTypeInfo &column_type) const
ParquetDateInSecondsEncoder(Data_Namespace::AbstractBuffer *buffer)
void validate(const int8_t *parquet_data, const int64_t j, const SQLTypeInfo &column_type) const override