Skip to main content

datafusion_proto_common/generated/
prost.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
3pub struct ColumnRelation {
4    #[prost(string, tag = "1")]
5    pub relation: ::prost::alloc::string::String,
6}
7#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8pub struct Column {
9    #[prost(string, tag = "1")]
10    pub name: ::prost::alloc::string::String,
11    #[prost(message, optional, tag = "2")]
12    pub relation: ::core::option::Option<ColumnRelation>,
13}
14#[derive(Clone, PartialEq, ::prost::Message)]
15pub struct DfField {
16    #[prost(message, optional, tag = "1")]
17    pub field: ::core::option::Option<Field>,
18    #[prost(message, optional, tag = "2")]
19    pub qualifier: ::core::option::Option<ColumnRelation>,
20}
21#[derive(Clone, PartialEq, ::prost::Message)]
22pub struct DfSchema {
23    #[prost(message, repeated, tag = "1")]
24    pub columns: ::prost::alloc::vec::Vec<DfField>,
25    #[prost(map = "string, string", tag = "2")]
26    pub metadata: ::std::collections::HashMap<
27        ::prost::alloc::string::String,
28        ::prost::alloc::string::String,
29    >,
30}
31#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
32pub struct CsvFormat {
33    #[prost(message, optional, tag = "5")]
34    pub options: ::core::option::Option<CsvOptions>,
35}
36#[derive(Clone, PartialEq, ::prost::Message)]
37pub struct ParquetFormat {
38    #[prost(message, optional, tag = "2")]
39    pub options: ::core::option::Option<TableParquetOptions>,
40}
41#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
42pub struct AvroFormat {}
43#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
44pub struct NdJsonFormat {
45    #[prost(message, optional, tag = "1")]
46    pub options: ::core::option::Option<JsonOptions>,
47}
48#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
49pub struct ArrowFormat {}
50#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
51pub struct PrimaryKeyConstraint {
52    #[prost(uint64, repeated, tag = "1")]
53    pub indices: ::prost::alloc::vec::Vec<u64>,
54}
55#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
56pub struct UniqueConstraint {
57    #[prost(uint64, repeated, tag = "1")]
58    pub indices: ::prost::alloc::vec::Vec<u64>,
59}
60#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
61pub struct Constraint {
62    #[prost(oneof = "constraint::ConstraintMode", tags = "1, 2")]
63    pub constraint_mode: ::core::option::Option<constraint::ConstraintMode>,
64}
65/// Nested message and enum types in `Constraint`.
66pub mod constraint {
67    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
68    pub enum ConstraintMode {
69        #[prost(message, tag = "1")]
70        PrimaryKey(super::PrimaryKeyConstraint),
71        #[prost(message, tag = "2")]
72        Unique(super::UniqueConstraint),
73    }
74}
75#[derive(Clone, PartialEq, ::prost::Message)]
76pub struct Constraints {
77    #[prost(message, repeated, tag = "1")]
78    pub constraints: ::prost::alloc::vec::Vec<Constraint>,
79}
80#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
81pub struct AvroOptions {}
82#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
83pub struct ArrowOptions {}
84#[derive(Clone, PartialEq, ::prost::Message)]
85pub struct Schema {
86    #[prost(message, repeated, tag = "1")]
87    pub columns: ::prost::alloc::vec::Vec<Field>,
88    #[prost(map = "string, string", tag = "2")]
89    pub metadata: ::std::collections::HashMap<
90        ::prost::alloc::string::String,
91        ::prost::alloc::string::String,
92    >,
93}
94#[derive(Clone, PartialEq, ::prost::Message)]
95pub struct Field {
96    /// name of the field
97    #[prost(string, tag = "1")]
98    pub name: ::prost::alloc::string::String,
99    #[prost(message, optional, boxed, tag = "2")]
100    pub arrow_type: ::core::option::Option<::prost::alloc::boxed::Box<ArrowType>>,
101    #[prost(bool, tag = "3")]
102    pub nullable: bool,
103    /// for complex data types like structs, unions
104    #[prost(message, repeated, tag = "4")]
105    pub children: ::prost::alloc::vec::Vec<Field>,
106    #[prost(map = "string, string", tag = "5")]
107    pub metadata: ::std::collections::HashMap<
108        ::prost::alloc::string::String,
109        ::prost::alloc::string::String,
110    >,
111}
112#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
113pub struct Timestamp {
114    #[prost(enumeration = "TimeUnit", tag = "1")]
115    pub time_unit: i32,
116    #[prost(string, tag = "2")]
117    pub timezone: ::prost::alloc::string::String,
118}
119#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
120pub struct Decimal32Type {
121    #[prost(uint32, tag = "3")]
122    pub precision: u32,
123    #[prost(int32, tag = "4")]
124    pub scale: i32,
125}
126#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
127pub struct Decimal64Type {
128    #[prost(uint32, tag = "3")]
129    pub precision: u32,
130    #[prost(int32, tag = "4")]
131    pub scale: i32,
132}
133#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
134pub struct Decimal128Type {
135    #[prost(uint32, tag = "3")]
136    pub precision: u32,
137    #[prost(int32, tag = "4")]
138    pub scale: i32,
139}
140#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
141pub struct Decimal256Type {
142    #[prost(uint32, tag = "3")]
143    pub precision: u32,
144    #[prost(int32, tag = "4")]
145    pub scale: i32,
146}
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct List {
149    #[prost(message, optional, boxed, tag = "1")]
150    pub field_type: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
151}
152#[derive(Clone, PartialEq, ::prost::Message)]
153pub struct FixedSizeList {
154    #[prost(message, optional, boxed, tag = "1")]
155    pub field_type: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
156    #[prost(int32, tag = "2")]
157    pub list_size: i32,
158}
159#[derive(Clone, PartialEq, ::prost::Message)]
160pub struct Dictionary {
161    #[prost(message, optional, boxed, tag = "1")]
162    pub key: ::core::option::Option<::prost::alloc::boxed::Box<ArrowType>>,
163    #[prost(message, optional, boxed, tag = "2")]
164    pub value: ::core::option::Option<::prost::alloc::boxed::Box<ArrowType>>,
165}
166#[derive(Clone, PartialEq, ::prost::Message)]
167pub struct Struct {
168    #[prost(message, repeated, tag = "1")]
169    pub sub_field_types: ::prost::alloc::vec::Vec<Field>,
170}
171#[derive(Clone, PartialEq, ::prost::Message)]
172pub struct Map {
173    #[prost(message, optional, boxed, tag = "1")]
174    pub field_type: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
175    #[prost(bool, tag = "2")]
176    pub keys_sorted: bool,
177}
178#[derive(Clone, PartialEq, ::prost::Message)]
179pub struct RunEndEncoded {
180    #[prost(message, optional, boxed, tag = "1")]
181    pub run_ends_field: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
182    #[prost(message, optional, boxed, tag = "2")]
183    pub values_field: ::core::option::Option<::prost::alloc::boxed::Box<Field>>,
184}
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct Union {
187    #[prost(message, repeated, tag = "1")]
188    pub union_types: ::prost::alloc::vec::Vec<Field>,
189    #[prost(enumeration = "UnionMode", tag = "2")]
190    pub union_mode: i32,
191    #[prost(int32, repeated, tag = "3")]
192    pub type_ids: ::prost::alloc::vec::Vec<i32>,
193}
194/// Used for List/FixedSizeList/LargeList/Struct/Map
195#[derive(Clone, PartialEq, ::prost::Message)]
196pub struct ScalarNestedValue {
197    #[prost(bytes = "vec", tag = "1")]
198    pub ipc_message: ::prost::alloc::vec::Vec<u8>,
199    #[prost(bytes = "vec", tag = "2")]
200    pub arrow_data: ::prost::alloc::vec::Vec<u8>,
201    #[prost(message, optional, tag = "3")]
202    pub schema: ::core::option::Option<Schema>,
203    #[prost(message, repeated, tag = "4")]
204    pub dictionaries: ::prost::alloc::vec::Vec<scalar_nested_value::Dictionary>,
205}
206/// Nested message and enum types in `ScalarNestedValue`.
207pub mod scalar_nested_value {
208    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
209    pub struct Dictionary {
210        #[prost(bytes = "vec", tag = "1")]
211        pub ipc_message: ::prost::alloc::vec::Vec<u8>,
212        #[prost(bytes = "vec", tag = "2")]
213        pub arrow_data: ::prost::alloc::vec::Vec<u8>,
214    }
215}
216#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
217pub struct ScalarTime32Value {
218    #[prost(oneof = "scalar_time32_value::Value", tags = "1, 2")]
219    pub value: ::core::option::Option<scalar_time32_value::Value>,
220}
221/// Nested message and enum types in `ScalarTime32Value`.
222pub mod scalar_time32_value {
223    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
224    pub enum Value {
225        #[prost(int32, tag = "1")]
226        Time32SecondValue(i32),
227        #[prost(int32, tag = "2")]
228        Time32MillisecondValue(i32),
229    }
230}
231#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
232pub struct ScalarTime64Value {
233    #[prost(oneof = "scalar_time64_value::Value", tags = "1, 2")]
234    pub value: ::core::option::Option<scalar_time64_value::Value>,
235}
236/// Nested message and enum types in `ScalarTime64Value`.
237pub mod scalar_time64_value {
238    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
239    pub enum Value {
240        #[prost(int64, tag = "1")]
241        Time64MicrosecondValue(i64),
242        #[prost(int64, tag = "2")]
243        Time64NanosecondValue(i64),
244    }
245}
246#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
247pub struct ScalarTimestampValue {
248    #[prost(string, tag = "5")]
249    pub timezone: ::prost::alloc::string::String,
250    #[prost(oneof = "scalar_timestamp_value::Value", tags = "1, 2, 3, 4")]
251    pub value: ::core::option::Option<scalar_timestamp_value::Value>,
252}
253/// Nested message and enum types in `ScalarTimestampValue`.
254pub mod scalar_timestamp_value {
255    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
256    pub enum Value {
257        #[prost(int64, tag = "1")]
258        TimeMicrosecondValue(i64),
259        #[prost(int64, tag = "2")]
260        TimeNanosecondValue(i64),
261        #[prost(int64, tag = "3")]
262        TimeSecondValue(i64),
263        #[prost(int64, tag = "4")]
264        TimeMillisecondValue(i64),
265    }
266}
267#[derive(Clone, PartialEq, ::prost::Message)]
268pub struct ScalarDictionaryValue {
269    #[prost(message, optional, tag = "1")]
270    pub index_type: ::core::option::Option<ArrowType>,
271    #[prost(message, optional, boxed, tag = "2")]
272    pub value: ::core::option::Option<::prost::alloc::boxed::Box<ScalarValue>>,
273}
274#[derive(Clone, PartialEq, ::prost::Message)]
275pub struct ScalarRunEndEncodedValue {
276    #[prost(message, optional, tag = "1")]
277    pub run_ends_field: ::core::option::Option<Field>,
278    #[prost(message, optional, tag = "2")]
279    pub values_field: ::core::option::Option<Field>,
280    #[prost(message, optional, boxed, tag = "3")]
281    pub value: ::core::option::Option<::prost::alloc::boxed::Box<ScalarValue>>,
282}
283#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
284pub struct IntervalDayTimeValue {
285    #[prost(int32, tag = "1")]
286    pub days: i32,
287    #[prost(int32, tag = "2")]
288    pub milliseconds: i32,
289}
290#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
291pub struct IntervalMonthDayNanoValue {
292    #[prost(int32, tag = "1")]
293    pub months: i32,
294    #[prost(int32, tag = "2")]
295    pub days: i32,
296    #[prost(int64, tag = "3")]
297    pub nanos: i64,
298}
299#[derive(Clone, PartialEq, ::prost::Message)]
300pub struct UnionField {
301    #[prost(int32, tag = "1")]
302    pub field_id: i32,
303    #[prost(message, optional, tag = "2")]
304    pub field: ::core::option::Option<Field>,
305}
306#[derive(Clone, PartialEq, ::prost::Message)]
307pub struct UnionValue {
308    /// Note that a null union value must have one or more fields, so we
309    /// encode a null UnionValue as one with value_id == 128
310    #[prost(int32, tag = "1")]
311    pub value_id: i32,
312    #[prost(message, optional, boxed, tag = "2")]
313    pub value: ::core::option::Option<::prost::alloc::boxed::Box<ScalarValue>>,
314    #[prost(message, repeated, tag = "3")]
315    pub fields: ::prost::alloc::vec::Vec<UnionField>,
316    #[prost(enumeration = "UnionMode", tag = "4")]
317    pub mode: i32,
318}
319#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
320pub struct ScalarFixedSizeBinary {
321    #[prost(bytes = "vec", tag = "1")]
322    pub values: ::prost::alloc::vec::Vec<u8>,
323    #[prost(int32, tag = "2")]
324    pub length: i32,
325}
326#[derive(Clone, PartialEq, ::prost::Message)]
327pub struct ScalarValue {
328    #[prost(
329        oneof = "scalar_value::Value",
330        tags = "33, 1, 2, 3, 23, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 32, 41, 43, 44, 20, 39, 21, 24, 35, 36, 37, 38, 26, 27, 28, 29, 22, 30, 25, 31, 34, 42, 45"
331    )]
332    pub value: ::core::option::Option<scalar_value::Value>,
333}
334/// Nested message and enum types in `ScalarValue`.
335pub mod scalar_value {
336    #[derive(Clone, PartialEq, ::prost::Oneof)]
337    pub enum Value {
338        /// was PrimitiveScalarType null_value = 19;
339        /// Null value of any type
340        #[prost(message, tag = "33")]
341        NullValue(super::ArrowType),
342        #[prost(bool, tag = "1")]
343        BoolValue(bool),
344        #[prost(string, tag = "2")]
345        Utf8Value(::prost::alloc::string::String),
346        #[prost(string, tag = "3")]
347        LargeUtf8Value(::prost::alloc::string::String),
348        #[prost(string, tag = "23")]
349        Utf8ViewValue(::prost::alloc::string::String),
350        #[prost(int32, tag = "4")]
351        Int8Value(i32),
352        #[prost(int32, tag = "5")]
353        Int16Value(i32),
354        #[prost(int32, tag = "6")]
355        Int32Value(i32),
356        #[prost(int64, tag = "7")]
357        Int64Value(i64),
358        #[prost(uint32, tag = "8")]
359        Uint8Value(u32),
360        #[prost(uint32, tag = "9")]
361        Uint16Value(u32),
362        #[prost(uint32, tag = "10")]
363        Uint32Value(u32),
364        #[prost(uint64, tag = "11")]
365        Uint64Value(u64),
366        #[prost(float, tag = "12")]
367        Float32Value(f32),
368        #[prost(double, tag = "13")]
369        Float64Value(f64),
370        /// Literal Date32 value always has a unit of day
371        #[prost(int32, tag = "14")]
372        Date32Value(i32),
373        #[prost(message, tag = "15")]
374        Time32Value(super::ScalarTime32Value),
375        #[prost(message, tag = "16")]
376        LargeListValue(super::ScalarNestedValue),
377        #[prost(message, tag = "17")]
378        ListValue(super::ScalarNestedValue),
379        #[prost(message, tag = "18")]
380        FixedSizeListValue(super::ScalarNestedValue),
381        #[prost(message, tag = "32")]
382        StructValue(super::ScalarNestedValue),
383        #[prost(message, tag = "41")]
384        MapValue(super::ScalarNestedValue),
385        #[prost(message, tag = "43")]
386        Decimal32Value(super::Decimal32),
387        #[prost(message, tag = "44")]
388        Decimal64Value(super::Decimal64),
389        #[prost(message, tag = "20")]
390        Decimal128Value(super::Decimal128),
391        #[prost(message, tag = "39")]
392        Decimal256Value(super::Decimal256),
393        #[prost(int64, tag = "21")]
394        Date64Value(i64),
395        #[prost(int32, tag = "24")]
396        IntervalYearmonthValue(i32),
397        #[prost(int64, tag = "35")]
398        DurationSecondValue(i64),
399        #[prost(int64, tag = "36")]
400        DurationMillisecondValue(i64),
401        #[prost(int64, tag = "37")]
402        DurationMicrosecondValue(i64),
403        #[prost(int64, tag = "38")]
404        DurationNanosecondValue(i64),
405        #[prost(message, tag = "26")]
406        TimestampValue(super::ScalarTimestampValue),
407        #[prost(message, tag = "27")]
408        DictionaryValue(::prost::alloc::boxed::Box<super::ScalarDictionaryValue>),
409        #[prost(bytes, tag = "28")]
410        BinaryValue(::prost::alloc::vec::Vec<u8>),
411        #[prost(bytes, tag = "29")]
412        LargeBinaryValue(::prost::alloc::vec::Vec<u8>),
413        #[prost(bytes, tag = "22")]
414        BinaryViewValue(::prost::alloc::vec::Vec<u8>),
415        #[prost(message, tag = "30")]
416        Time64Value(super::ScalarTime64Value),
417        #[prost(message, tag = "25")]
418        IntervalDaytimeValue(super::IntervalDayTimeValue),
419        #[prost(message, tag = "31")]
420        IntervalMonthDayNano(super::IntervalMonthDayNanoValue),
421        #[prost(message, tag = "34")]
422        FixedSizeBinaryValue(super::ScalarFixedSizeBinary),
423        #[prost(message, tag = "42")]
424        UnionValue(::prost::alloc::boxed::Box<super::UnionValue>),
425        #[prost(message, tag = "45")]
426        RunEndEncodedValue(::prost::alloc::boxed::Box<super::ScalarRunEndEncodedValue>),
427    }
428}
429#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
430pub struct Decimal32 {
431    #[prost(bytes = "vec", tag = "1")]
432    pub value: ::prost::alloc::vec::Vec<u8>,
433    #[prost(int64, tag = "2")]
434    pub p: i64,
435    #[prost(int64, tag = "3")]
436    pub s: i64,
437}
438#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
439pub struct Decimal64 {
440    #[prost(bytes = "vec", tag = "1")]
441    pub value: ::prost::alloc::vec::Vec<u8>,
442    #[prost(int64, tag = "2")]
443    pub p: i64,
444    #[prost(int64, tag = "3")]
445    pub s: i64,
446}
447#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
448pub struct Decimal128 {
449    #[prost(bytes = "vec", tag = "1")]
450    pub value: ::prost::alloc::vec::Vec<u8>,
451    #[prost(int64, tag = "2")]
452    pub p: i64,
453    #[prost(int64, tag = "3")]
454    pub s: i64,
455}
456#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
457pub struct Decimal256 {
458    #[prost(bytes = "vec", tag = "1")]
459    pub value: ::prost::alloc::vec::Vec<u8>,
460    #[prost(int64, tag = "2")]
461    pub p: i64,
462    #[prost(int64, tag = "3")]
463    pub s: i64,
464}
465/// Serialized data type
466#[derive(Clone, PartialEq, ::prost::Message)]
467pub struct ArrowType {
468    #[prost(
469        oneof = "arrow_type::ArrowTypeEnum",
470        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 35, 32, 15, 34, 16, 31, 17, 18, 19, 20, 21, 22, 23, 40, 41, 24, 36, 25, 26, 27, 28, 29, 30, 33, 42"
471    )]
472    pub arrow_type_enum: ::core::option::Option<arrow_type::ArrowTypeEnum>,
473}
474/// Nested message and enum types in `ArrowType`.
475pub mod arrow_type {
476    #[derive(Clone, PartialEq, ::prost::Oneof)]
477    pub enum ArrowTypeEnum {
478        /// arrow::Type::NA
479        #[prost(message, tag = "1")]
480        None(super::EmptyMessage),
481        /// arrow::Type::BOOL
482        #[prost(message, tag = "2")]
483        Bool(super::EmptyMessage),
484        /// arrow::Type::UINT8
485        #[prost(message, tag = "3")]
486        Uint8(super::EmptyMessage),
487        /// arrow::Type::INT8
488        #[prost(message, tag = "4")]
489        Int8(super::EmptyMessage),
490        /// represents arrow::Type fields in src/arrow/type.h
491        #[prost(message, tag = "5")]
492        Uint16(super::EmptyMessage),
493        #[prost(message, tag = "6")]
494        Int16(super::EmptyMessage),
495        #[prost(message, tag = "7")]
496        Uint32(super::EmptyMessage),
497        #[prost(message, tag = "8")]
498        Int32(super::EmptyMessage),
499        #[prost(message, tag = "9")]
500        Uint64(super::EmptyMessage),
501        #[prost(message, tag = "10")]
502        Int64(super::EmptyMessage),
503        #[prost(message, tag = "11")]
504        Float16(super::EmptyMessage),
505        #[prost(message, tag = "12")]
506        Float32(super::EmptyMessage),
507        #[prost(message, tag = "13")]
508        Float64(super::EmptyMessage),
509        #[prost(message, tag = "14")]
510        Utf8(super::EmptyMessage),
511        #[prost(message, tag = "35")]
512        Utf8View(super::EmptyMessage),
513        #[prost(message, tag = "32")]
514        LargeUtf8(super::EmptyMessage),
515        #[prost(message, tag = "15")]
516        Binary(super::EmptyMessage),
517        #[prost(message, tag = "34")]
518        BinaryView(super::EmptyMessage),
519        #[prost(int32, tag = "16")]
520        FixedSizeBinary(i32),
521        #[prost(message, tag = "31")]
522        LargeBinary(super::EmptyMessage),
523        #[prost(message, tag = "17")]
524        Date32(super::EmptyMessage),
525        #[prost(message, tag = "18")]
526        Date64(super::EmptyMessage),
527        #[prost(enumeration = "super::TimeUnit", tag = "19")]
528        Duration(i32),
529        #[prost(message, tag = "20")]
530        Timestamp(super::Timestamp),
531        #[prost(enumeration = "super::TimeUnit", tag = "21")]
532        Time32(i32),
533        #[prost(enumeration = "super::TimeUnit", tag = "22")]
534        Time64(i32),
535        #[prost(enumeration = "super::IntervalUnit", tag = "23")]
536        Interval(i32),
537        #[prost(message, tag = "40")]
538        Decimal32(super::Decimal32Type),
539        #[prost(message, tag = "41")]
540        Decimal64(super::Decimal64Type),
541        #[prost(message, tag = "24")]
542        Decimal128(super::Decimal128Type),
543        #[prost(message, tag = "36")]
544        Decimal256(super::Decimal256Type),
545        #[prost(message, tag = "25")]
546        List(::prost::alloc::boxed::Box<super::List>),
547        #[prost(message, tag = "26")]
548        LargeList(::prost::alloc::boxed::Box<super::List>),
549        #[prost(message, tag = "27")]
550        FixedSizeList(::prost::alloc::boxed::Box<super::FixedSizeList>),
551        #[prost(message, tag = "28")]
552        Struct(super::Struct),
553        #[prost(message, tag = "29")]
554        Union(super::Union),
555        #[prost(message, tag = "30")]
556        Dictionary(::prost::alloc::boxed::Box<super::Dictionary>),
557        #[prost(message, tag = "33")]
558        Map(::prost::alloc::boxed::Box<super::Map>),
559        #[prost(message, tag = "42")]
560        RunEndEncoded(::prost::alloc::boxed::Box<super::RunEndEncoded>),
561    }
562}
563/// Useful for representing an empty enum variant in rust
564/// E.G. enum example{One, Two(i32)}
565/// maps to
566/// message example{
567///     oneof{
568///         EmptyMessage One = 1;
569///         i32 Two = 2;
570///    }
571/// }
572#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
573pub struct EmptyMessage {}
574#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
575pub struct JsonWriterOptions {
576    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
577    pub compression: i32,
578}
579#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
580pub struct CsvWriterOptions {
581    /// Compression type
582    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
583    pub compression: i32,
584    /// Optional column delimiter. Defaults to `b','`
585    #[prost(string, tag = "2")]
586    pub delimiter: ::prost::alloc::string::String,
587    /// Whether to write column names as file headers. Defaults to `true`
588    #[prost(bool, tag = "3")]
589    pub has_header: bool,
590    /// Optional date format for date arrays
591    #[prost(string, tag = "4")]
592    pub date_format: ::prost::alloc::string::String,
593    /// Optional datetime format for datetime arrays
594    #[prost(string, tag = "5")]
595    pub datetime_format: ::prost::alloc::string::String,
596    /// Optional timestamp format for timestamp arrays
597    #[prost(string, tag = "6")]
598    pub timestamp_format: ::prost::alloc::string::String,
599    /// Optional time format for time arrays
600    #[prost(string, tag = "7")]
601    pub time_format: ::prost::alloc::string::String,
602    /// Optional value to represent null
603    #[prost(string, tag = "8")]
604    pub null_value: ::prost::alloc::string::String,
605    /// Optional quote. Defaults to `b'"'`
606    #[prost(string, tag = "9")]
607    pub quote: ::prost::alloc::string::String,
608    /// Optional escape. Defaults to `'\\'`
609    #[prost(string, tag = "10")]
610    pub escape: ::prost::alloc::string::String,
611    /// Optional flag whether to double quotes, instead of escaping. Defaults to `true`
612    #[prost(bool, tag = "11")]
613    pub double_quote: bool,
614}
615/// Options controlling CSV format
616#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
617pub struct CsvOptions {
618    /// Indicates if the CSV has a header row
619    #[prost(bytes = "vec", tag = "1")]
620    pub has_header: ::prost::alloc::vec::Vec<u8>,
621    /// Delimiter character as a byte
622    #[prost(bytes = "vec", tag = "2")]
623    pub delimiter: ::prost::alloc::vec::Vec<u8>,
624    /// Quote character as a byte
625    #[prost(bytes = "vec", tag = "3")]
626    pub quote: ::prost::alloc::vec::Vec<u8>,
627    /// Optional escape character as a byte
628    #[prost(bytes = "vec", tag = "4")]
629    pub escape: ::prost::alloc::vec::Vec<u8>,
630    /// Compression type
631    #[prost(enumeration = "CompressionTypeVariant", tag = "5")]
632    pub compression: i32,
633    /// Optional max records for schema inference
634    #[prost(uint64, optional, tag = "6")]
635    pub schema_infer_max_rec: ::core::option::Option<u64>,
636    /// Optional date format
637    #[prost(string, tag = "7")]
638    pub date_format: ::prost::alloc::string::String,
639    /// Optional datetime format
640    #[prost(string, tag = "8")]
641    pub datetime_format: ::prost::alloc::string::String,
642    /// Optional timestamp format
643    #[prost(string, tag = "9")]
644    pub timestamp_format: ::prost::alloc::string::String,
645    /// Optional timestamp with timezone format
646    #[prost(string, tag = "10")]
647    pub timestamp_tz_format: ::prost::alloc::string::String,
648    /// Optional time format
649    #[prost(string, tag = "11")]
650    pub time_format: ::prost::alloc::string::String,
651    /// Optional representation of null value
652    #[prost(string, tag = "12")]
653    pub null_value: ::prost::alloc::string::String,
654    /// Optional representation of null loading regex
655    #[prost(string, tag = "13")]
656    pub null_regex: ::prost::alloc::string::String,
657    /// Optional comment character as a byte
658    #[prost(bytes = "vec", tag = "14")]
659    pub comment: ::prost::alloc::vec::Vec<u8>,
660    /// Indicates if quotes are doubled
661    #[prost(bytes = "vec", tag = "15")]
662    pub double_quote: ::prost::alloc::vec::Vec<u8>,
663    /// Indicates if newlines are supported in values
664    #[prost(bytes = "vec", tag = "16")]
665    pub newlines_in_values: ::prost::alloc::vec::Vec<u8>,
666    /// Optional terminator character as a byte
667    #[prost(bytes = "vec", tag = "17")]
668    pub terminator: ::prost::alloc::vec::Vec<u8>,
669    /// Indicates if truncated rows are allowed
670    #[prost(bytes = "vec", tag = "18")]
671    pub truncated_rows: ::prost::alloc::vec::Vec<u8>,
672    /// Optional compression level
673    #[prost(uint32, optional, tag = "19")]
674    pub compression_level: ::core::option::Option<u32>,
675}
676/// Options controlling CSV format
677#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
678pub struct JsonOptions {
679    /// Compression type
680    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
681    pub compression: i32,
682    /// Optional max records for schema inference
683    #[prost(uint64, optional, tag = "2")]
684    pub schema_infer_max_rec: ::core::option::Option<u64>,
685    /// Optional compression level
686    #[prost(uint32, optional, tag = "3")]
687    pub compression_level: ::core::option::Option<u32>,
688    /// Whether to read as newline-delimited JSON (default true). When false, expects JSON array format \[{},...\]
689    #[prost(bool, optional, tag = "4")]
690    pub newline_delimited: ::core::option::Option<bool>,
691}
692#[derive(Clone, PartialEq, ::prost::Message)]
693pub struct TableParquetOptions {
694    #[prost(message, optional, tag = "1")]
695    pub global: ::core::option::Option<ParquetOptions>,
696    #[prost(message, repeated, tag = "2")]
697    pub column_specific_options: ::prost::alloc::vec::Vec<ParquetColumnSpecificOptions>,
698    #[prost(map = "string, string", tag = "3")]
699    pub key_value_metadata: ::std::collections::HashMap<
700        ::prost::alloc::string::String,
701        ::prost::alloc::string::String,
702    >,
703}
704#[derive(Clone, PartialEq, ::prost::Message)]
705pub struct ParquetColumnSpecificOptions {
706    #[prost(string, tag = "1")]
707    pub column_name: ::prost::alloc::string::String,
708    #[prost(message, optional, tag = "2")]
709    pub options: ::core::option::Option<ParquetColumnOptions>,
710}
711#[derive(Clone, PartialEq, ::prost::Message)]
712pub struct ParquetColumnOptions {
713    #[prost(oneof = "parquet_column_options::BloomFilterEnabledOpt", tags = "1")]
714    pub bloom_filter_enabled_opt: ::core::option::Option<
715        parquet_column_options::BloomFilterEnabledOpt,
716    >,
717    #[prost(oneof = "parquet_column_options::EncodingOpt", tags = "2")]
718    pub encoding_opt: ::core::option::Option<parquet_column_options::EncodingOpt>,
719    #[prost(oneof = "parquet_column_options::DictionaryEnabledOpt", tags = "3")]
720    pub dictionary_enabled_opt: ::core::option::Option<
721        parquet_column_options::DictionaryEnabledOpt,
722    >,
723    #[prost(oneof = "parquet_column_options::CompressionOpt", tags = "4")]
724    pub compression_opt: ::core::option::Option<parquet_column_options::CompressionOpt>,
725    #[prost(oneof = "parquet_column_options::StatisticsEnabledOpt", tags = "5")]
726    pub statistics_enabled_opt: ::core::option::Option<
727        parquet_column_options::StatisticsEnabledOpt,
728    >,
729    #[prost(oneof = "parquet_column_options::BloomFilterFppOpt", tags = "6")]
730    pub bloom_filter_fpp_opt: ::core::option::Option<
731        parquet_column_options::BloomFilterFppOpt,
732    >,
733    #[prost(oneof = "parquet_column_options::BloomFilterNdvOpt", tags = "7")]
734    pub bloom_filter_ndv_opt: ::core::option::Option<
735        parquet_column_options::BloomFilterNdvOpt,
736    >,
737}
738/// Nested message and enum types in `ParquetColumnOptions`.
739pub mod parquet_column_options {
740    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
741    pub enum BloomFilterEnabledOpt {
742        #[prost(bool, tag = "1")]
743        BloomFilterEnabled(bool),
744    }
745    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
746    pub enum EncodingOpt {
747        #[prost(string, tag = "2")]
748        Encoding(::prost::alloc::string::String),
749    }
750    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
751    pub enum DictionaryEnabledOpt {
752        #[prost(bool, tag = "3")]
753        DictionaryEnabled(bool),
754    }
755    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
756    pub enum CompressionOpt {
757        #[prost(string, tag = "4")]
758        Compression(::prost::alloc::string::String),
759    }
760    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
761    pub enum StatisticsEnabledOpt {
762        #[prost(string, tag = "5")]
763        StatisticsEnabled(::prost::alloc::string::String),
764    }
765    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
766    pub enum BloomFilterFppOpt {
767        #[prost(double, tag = "6")]
768        BloomFilterFpp(f64),
769    }
770    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
771    pub enum BloomFilterNdvOpt {
772        #[prost(uint64, tag = "7")]
773        BloomFilterNdv(u64),
774    }
775}
776#[derive(Clone, PartialEq, ::prost::Message)]
777pub struct ParquetOptions {
778    /// Regular fields
779    ///
780    /// default = true
781    #[prost(bool, tag = "1")]
782    pub enable_page_index: bool,
783    /// default = true
784    #[prost(bool, tag = "2")]
785    pub pruning: bool,
786    /// default = true
787    #[prost(bool, tag = "3")]
788    pub skip_metadata: bool,
789    /// default = false
790    #[prost(bool, tag = "5")]
791    pub pushdown_filters: bool,
792    /// default = false
793    #[prost(bool, tag = "6")]
794    pub reorder_filters: bool,
795    /// default = false
796    #[prost(bool, tag = "34")]
797    pub force_filter_selections: bool,
798    /// default = 1024 * 1024
799    #[prost(uint64, tag = "7")]
800    pub data_pagesize_limit: u64,
801    /// default = 1024
802    #[prost(uint64, tag = "8")]
803    pub write_batch_size: u64,
804    /// default = "1.0"
805    #[prost(string, tag = "9")]
806    pub writer_version: ::prost::alloc::string::String,
807    /// bool bloom_filter_enabled = 20; // default = false
808    ///
809    /// default = true
810    #[prost(bool, tag = "23")]
811    pub allow_single_file_parallelism: bool,
812    /// default = 1
813    #[prost(uint64, tag = "24")]
814    pub maximum_parallel_row_group_writers: u64,
815    /// default = 2
816    #[prost(uint64, tag = "25")]
817    pub maximum_buffered_record_batches_per_stream: u64,
818    /// default = true
819    #[prost(bool, tag = "26")]
820    pub bloom_filter_on_read: bool,
821    /// default = false
822    #[prost(bool, tag = "27")]
823    pub bloom_filter_on_write: bool,
824    /// default = false
825    #[prost(bool, tag = "28")]
826    pub schema_force_view_types: bool,
827    /// default = false
828    #[prost(bool, tag = "29")]
829    pub binary_as_string: bool,
830    /// default = false
831    #[prost(bool, tag = "30")]
832    pub skip_arrow_metadata: bool,
833    #[prost(uint64, tag = "12")]
834    pub dictionary_page_size_limit: u64,
835    #[prost(uint64, tag = "18")]
836    pub data_page_row_count_limit: u64,
837    #[prost(uint64, tag = "15")]
838    pub max_row_group_size: u64,
839    #[prost(string, tag = "16")]
840    pub created_by: ::prost::alloc::string::String,
841    #[prost(oneof = "parquet_options::MetadataSizeHintOpt", tags = "4")]
842    pub metadata_size_hint_opt: ::core::option::Option<
843        parquet_options::MetadataSizeHintOpt,
844    >,
845    #[prost(oneof = "parquet_options::CompressionOpt", tags = "10")]
846    pub compression_opt: ::core::option::Option<parquet_options::CompressionOpt>,
847    #[prost(oneof = "parquet_options::DictionaryEnabledOpt", tags = "11")]
848    pub dictionary_enabled_opt: ::core::option::Option<
849        parquet_options::DictionaryEnabledOpt,
850    >,
851    #[prost(oneof = "parquet_options::StatisticsEnabledOpt", tags = "13")]
852    pub statistics_enabled_opt: ::core::option::Option<
853        parquet_options::StatisticsEnabledOpt,
854    >,
855    #[prost(oneof = "parquet_options::ColumnIndexTruncateLengthOpt", tags = "17")]
856    pub column_index_truncate_length_opt: ::core::option::Option<
857        parquet_options::ColumnIndexTruncateLengthOpt,
858    >,
859    #[prost(oneof = "parquet_options::StatisticsTruncateLengthOpt", tags = "31")]
860    pub statistics_truncate_length_opt: ::core::option::Option<
861        parquet_options::StatisticsTruncateLengthOpt,
862    >,
863    #[prost(oneof = "parquet_options::EncodingOpt", tags = "19")]
864    pub encoding_opt: ::core::option::Option<parquet_options::EncodingOpt>,
865    #[prost(oneof = "parquet_options::BloomFilterFppOpt", tags = "21")]
866    pub bloom_filter_fpp_opt: ::core::option::Option<parquet_options::BloomFilterFppOpt>,
867    #[prost(oneof = "parquet_options::BloomFilterNdvOpt", tags = "22")]
868    pub bloom_filter_ndv_opt: ::core::option::Option<parquet_options::BloomFilterNdvOpt>,
869    #[prost(oneof = "parquet_options::CoerceInt96Opt", tags = "32")]
870    pub coerce_int96_opt: ::core::option::Option<parquet_options::CoerceInt96Opt>,
871    #[prost(oneof = "parquet_options::MaxPredicateCacheSizeOpt", tags = "33")]
872    pub max_predicate_cache_size_opt: ::core::option::Option<
873        parquet_options::MaxPredicateCacheSizeOpt,
874    >,
875}
876/// Nested message and enum types in `ParquetOptions`.
877pub mod parquet_options {
878    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
879    pub enum MetadataSizeHintOpt {
880        #[prost(uint64, tag = "4")]
881        MetadataSizeHint(u64),
882    }
883    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
884    pub enum CompressionOpt {
885        #[prost(string, tag = "10")]
886        Compression(::prost::alloc::string::String),
887    }
888    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
889    pub enum DictionaryEnabledOpt {
890        #[prost(bool, tag = "11")]
891        DictionaryEnabled(bool),
892    }
893    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
894    pub enum StatisticsEnabledOpt {
895        #[prost(string, tag = "13")]
896        StatisticsEnabled(::prost::alloc::string::String),
897    }
898    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
899    pub enum ColumnIndexTruncateLengthOpt {
900        #[prost(uint64, tag = "17")]
901        ColumnIndexTruncateLength(u64),
902    }
903    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
904    pub enum StatisticsTruncateLengthOpt {
905        #[prost(uint64, tag = "31")]
906        StatisticsTruncateLength(u64),
907    }
908    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
909    pub enum EncodingOpt {
910        #[prost(string, tag = "19")]
911        Encoding(::prost::alloc::string::String),
912    }
913    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
914    pub enum BloomFilterFppOpt {
915        #[prost(double, tag = "21")]
916        BloomFilterFpp(f64),
917    }
918    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
919    pub enum BloomFilterNdvOpt {
920        #[prost(uint64, tag = "22")]
921        BloomFilterNdv(u64),
922    }
923    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
924    pub enum CoerceInt96Opt {
925        #[prost(string, tag = "32")]
926        CoerceInt96(::prost::alloc::string::String),
927    }
928    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
929    pub enum MaxPredicateCacheSizeOpt {
930        #[prost(uint64, tag = "33")]
931        MaxPredicateCacheSize(u64),
932    }
933}
934#[derive(Clone, PartialEq, ::prost::Message)]
935pub struct Precision {
936    #[prost(enumeration = "PrecisionInfo", tag = "1")]
937    pub precision_info: i32,
938    #[prost(message, optional, tag = "2")]
939    pub val: ::core::option::Option<ScalarValue>,
940}
941#[derive(Clone, PartialEq, ::prost::Message)]
942pub struct Statistics {
943    #[prost(message, optional, tag = "1")]
944    pub num_rows: ::core::option::Option<Precision>,
945    #[prost(message, optional, tag = "2")]
946    pub total_byte_size: ::core::option::Option<Precision>,
947    #[prost(message, repeated, tag = "3")]
948    pub column_stats: ::prost::alloc::vec::Vec<ColumnStats>,
949}
950#[derive(Clone, PartialEq, ::prost::Message)]
951pub struct ColumnStats {
952    #[prost(message, optional, tag = "1")]
953    pub min_value: ::core::option::Option<Precision>,
954    #[prost(message, optional, tag = "2")]
955    pub max_value: ::core::option::Option<Precision>,
956    #[prost(message, optional, tag = "5")]
957    pub sum_value: ::core::option::Option<Precision>,
958    #[prost(message, optional, tag = "3")]
959    pub null_count: ::core::option::Option<Precision>,
960    #[prost(message, optional, tag = "4")]
961    pub distinct_count: ::core::option::Option<Precision>,
962    #[prost(message, optional, tag = "6")]
963    pub byte_size: ::core::option::Option<Precision>,
964}
965#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
966#[repr(i32)]
967pub enum JoinType {
968    Inner = 0,
969    Left = 1,
970    Right = 2,
971    Full = 3,
972    Leftsemi = 4,
973    Leftanti = 5,
974    Rightsemi = 6,
975    Rightanti = 7,
976    Leftmark = 8,
977    Rightmark = 9,
978}
979impl JoinType {
980    /// String value of the enum field names used in the ProtoBuf definition.
981    ///
982    /// The values are not transformed in any way and thus are considered stable
983    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
984    pub fn as_str_name(&self) -> &'static str {
985        match self {
986            Self::Inner => "INNER",
987            Self::Left => "LEFT",
988            Self::Right => "RIGHT",
989            Self::Full => "FULL",
990            Self::Leftsemi => "LEFTSEMI",
991            Self::Leftanti => "LEFTANTI",
992            Self::Rightsemi => "RIGHTSEMI",
993            Self::Rightanti => "RIGHTANTI",
994            Self::Leftmark => "LEFTMARK",
995            Self::Rightmark => "RIGHTMARK",
996        }
997    }
998    /// Creates an enum from field names used in the ProtoBuf definition.
999    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1000        match value {
1001            "INNER" => Some(Self::Inner),
1002            "LEFT" => Some(Self::Left),
1003            "RIGHT" => Some(Self::Right),
1004            "FULL" => Some(Self::Full),
1005            "LEFTSEMI" => Some(Self::Leftsemi),
1006            "LEFTANTI" => Some(Self::Leftanti),
1007            "RIGHTSEMI" => Some(Self::Rightsemi),
1008            "RIGHTANTI" => Some(Self::Rightanti),
1009            "LEFTMARK" => Some(Self::Leftmark),
1010            "RIGHTMARK" => Some(Self::Rightmark),
1011            _ => None,
1012        }
1013    }
1014}
1015#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1016#[repr(i32)]
1017pub enum JoinConstraint {
1018    On = 0,
1019    Using = 1,
1020}
1021impl JoinConstraint {
1022    /// String value of the enum field names used in the ProtoBuf definition.
1023    ///
1024    /// The values are not transformed in any way and thus are considered stable
1025    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1026    pub fn as_str_name(&self) -> &'static str {
1027        match self {
1028            Self::On => "ON",
1029            Self::Using => "USING",
1030        }
1031    }
1032    /// Creates an enum from field names used in the ProtoBuf definition.
1033    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1034        match value {
1035            "ON" => Some(Self::On),
1036            "USING" => Some(Self::Using),
1037            _ => None,
1038        }
1039    }
1040}
1041#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1042#[repr(i32)]
1043pub enum NullEquality {
1044    NullEqualsNothing = 0,
1045    NullEqualsNull = 1,
1046}
1047impl NullEquality {
1048    /// String value of the enum field names used in the ProtoBuf definition.
1049    ///
1050    /// The values are not transformed in any way and thus are considered stable
1051    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1052    pub fn as_str_name(&self) -> &'static str {
1053        match self {
1054            Self::NullEqualsNothing => "NULL_EQUALS_NOTHING",
1055            Self::NullEqualsNull => "NULL_EQUALS_NULL",
1056        }
1057    }
1058    /// Creates an enum from field names used in the ProtoBuf definition.
1059    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1060        match value {
1061            "NULL_EQUALS_NOTHING" => Some(Self::NullEqualsNothing),
1062            "NULL_EQUALS_NULL" => Some(Self::NullEqualsNull),
1063            _ => None,
1064        }
1065    }
1066}
1067#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1068#[repr(i32)]
1069pub enum TimeUnit {
1070    Second = 0,
1071    Millisecond = 1,
1072    Microsecond = 2,
1073    Nanosecond = 3,
1074}
1075impl TimeUnit {
1076    /// String value of the enum field names used in the ProtoBuf definition.
1077    ///
1078    /// The values are not transformed in any way and thus are considered stable
1079    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1080    pub fn as_str_name(&self) -> &'static str {
1081        match self {
1082            Self::Second => "Second",
1083            Self::Millisecond => "Millisecond",
1084            Self::Microsecond => "Microsecond",
1085            Self::Nanosecond => "Nanosecond",
1086        }
1087    }
1088    /// Creates an enum from field names used in the ProtoBuf definition.
1089    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1090        match value {
1091            "Second" => Some(Self::Second),
1092            "Millisecond" => Some(Self::Millisecond),
1093            "Microsecond" => Some(Self::Microsecond),
1094            "Nanosecond" => Some(Self::Nanosecond),
1095            _ => None,
1096        }
1097    }
1098}
1099#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1100#[repr(i32)]
1101pub enum IntervalUnit {
1102    YearMonth = 0,
1103    DayTime = 1,
1104    MonthDayNano = 2,
1105}
1106impl IntervalUnit {
1107    /// String value of the enum field names used in the ProtoBuf definition.
1108    ///
1109    /// The values are not transformed in any way and thus are considered stable
1110    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1111    pub fn as_str_name(&self) -> &'static str {
1112        match self {
1113            Self::YearMonth => "YearMonth",
1114            Self::DayTime => "DayTime",
1115            Self::MonthDayNano => "MonthDayNano",
1116        }
1117    }
1118    /// Creates an enum from field names used in the ProtoBuf definition.
1119    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1120        match value {
1121            "YearMonth" => Some(Self::YearMonth),
1122            "DayTime" => Some(Self::DayTime),
1123            "MonthDayNano" => Some(Self::MonthDayNano),
1124            _ => None,
1125        }
1126    }
1127}
1128#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1129#[repr(i32)]
1130pub enum UnionMode {
1131    Sparse = 0,
1132    Dense = 1,
1133}
1134impl UnionMode {
1135    /// String value of the enum field names used in the ProtoBuf definition.
1136    ///
1137    /// The values are not transformed in any way and thus are considered stable
1138    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1139    pub fn as_str_name(&self) -> &'static str {
1140        match self {
1141            Self::Sparse => "sparse",
1142            Self::Dense => "dense",
1143        }
1144    }
1145    /// Creates an enum from field names used in the ProtoBuf definition.
1146    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1147        match value {
1148            "sparse" => Some(Self::Sparse),
1149            "dense" => Some(Self::Dense),
1150            _ => None,
1151        }
1152    }
1153}
1154#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1155#[repr(i32)]
1156pub enum CompressionTypeVariant {
1157    Gzip = 0,
1158    Bzip2 = 1,
1159    Xz = 2,
1160    Zstd = 3,
1161    Uncompressed = 4,
1162}
1163impl CompressionTypeVariant {
1164    /// String value of the enum field names used in the ProtoBuf definition.
1165    ///
1166    /// The values are not transformed in any way and thus are considered stable
1167    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1168    pub fn as_str_name(&self) -> &'static str {
1169        match self {
1170            Self::Gzip => "GZIP",
1171            Self::Bzip2 => "BZIP2",
1172            Self::Xz => "XZ",
1173            Self::Zstd => "ZSTD",
1174            Self::Uncompressed => "UNCOMPRESSED",
1175        }
1176    }
1177    /// Creates an enum from field names used in the ProtoBuf definition.
1178    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1179        match value {
1180            "GZIP" => Some(Self::Gzip),
1181            "BZIP2" => Some(Self::Bzip2),
1182            "XZ" => Some(Self::Xz),
1183            "ZSTD" => Some(Self::Zstd),
1184            "UNCOMPRESSED" => Some(Self::Uncompressed),
1185            _ => None,
1186        }
1187    }
1188}
1189#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1190#[repr(i32)]
1191pub enum JoinSide {
1192    LeftSide = 0,
1193    RightSide = 1,
1194    None = 2,
1195}
1196impl JoinSide {
1197    /// String value of the enum field names used in the ProtoBuf definition.
1198    ///
1199    /// The values are not transformed in any way and thus are considered stable
1200    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1201    pub fn as_str_name(&self) -> &'static str {
1202        match self {
1203            Self::LeftSide => "LEFT_SIDE",
1204            Self::RightSide => "RIGHT_SIDE",
1205            Self::None => "NONE",
1206        }
1207    }
1208    /// Creates an enum from field names used in the ProtoBuf definition.
1209    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1210        match value {
1211            "LEFT_SIDE" => Some(Self::LeftSide),
1212            "RIGHT_SIDE" => Some(Self::RightSide),
1213            "NONE" => Some(Self::None),
1214            _ => None,
1215        }
1216    }
1217}
1218#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1219#[repr(i32)]
1220pub enum PrecisionInfo {
1221    Exact = 0,
1222    Inexact = 1,
1223    Absent = 2,
1224}
1225impl PrecisionInfo {
1226    /// String value of the enum field names used in the ProtoBuf definition.
1227    ///
1228    /// The values are not transformed in any way and thus are considered stable
1229    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1230    pub fn as_str_name(&self) -> &'static str {
1231        match self {
1232            Self::Exact => "EXACT",
1233            Self::Inexact => "INEXACT",
1234            Self::Absent => "ABSENT",
1235        }
1236    }
1237    /// Creates an enum from field names used in the ProtoBuf definition.
1238    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1239        match value {
1240            "EXACT" => Some(Self::Exact),
1241            "INEXACT" => Some(Self::Inexact),
1242            "ABSENT" => Some(Self::Absent),
1243            _ => None,
1244        }
1245    }
1246}