Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
types.hpp File Reference

Parquet Thrift struct types – C++ structs matching parquet.thrift, with Compact Protocol serialize/deserialize methods. More...

#include "signet/error.hpp"
#include "signet/types.hpp"
#include "signet/thrift/compact.hpp"
#include <cstdint>
#include <optional>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  signet::forge::thrift::TimeUnit
 Time unit discriminator for TimestampType (parquet.thrift TimeUnit union). More...
 
struct  signet::forge::thrift::IntType
 IntType: integer logical type with explicit width and signedness. More...
 
struct  signet::forge::thrift::DecimalType
 DecimalType: fixed-point decimal logical type. More...
 
struct  signet::forge::thrift::TimestampType
 TimestampType: timestamp logical type with UTC adjustment and time unit. More...
 
struct  signet::forge::thrift::LogicalTypeUnion
 LogicalTypeUnion: Thrift wire union for parquet.thrift LogicalType (field 10 of SchemaElement). More...
 
struct  signet::forge::thrift::Statistics
 Parquet column statistics (parquet.thrift fields 1-6). More...
 
struct  signet::forge::thrift::KeyValue
 Parquet KeyValue metadata entry (parquet.thrift field IDs 1-2). More...
 
struct  signet::forge::thrift::SchemaElement
 Parquet schema element (parquet.thrift fields 1-10). More...
 
struct  signet::forge::thrift::DataPageHeader
 Parquet data page header V1 (parquet.thrift fields 1-5). More...
 
struct  signet::forge::thrift::DictionaryPageHeader
 Parquet dictionary page header (parquet.thrift fields 1-3). More...
 
struct  signet::forge::thrift::DataPageHeaderV2
 Parquet data page header V2 (parquet.thrift fields 1-7). More...
 
struct  signet::forge::thrift::PageHeader
 Parquet page header (parquet.thrift fields 1-8). More...
 
struct  signet::forge::thrift::ColumnMetaData
 Parquet column metadata (parquet.thrift fields 1-12). More...
 
struct  signet::forge::thrift::AesGcmV1
 AES-GCM-V1 encryption algorithm parameters (parquet.thrift AesGcmV1). More...
 
struct  signet::forge::thrift::AesGcmCtrV1
 AES-GCM-CTR-V1 encryption algorithm parameters (parquet.thrift AesGcmCtrV1). More...
 
struct  signet::forge::thrift::EncryptionAlgorithm
 EncryptionAlgorithm union: AES-GCM-V1 (field 1) or AES-GCM-CTR-V1 (field 2). More...
 
struct  signet::forge::thrift::EncryptionWithColumnKey
 EncryptionWithColumnKey: per-column encryption key binding (parquet.thrift). More...
 
struct  signet::forge::thrift::ColumnCryptoMetaData
 ColumnCryptoMetaData union: footer-key (field 1) or column-key (field 2) encryption. More...
 
struct  signet::forge::thrift::FileCryptoMetaData
 FileCryptoMetaData: file-level encryption metadata (parquet.thrift). More...
 
struct  signet::forge::thrift::BloomFilterAlgorithm
 BloomFilterAlgorithm union: BLOCK (SplitBlock) is the only defined algorithm. More...
 
struct  signet::forge::thrift::BloomFilterHash
 BloomFilterHash union: XXHASH (field 1) is the only defined hash function. More...
 
struct  signet::forge::thrift::BloomFilterCompression
 BloomFilterCompression union: UNCOMPRESSED (field 1) is the only defined mode. More...
 
struct  signet::forge::thrift::BloomFilterHeader
 BloomFilterHeader: describes the bloom filter block at a column's bloom_filter_offset. More...
 
struct  signet::forge::thrift::ColumnChunk
 Parquet column chunk descriptor (parquet.thrift fields 1-13). More...
 
struct  signet::forge::thrift::ColumnOrder
 ColumnOrder union: describes how a column's values are compared for statistics. More...
 
struct  signet::forge::thrift::SortingColumn
 SortingColumn: describes sort key for a column within a RowGroup. More...
 
struct  signet::forge::thrift::RowGroup
 Parquet row group (parquet.thrift fields 1-4). More...
 
struct  signet::forge::thrift::FileMetaData
 Parquet file metadata (parquet.thrift fields 1-7). More...
 

Namespaces

namespace  signet
 
namespace  signet::forge
 
namespace  signet::forge::thrift
 

Enumerations

enum class  signet::forge::thrift::SortOrder : int32_t { signet::forge::thrift::SIGNED = 0 , signet::forge::thrift::UNSIGNED = 1 , signet::forge::thrift::UNKNOWN = 2 }
 Sort order for column statistics (parquet.thrift SortOrder enum). More...
 

Detailed Description

Parquet Thrift struct types – C++ structs matching parquet.thrift, with Compact Protocol serialize/deserialize methods.

Note
parquet-format target: 2.9.0

Each struct has: void serialize(CompactEncoder& enc) const [[nodiscard]] signet::forge::expected<void> deserialize(CompactDecoder& dec)

Field IDs match the canonical parquet.thrift specification (parquet-format 2.9.0). Optional fields use std::optional<T> and are only written when present.

Correctness guarantees (Thrift Correctness Phase):

  • Field-type (ftype) validated before every read_*() call (CWE-843).
  • Required-field enforcement via uint32_t bitmask for: KeyValue, DataPageHeader, ColumnMetaData.
  • All deserialize() return expected<void>; structured failure on any protocol violation.

Definition in file types.hpp.