orc_format/
proto.rs

1#[derive(Clone, PartialEq, ::prost::Message)]
2pub struct IntegerStatistics {
3    #[prost(sint64, optional, tag = "1")]
4    pub minimum: ::core::option::Option<i64>,
5    #[prost(sint64, optional, tag = "2")]
6    pub maximum: ::core::option::Option<i64>,
7    #[prost(sint64, optional, tag = "3")]
8    pub sum: ::core::option::Option<i64>,
9}
10#[derive(Clone, PartialEq, ::prost::Message)]
11pub struct DoubleStatistics {
12    #[prost(double, optional, tag = "1")]
13    pub minimum: ::core::option::Option<f64>,
14    #[prost(double, optional, tag = "2")]
15    pub maximum: ::core::option::Option<f64>,
16    #[prost(double, optional, tag = "3")]
17    pub sum: ::core::option::Option<f64>,
18}
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct StringStatistics {
21    #[prost(string, optional, tag = "1")]
22    pub minimum: ::core::option::Option<::prost::alloc::string::String>,
23    #[prost(string, optional, tag = "2")]
24    pub maximum: ::core::option::Option<::prost::alloc::string::String>,
25    /// sum will store the total length of all strings in a stripe
26    #[prost(sint64, optional, tag = "3")]
27    pub sum: ::core::option::Option<i64>,
28}
29#[derive(Clone, PartialEq, ::prost::Message)]
30pub struct BucketStatistics {
31    #[prost(uint64, repeated, tag = "1")]
32    pub count: ::prost::alloc::vec::Vec<u64>,
33}
34#[derive(Clone, PartialEq, ::prost::Message)]
35pub struct DecimalStatistics {
36    #[prost(string, optional, tag = "1")]
37    pub minimum: ::core::option::Option<::prost::alloc::string::String>,
38    #[prost(string, optional, tag = "2")]
39    pub maximum: ::core::option::Option<::prost::alloc::string::String>,
40    #[prost(string, optional, tag = "3")]
41    pub sum: ::core::option::Option<::prost::alloc::string::String>,
42}
43#[derive(Clone, PartialEq, ::prost::Message)]
44pub struct DateStatistics {
45    /// min,max values saved as days since epoch
46    #[prost(sint32, optional, tag = "1")]
47    pub minimum: ::core::option::Option<i32>,
48    #[prost(sint32, optional, tag = "2")]
49    pub maximum: ::core::option::Option<i32>,
50}
51#[derive(Clone, PartialEq, ::prost::Message)]
52pub struct TimestampStatistics {
53    /// min,max values saved as milliseconds since epoch
54    #[prost(sint64, optional, tag = "1")]
55    pub minimum: ::core::option::Option<i64>,
56    #[prost(sint64, optional, tag = "2")]
57    pub maximum: ::core::option::Option<i64>,
58}
59#[derive(Clone, PartialEq, ::prost::Message)]
60pub struct BinaryStatistics {
61    /// sum will store the total binary blob length in a stripe
62    #[prost(sint64, optional, tag = "1")]
63    pub sum: ::core::option::Option<i64>,
64}
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct ColumnStatistics {
67    #[prost(uint64, optional, tag = "1")]
68    pub number_of_values: ::core::option::Option<u64>,
69    #[prost(message, optional, tag = "2")]
70    pub int_statistics: ::core::option::Option<IntegerStatistics>,
71    #[prost(message, optional, tag = "3")]
72    pub double_statistics: ::core::option::Option<DoubleStatistics>,
73    #[prost(message, optional, tag = "4")]
74    pub string_statistics: ::core::option::Option<StringStatistics>,
75    #[prost(message, optional, tag = "5")]
76    pub bucket_statistics: ::core::option::Option<BucketStatistics>,
77    #[prost(message, optional, tag = "6")]
78    pub decimal_statistics: ::core::option::Option<DecimalStatistics>,
79    #[prost(message, optional, tag = "7")]
80    pub date_statistics: ::core::option::Option<DateStatistics>,
81    #[prost(message, optional, tag = "8")]
82    pub binary_statistics: ::core::option::Option<BinaryStatistics>,
83    #[prost(message, optional, tag = "9")]
84    pub timestamp_statistics: ::core::option::Option<TimestampStatistics>,
85    #[prost(bool, optional, tag = "10")]
86    pub has_null: ::core::option::Option<bool>,
87}
88#[derive(Clone, PartialEq, ::prost::Message)]
89pub struct RowIndexEntry {
90    #[prost(uint64, repeated, tag = "1")]
91    pub positions: ::prost::alloc::vec::Vec<u64>,
92    #[prost(message, optional, tag = "2")]
93    pub statistics: ::core::option::Option<ColumnStatistics>,
94}
95#[derive(Clone, PartialEq, ::prost::Message)]
96pub struct RowIndex {
97    #[prost(message, repeated, tag = "1")]
98    pub entry: ::prost::alloc::vec::Vec<RowIndexEntry>,
99}
100#[derive(Clone, PartialEq, ::prost::Message)]
101pub struct BloomFilter {
102    #[prost(uint32, optional, tag = "1")]
103    pub num_hash_functions: ::core::option::Option<u32>,
104    #[prost(fixed64, repeated, packed = "false", tag = "2")]
105    pub bitset: ::prost::alloc::vec::Vec<u64>,
106}
107#[derive(Clone, PartialEq, ::prost::Message)]
108pub struct BloomFilterIndex {
109    #[prost(message, repeated, tag = "1")]
110    pub bloom_filter: ::prost::alloc::vec::Vec<BloomFilter>,
111}
112#[derive(Clone, PartialEq, ::prost::Message)]
113pub struct Stream {
114    #[prost(enumeration = "stream::Kind", optional, tag = "1")]
115    pub kind: ::core::option::Option<i32>,
116    #[prost(uint32, optional, tag = "2")]
117    pub column: ::core::option::Option<u32>,
118    #[prost(uint64, optional, tag = "3")]
119    pub length: ::core::option::Option<u64>,
120}
121/// Nested message and enum types in `Stream`.
122pub mod stream {
123    /// if you add new index stream kinds, you need to make sure to update
124    /// StreamName to ensure it is added to the stripe in the right area
125    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
126    #[repr(i32)]
127    pub enum Kind {
128        Present = 0,
129        Data = 1,
130        Length = 2,
131        DictionaryData = 3,
132        DictionaryCount = 4,
133        Secondary = 5,
134        RowIndex = 6,
135        BloomFilter = 7,
136    }
137}
138#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct ColumnEncoding {
140    #[prost(enumeration = "column_encoding::Kind", optional, tag = "1")]
141    pub kind: ::core::option::Option<i32>,
142    #[prost(uint32, optional, tag = "2")]
143    pub dictionary_size: ::core::option::Option<u32>,
144}
145/// Nested message and enum types in `ColumnEncoding`.
146pub mod column_encoding {
147    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
148    #[repr(i32)]
149    pub enum Kind {
150        Direct = 0,
151        Dictionary = 1,
152        DirectV2 = 2,
153        DictionaryV2 = 3,
154    }
155}
156#[derive(Clone, PartialEq, ::prost::Message)]
157pub struct StripeFooter {
158    #[prost(message, repeated, tag = "1")]
159    pub streams: ::prost::alloc::vec::Vec<Stream>,
160    #[prost(message, repeated, tag = "2")]
161    pub columns: ::prost::alloc::vec::Vec<ColumnEncoding>,
162    #[prost(string, optional, tag = "3")]
163    pub writer_timezone: ::core::option::Option<::prost::alloc::string::String>,
164}
165#[derive(Clone, PartialEq, ::prost::Message)]
166pub struct Type {
167    #[prost(enumeration = "r#type::Kind", optional, tag = "1")]
168    pub kind: ::core::option::Option<i32>,
169    #[prost(uint32, repeated, tag = "2")]
170    pub subtypes: ::prost::alloc::vec::Vec<u32>,
171    #[prost(string, repeated, tag = "3")]
172    pub field_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
173    #[prost(uint32, optional, tag = "4")]
174    pub maximum_length: ::core::option::Option<u32>,
175    #[prost(uint32, optional, tag = "5")]
176    pub precision: ::core::option::Option<u32>,
177    #[prost(uint32, optional, tag = "6")]
178    pub scale: ::core::option::Option<u32>,
179}
180/// Nested message and enum types in `Type`.
181pub mod r#type {
182    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
183    #[repr(i32)]
184    pub enum Kind {
185        Boolean = 0,
186        Byte = 1,
187        Short = 2,
188        Int = 3,
189        Long = 4,
190        Float = 5,
191        Double = 6,
192        String = 7,
193        Binary = 8,
194        Timestamp = 9,
195        List = 10,
196        Map = 11,
197        Struct = 12,
198        Union = 13,
199        Decimal = 14,
200        Date = 15,
201        Varchar = 16,
202        Char = 17,
203    }
204}
205#[derive(Clone, PartialEq, ::prost::Message)]
206pub struct StripeInformation {
207    #[prost(uint64, optional, tag = "1")]
208    pub offset: ::core::option::Option<u64>,
209    #[prost(uint64, optional, tag = "2")]
210    pub index_length: ::core::option::Option<u64>,
211    #[prost(uint64, optional, tag = "3")]
212    pub data_length: ::core::option::Option<u64>,
213    #[prost(uint64, optional, tag = "4")]
214    pub footer_length: ::core::option::Option<u64>,
215    #[prost(uint64, optional, tag = "5")]
216    pub number_of_rows: ::core::option::Option<u64>,
217}
218#[derive(Clone, PartialEq, ::prost::Message)]
219pub struct UserMetadataItem {
220    #[prost(string, optional, tag = "1")]
221    pub name: ::core::option::Option<::prost::alloc::string::String>,
222    #[prost(bytes = "vec", optional, tag = "2")]
223    pub value: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
224}
225#[derive(Clone, PartialEq, ::prost::Message)]
226pub struct StripeStatistics {
227    #[prost(message, repeated, tag = "1")]
228    pub col_stats: ::prost::alloc::vec::Vec<ColumnStatistics>,
229}
230#[derive(Clone, PartialEq, ::prost::Message)]
231pub struct Metadata {
232    #[prost(message, repeated, tag = "1")]
233    pub stripe_stats: ::prost::alloc::vec::Vec<StripeStatistics>,
234}
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct Footer {
237    #[prost(uint64, optional, tag = "1")]
238    pub header_length: ::core::option::Option<u64>,
239    #[prost(uint64, optional, tag = "2")]
240    pub content_length: ::core::option::Option<u64>,
241    #[prost(message, repeated, tag = "3")]
242    pub stripes: ::prost::alloc::vec::Vec<StripeInformation>,
243    #[prost(message, repeated, tag = "4")]
244    pub types: ::prost::alloc::vec::Vec<Type>,
245    #[prost(message, repeated, tag = "5")]
246    pub metadata: ::prost::alloc::vec::Vec<UserMetadataItem>,
247    #[prost(uint64, optional, tag = "6")]
248    pub number_of_rows: ::core::option::Option<u64>,
249    #[prost(message, repeated, tag = "7")]
250    pub statistics: ::prost::alloc::vec::Vec<ColumnStatistics>,
251    #[prost(uint32, optional, tag = "8")]
252    pub row_index_stride: ::core::option::Option<u32>,
253}
254/// Serialized length must be less that 255 bytes
255#[derive(Clone, PartialEq, ::prost::Message)]
256pub struct PostScript {
257    #[prost(uint64, optional, tag = "1")]
258    pub footer_length: ::core::option::Option<u64>,
259    #[prost(enumeration = "CompressionKind", optional, tag = "2")]
260    pub compression: ::core::option::Option<i32>,
261    #[prost(uint64, optional, tag = "3")]
262    pub compression_block_size: ::core::option::Option<u64>,
263    /// the version of the file format
264    ///   [0, 11] = Hive 0.11
265    ///   [0, 12] = Hive 0.12
266    #[prost(uint32, repeated, tag = "4")]
267    pub version: ::prost::alloc::vec::Vec<u32>,
268    #[prost(uint64, optional, tag = "5")]
269    pub metadata_length: ::core::option::Option<u64>,
270    /// Version of the writer:
271    ///   0 (or missing) = original
272    ///   1 = HIVE-8732 fixed
273    #[prost(uint32, optional, tag = "6")]
274    pub writer_version: ::core::option::Option<u32>,
275    /// Leave this last in the record
276    #[prost(string, optional, tag = "8000")]
277    pub magic: ::core::option::Option<::prost::alloc::string::String>,
278}
279#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
280#[repr(i32)]
281pub enum CompressionKind {
282    None = 0,
283    Zlib = 1,
284    Snappy = 2,
285    Lzo = 3,
286}