Skip to main content

datafusion_proto/generated/
datafusion_proto_common.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/ListView/LargeListView/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, 46, 47, 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 = "46")]
382        ListViewValue(super::ScalarNestedValue),
383        #[prost(message, tag = "47")]
384        LargeListViewValue(super::ScalarNestedValue),
385        #[prost(message, tag = "32")]
386        StructValue(super::ScalarNestedValue),
387        #[prost(message, tag = "41")]
388        MapValue(super::ScalarNestedValue),
389        #[prost(message, tag = "43")]
390        Decimal32Value(super::Decimal32),
391        #[prost(message, tag = "44")]
392        Decimal64Value(super::Decimal64),
393        #[prost(message, tag = "20")]
394        Decimal128Value(super::Decimal128),
395        #[prost(message, tag = "39")]
396        Decimal256Value(super::Decimal256),
397        #[prost(int64, tag = "21")]
398        Date64Value(i64),
399        #[prost(int32, tag = "24")]
400        IntervalYearmonthValue(i32),
401        #[prost(int64, tag = "35")]
402        DurationSecondValue(i64),
403        #[prost(int64, tag = "36")]
404        DurationMillisecondValue(i64),
405        #[prost(int64, tag = "37")]
406        DurationMicrosecondValue(i64),
407        #[prost(int64, tag = "38")]
408        DurationNanosecondValue(i64),
409        #[prost(message, tag = "26")]
410        TimestampValue(super::ScalarTimestampValue),
411        #[prost(message, tag = "27")]
412        DictionaryValue(::prost::alloc::boxed::Box<super::ScalarDictionaryValue>),
413        #[prost(bytes, tag = "28")]
414        BinaryValue(::prost::alloc::vec::Vec<u8>),
415        #[prost(bytes, tag = "29")]
416        LargeBinaryValue(::prost::alloc::vec::Vec<u8>),
417        #[prost(bytes, tag = "22")]
418        BinaryViewValue(::prost::alloc::vec::Vec<u8>),
419        #[prost(message, tag = "30")]
420        Time64Value(super::ScalarTime64Value),
421        #[prost(message, tag = "25")]
422        IntervalDaytimeValue(super::IntervalDayTimeValue),
423        #[prost(message, tag = "31")]
424        IntervalMonthDayNano(super::IntervalMonthDayNanoValue),
425        #[prost(message, tag = "34")]
426        FixedSizeBinaryValue(super::ScalarFixedSizeBinary),
427        #[prost(message, tag = "42")]
428        UnionValue(::prost::alloc::boxed::Box<super::UnionValue>),
429        #[prost(message, tag = "45")]
430        RunEndEncodedValue(::prost::alloc::boxed::Box<super::ScalarRunEndEncodedValue>),
431    }
432}
433#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
434pub struct Decimal32 {
435    #[prost(bytes = "vec", tag = "1")]
436    pub value: ::prost::alloc::vec::Vec<u8>,
437    #[prost(int64, tag = "2")]
438    pub p: i64,
439    #[prost(int64, tag = "3")]
440    pub s: i64,
441}
442#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
443pub struct Decimal64 {
444    #[prost(bytes = "vec", tag = "1")]
445    pub value: ::prost::alloc::vec::Vec<u8>,
446    #[prost(int64, tag = "2")]
447    pub p: i64,
448    #[prost(int64, tag = "3")]
449    pub s: i64,
450}
451#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
452pub struct Decimal128 {
453    #[prost(bytes = "vec", tag = "1")]
454    pub value: ::prost::alloc::vec::Vec<u8>,
455    #[prost(int64, tag = "2")]
456    pub p: i64,
457    #[prost(int64, tag = "3")]
458    pub s: i64,
459}
460#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
461pub struct Decimal256 {
462    #[prost(bytes = "vec", tag = "1")]
463    pub value: ::prost::alloc::vec::Vec<u8>,
464    #[prost(int64, tag = "2")]
465    pub p: i64,
466    #[prost(int64, tag = "3")]
467    pub s: i64,
468}
469/// Serialized data type
470#[derive(Clone, PartialEq, ::prost::Message)]
471pub struct ArrowType {
472    #[prost(
473        oneof = "arrow_type::ArrowTypeEnum",
474        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, 43, 44, 28, 29, 30, 33, 42"
475    )]
476    pub arrow_type_enum: ::core::option::Option<arrow_type::ArrowTypeEnum>,
477}
478/// Nested message and enum types in `ArrowType`.
479pub mod arrow_type {
480    #[derive(Clone, PartialEq, ::prost::Oneof)]
481    pub enum ArrowTypeEnum {
482        /// arrow::Type::NA
483        #[prost(message, tag = "1")]
484        None(super::EmptyMessage),
485        /// arrow::Type::BOOL
486        #[prost(message, tag = "2")]
487        Bool(super::EmptyMessage),
488        /// arrow::Type::UINT8
489        #[prost(message, tag = "3")]
490        Uint8(super::EmptyMessage),
491        /// arrow::Type::INT8
492        #[prost(message, tag = "4")]
493        Int8(super::EmptyMessage),
494        /// represents arrow::Type fields in src/arrow/type.h
495        #[prost(message, tag = "5")]
496        Uint16(super::EmptyMessage),
497        #[prost(message, tag = "6")]
498        Int16(super::EmptyMessage),
499        #[prost(message, tag = "7")]
500        Uint32(super::EmptyMessage),
501        #[prost(message, tag = "8")]
502        Int32(super::EmptyMessage),
503        #[prost(message, tag = "9")]
504        Uint64(super::EmptyMessage),
505        #[prost(message, tag = "10")]
506        Int64(super::EmptyMessage),
507        #[prost(message, tag = "11")]
508        Float16(super::EmptyMessage),
509        #[prost(message, tag = "12")]
510        Float32(super::EmptyMessage),
511        #[prost(message, tag = "13")]
512        Float64(super::EmptyMessage),
513        #[prost(message, tag = "14")]
514        Utf8(super::EmptyMessage),
515        #[prost(message, tag = "35")]
516        Utf8View(super::EmptyMessage),
517        #[prost(message, tag = "32")]
518        LargeUtf8(super::EmptyMessage),
519        #[prost(message, tag = "15")]
520        Binary(super::EmptyMessage),
521        #[prost(message, tag = "34")]
522        BinaryView(super::EmptyMessage),
523        #[prost(int32, tag = "16")]
524        FixedSizeBinary(i32),
525        #[prost(message, tag = "31")]
526        LargeBinary(super::EmptyMessage),
527        #[prost(message, tag = "17")]
528        Date32(super::EmptyMessage),
529        #[prost(message, tag = "18")]
530        Date64(super::EmptyMessage),
531        #[prost(enumeration = "super::TimeUnit", tag = "19")]
532        Duration(i32),
533        #[prost(message, tag = "20")]
534        Timestamp(super::Timestamp),
535        #[prost(enumeration = "super::TimeUnit", tag = "21")]
536        Time32(i32),
537        #[prost(enumeration = "super::TimeUnit", tag = "22")]
538        Time64(i32),
539        #[prost(enumeration = "super::IntervalUnit", tag = "23")]
540        Interval(i32),
541        #[prost(message, tag = "40")]
542        Decimal32(super::Decimal32Type),
543        #[prost(message, tag = "41")]
544        Decimal64(super::Decimal64Type),
545        #[prost(message, tag = "24")]
546        Decimal128(super::Decimal128Type),
547        #[prost(message, tag = "36")]
548        Decimal256(super::Decimal256Type),
549        #[prost(message, tag = "25")]
550        List(::prost::alloc::boxed::Box<super::List>),
551        #[prost(message, tag = "26")]
552        LargeList(::prost::alloc::boxed::Box<super::List>),
553        #[prost(message, tag = "27")]
554        FixedSizeList(::prost::alloc::boxed::Box<super::FixedSizeList>),
555        #[prost(message, tag = "43")]
556        ListView(::prost::alloc::boxed::Box<super::List>),
557        #[prost(message, tag = "44")]
558        LargeListView(::prost::alloc::boxed::Box<super::List>),
559        #[prost(message, tag = "28")]
560        Struct(super::Struct),
561        #[prost(message, tag = "29")]
562        Union(super::Union),
563        #[prost(message, tag = "30")]
564        Dictionary(::prost::alloc::boxed::Box<super::Dictionary>),
565        #[prost(message, tag = "33")]
566        Map(::prost::alloc::boxed::Box<super::Map>),
567        #[prost(message, tag = "42")]
568        RunEndEncoded(::prost::alloc::boxed::Box<super::RunEndEncoded>),
569    }
570}
571/// Useful for representing an empty enum variant in rust
572/// E.G. enum example{One, Two(i32)}
573/// maps to
574/// message example{
575///     oneof{
576///         EmptyMessage One = 1;
577///         i32 Two = 2;
578///    }
579/// }
580#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
581pub struct EmptyMessage {}
582#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
583pub struct JsonWriterOptions {
584    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
585    pub compression: i32,
586}
587#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
588pub struct CsvWriterOptions {
589    /// Compression type
590    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
591    pub compression: i32,
592    /// Optional column delimiter. Defaults to `b','`
593    #[prost(string, tag = "2")]
594    pub delimiter: ::prost::alloc::string::String,
595    /// Whether to write column names as file headers. Defaults to `true`
596    #[prost(bool, tag = "3")]
597    pub has_header: bool,
598    /// Optional date format for date arrays
599    #[prost(string, tag = "4")]
600    pub date_format: ::prost::alloc::string::String,
601    /// Optional datetime format for datetime arrays
602    #[prost(string, tag = "5")]
603    pub datetime_format: ::prost::alloc::string::String,
604    /// Optional timestamp format for timestamp arrays
605    #[prost(string, tag = "6")]
606    pub timestamp_format: ::prost::alloc::string::String,
607    /// Optional time format for time arrays
608    #[prost(string, tag = "7")]
609    pub time_format: ::prost::alloc::string::String,
610    /// Optional value to represent null
611    #[prost(string, tag = "8")]
612    pub null_value: ::prost::alloc::string::String,
613    /// Optional quote. Defaults to `b'"'`
614    #[prost(string, tag = "9")]
615    pub quote: ::prost::alloc::string::String,
616    /// Optional escape. Defaults to `'\\'`
617    #[prost(string, tag = "10")]
618    pub escape: ::prost::alloc::string::String,
619    /// Optional flag whether to double quotes, instead of escaping. Defaults to `true`
620    #[prost(bool, tag = "11")]
621    pub double_quote: bool,
622    /// Quote style for CSV writing
623    #[prost(enumeration = "CsvQuoteStyle", tag = "12")]
624    pub quote_style: i32,
625    /// Whether to ignore leading whitespace in string values
626    #[prost(bool, tag = "13")]
627    pub ignore_leading_whitespace: bool,
628    /// Whether to ignore trailing whitespace in string values
629    #[prost(bool, tag = "14")]
630    pub ignore_trailing_whitespace: bool,
631}
632/// Options controlling CSV format
633#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
634pub struct CsvOptions {
635    /// Indicates if the CSV has a header row
636    #[prost(bytes = "vec", tag = "1")]
637    pub has_header: ::prost::alloc::vec::Vec<u8>,
638    /// Delimiter character as a byte
639    #[prost(bytes = "vec", tag = "2")]
640    pub delimiter: ::prost::alloc::vec::Vec<u8>,
641    /// Quote character as a byte
642    #[prost(bytes = "vec", tag = "3")]
643    pub quote: ::prost::alloc::vec::Vec<u8>,
644    /// Optional escape character as a byte
645    #[prost(bytes = "vec", tag = "4")]
646    pub escape: ::prost::alloc::vec::Vec<u8>,
647    /// Compression type
648    #[prost(enumeration = "CompressionTypeVariant", tag = "5")]
649    pub compression: i32,
650    /// Optional max records for schema inference
651    #[prost(uint64, optional, tag = "6")]
652    pub schema_infer_max_rec: ::core::option::Option<u64>,
653    /// Optional date format
654    #[prost(string, tag = "7")]
655    pub date_format: ::prost::alloc::string::String,
656    /// Optional datetime format
657    #[prost(string, tag = "8")]
658    pub datetime_format: ::prost::alloc::string::String,
659    /// Optional timestamp format
660    #[prost(string, tag = "9")]
661    pub timestamp_format: ::prost::alloc::string::String,
662    /// Optional timestamp with timezone format
663    #[prost(string, tag = "10")]
664    pub timestamp_tz_format: ::prost::alloc::string::String,
665    /// Optional time format
666    #[prost(string, tag = "11")]
667    pub time_format: ::prost::alloc::string::String,
668    /// Optional representation of null value
669    #[prost(string, tag = "12")]
670    pub null_value: ::prost::alloc::string::String,
671    /// Optional representation of null loading regex
672    #[prost(string, tag = "13")]
673    pub null_regex: ::prost::alloc::string::String,
674    /// Optional comment character as a byte
675    #[prost(bytes = "vec", tag = "14")]
676    pub comment: ::prost::alloc::vec::Vec<u8>,
677    /// Indicates if quotes are doubled
678    #[prost(bytes = "vec", tag = "15")]
679    pub double_quote: ::prost::alloc::vec::Vec<u8>,
680    /// Indicates if newlines are supported in values
681    #[prost(bytes = "vec", tag = "16")]
682    pub newlines_in_values: ::prost::alloc::vec::Vec<u8>,
683    /// Optional terminator character as a byte
684    #[prost(bytes = "vec", tag = "17")]
685    pub terminator: ::prost::alloc::vec::Vec<u8>,
686    /// Indicates if truncated rows are allowed
687    #[prost(bytes = "vec", tag = "18")]
688    pub truncated_rows: ::prost::alloc::vec::Vec<u8>,
689    /// Optional compression level
690    #[prost(uint32, optional, tag = "19")]
691    pub compression_level: ::core::option::Option<u32>,
692    /// Quote style for CSV writing
693    #[prost(enumeration = "CsvQuoteStyle", tag = "20")]
694    pub quote_style: i32,
695    /// Whether to ignore leading whitespace in string values
696    #[prost(bytes = "vec", tag = "21")]
697    pub ignore_leading_whitespace: ::prost::alloc::vec::Vec<u8>,
698    /// Whether to ignore trailing whitespace in string values
699    #[prost(bytes = "vec", tag = "22")]
700    pub ignore_trailing_whitespace: ::prost::alloc::vec::Vec<u8>,
701}
702/// Options controlling CSV format
703#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
704pub struct JsonOptions {
705    /// Compression type
706    #[prost(enumeration = "CompressionTypeVariant", tag = "1")]
707    pub compression: i32,
708    /// Optional max records for schema inference
709    #[prost(uint64, optional, tag = "2")]
710    pub schema_infer_max_rec: ::core::option::Option<u64>,
711    /// Optional compression level
712    #[prost(uint32, optional, tag = "3")]
713    pub compression_level: ::core::option::Option<u32>,
714    /// Whether to read as newline-delimited JSON (default true). When false, expects JSON array format \[{},...\]
715    #[prost(bool, optional, tag = "4")]
716    pub newline_delimited: ::core::option::Option<bool>,
717}
718#[derive(Clone, PartialEq, ::prost::Message)]
719pub struct TableParquetOptions {
720    #[prost(message, optional, tag = "1")]
721    pub global: ::core::option::Option<ParquetOptions>,
722    #[prost(message, repeated, tag = "2")]
723    pub column_specific_options: ::prost::alloc::vec::Vec<ParquetColumnSpecificOptions>,
724    #[prost(map = "string, string", tag = "3")]
725    pub key_value_metadata: ::std::collections::HashMap<
726        ::prost::alloc::string::String,
727        ::prost::alloc::string::String,
728    >,
729}
730#[derive(Clone, PartialEq, ::prost::Message)]
731pub struct ParquetColumnSpecificOptions {
732    #[prost(string, tag = "1")]
733    pub column_name: ::prost::alloc::string::String,
734    #[prost(message, optional, tag = "2")]
735    pub options: ::core::option::Option<ParquetColumnOptions>,
736}
737#[derive(Clone, PartialEq, ::prost::Message)]
738pub struct ParquetColumnOptions {
739    #[prost(oneof = "parquet_column_options::BloomFilterEnabledOpt", tags = "1")]
740    pub bloom_filter_enabled_opt: ::core::option::Option<
741        parquet_column_options::BloomFilterEnabledOpt,
742    >,
743    #[prost(oneof = "parquet_column_options::EncodingOpt", tags = "2")]
744    pub encoding_opt: ::core::option::Option<parquet_column_options::EncodingOpt>,
745    #[prost(oneof = "parquet_column_options::DictionaryEnabledOpt", tags = "3")]
746    pub dictionary_enabled_opt: ::core::option::Option<
747        parquet_column_options::DictionaryEnabledOpt,
748    >,
749    #[prost(oneof = "parquet_column_options::CompressionOpt", tags = "4")]
750    pub compression_opt: ::core::option::Option<parquet_column_options::CompressionOpt>,
751    #[prost(oneof = "parquet_column_options::StatisticsEnabledOpt", tags = "5")]
752    pub statistics_enabled_opt: ::core::option::Option<
753        parquet_column_options::StatisticsEnabledOpt,
754    >,
755    #[prost(oneof = "parquet_column_options::BloomFilterFppOpt", tags = "6")]
756    pub bloom_filter_fpp_opt: ::core::option::Option<
757        parquet_column_options::BloomFilterFppOpt,
758    >,
759    #[prost(oneof = "parquet_column_options::BloomFilterNdvOpt", tags = "7")]
760    pub bloom_filter_ndv_opt: ::core::option::Option<
761        parquet_column_options::BloomFilterNdvOpt,
762    >,
763}
764/// Nested message and enum types in `ParquetColumnOptions`.
765pub mod parquet_column_options {
766    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
767    pub enum BloomFilterEnabledOpt {
768        #[prost(bool, tag = "1")]
769        BloomFilterEnabled(bool),
770    }
771    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
772    pub enum EncodingOpt {
773        #[prost(string, tag = "2")]
774        Encoding(::prost::alloc::string::String),
775    }
776    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
777    pub enum DictionaryEnabledOpt {
778        #[prost(bool, tag = "3")]
779        DictionaryEnabled(bool),
780    }
781    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
782    pub enum CompressionOpt {
783        #[prost(string, tag = "4")]
784        Compression(::prost::alloc::string::String),
785    }
786    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
787    pub enum StatisticsEnabledOpt {
788        #[prost(string, tag = "5")]
789        StatisticsEnabled(::prost::alloc::string::String),
790    }
791    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
792    pub enum BloomFilterFppOpt {
793        #[prost(double, tag = "6")]
794        BloomFilterFpp(f64),
795    }
796    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
797    pub enum BloomFilterNdvOpt {
798        #[prost(uint64, tag = "7")]
799        BloomFilterNdv(u64),
800    }
801}
802#[derive(Clone, PartialEq, ::prost::Message)]
803pub struct ParquetOptions {
804    /// Regular fields
805    ///
806    /// default = true
807    #[prost(bool, tag = "1")]
808    pub enable_page_index: bool,
809    /// default = true
810    #[prost(bool, tag = "2")]
811    pub pruning: bool,
812    /// default = true
813    #[prost(bool, tag = "3")]
814    pub skip_metadata: bool,
815    /// default = false
816    #[prost(bool, tag = "5")]
817    pub pushdown_filters: bool,
818    /// default = false
819    #[prost(bool, tag = "6")]
820    pub reorder_filters: bool,
821    /// default = false
822    #[prost(bool, tag = "34")]
823    pub force_filter_selections: bool,
824    /// default = 1024 * 1024
825    #[prost(uint64, tag = "7")]
826    pub data_pagesize_limit: u64,
827    /// default = 1024
828    #[prost(uint64, tag = "8")]
829    pub write_batch_size: u64,
830    /// default = "1.0"
831    #[prost(string, tag = "9")]
832    pub writer_version: ::prost::alloc::string::String,
833    /// bool bloom_filter_enabled = 20; // default = false
834    ///
835    /// default = true
836    #[prost(bool, tag = "23")]
837    pub allow_single_file_parallelism: bool,
838    /// default = 1
839    #[prost(uint64, tag = "24")]
840    pub maximum_parallel_row_group_writers: u64,
841    /// default = 2
842    #[prost(uint64, tag = "25")]
843    pub maximum_buffered_record_batches_per_stream: u64,
844    /// default = true
845    #[prost(bool, tag = "26")]
846    pub bloom_filter_on_read: bool,
847    /// default = false
848    #[prost(bool, tag = "27")]
849    pub bloom_filter_on_write: bool,
850    /// default = false
851    #[prost(bool, tag = "28")]
852    pub schema_force_view_types: bool,
853    /// default = false
854    #[prost(bool, tag = "29")]
855    pub binary_as_string: bool,
856    /// default = false
857    #[prost(bool, tag = "30")]
858    pub skip_arrow_metadata: bool,
859    #[prost(uint64, tag = "12")]
860    pub dictionary_page_size_limit: u64,
861    #[prost(uint64, tag = "18")]
862    pub data_page_row_count_limit: u64,
863    #[prost(uint64, tag = "15")]
864    pub max_row_group_size: u64,
865    #[prost(string, tag = "16")]
866    pub created_by: ::prost::alloc::string::String,
867    #[prost(message, optional, tag = "35")]
868    pub content_defined_chunking: ::core::option::Option<ParquetCdcOptions>,
869    #[prost(oneof = "parquet_options::MetadataSizeHintOpt", tags = "4")]
870    pub metadata_size_hint_opt: ::core::option::Option<
871        parquet_options::MetadataSizeHintOpt,
872    >,
873    #[prost(oneof = "parquet_options::CompressionOpt", tags = "10")]
874    pub compression_opt: ::core::option::Option<parquet_options::CompressionOpt>,
875    #[prost(oneof = "parquet_options::DictionaryEnabledOpt", tags = "11")]
876    pub dictionary_enabled_opt: ::core::option::Option<
877        parquet_options::DictionaryEnabledOpt,
878    >,
879    #[prost(oneof = "parquet_options::StatisticsEnabledOpt", tags = "13")]
880    pub statistics_enabled_opt: ::core::option::Option<
881        parquet_options::StatisticsEnabledOpt,
882    >,
883    #[prost(oneof = "parquet_options::ColumnIndexTruncateLengthOpt", tags = "17")]
884    pub column_index_truncate_length_opt: ::core::option::Option<
885        parquet_options::ColumnIndexTruncateLengthOpt,
886    >,
887    #[prost(oneof = "parquet_options::StatisticsTruncateLengthOpt", tags = "31")]
888    pub statistics_truncate_length_opt: ::core::option::Option<
889        parquet_options::StatisticsTruncateLengthOpt,
890    >,
891    #[prost(oneof = "parquet_options::EncodingOpt", tags = "19")]
892    pub encoding_opt: ::core::option::Option<parquet_options::EncodingOpt>,
893    #[prost(oneof = "parquet_options::BloomFilterFppOpt", tags = "21")]
894    pub bloom_filter_fpp_opt: ::core::option::Option<parquet_options::BloomFilterFppOpt>,
895    #[prost(oneof = "parquet_options::BloomFilterNdvOpt", tags = "22")]
896    pub bloom_filter_ndv_opt: ::core::option::Option<parquet_options::BloomFilterNdvOpt>,
897    #[prost(oneof = "parquet_options::CoerceInt96Opt", tags = "32")]
898    pub coerce_int96_opt: ::core::option::Option<parquet_options::CoerceInt96Opt>,
899    #[prost(oneof = "parquet_options::MaxPredicateCacheSizeOpt", tags = "33")]
900    pub max_predicate_cache_size_opt: ::core::option::Option<
901        parquet_options::MaxPredicateCacheSizeOpt,
902    >,
903    /// Optional timezone applied to INT96-coerced timestamps when `coerce_int96`
904    /// is set. When `Some`, INT96 columns coerce to
905    /// `Timestamp(<coerce_int96>, Some(<tz>))` instead of the default
906    /// `Timestamp(<coerce_int96>, None)`. No effect when `coerce_int96` is unset.
907    #[prost(oneof = "parquet_options::CoerceInt96TzOpt", tags = "36")]
908    pub coerce_int96_tz_opt: ::core::option::Option<parquet_options::CoerceInt96TzOpt>,
909}
910/// Nested message and enum types in `ParquetOptions`.
911pub mod parquet_options {
912    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
913    pub enum MetadataSizeHintOpt {
914        #[prost(uint64, tag = "4")]
915        MetadataSizeHint(u64),
916    }
917    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
918    pub enum CompressionOpt {
919        #[prost(string, tag = "10")]
920        Compression(::prost::alloc::string::String),
921    }
922    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
923    pub enum DictionaryEnabledOpt {
924        #[prost(bool, tag = "11")]
925        DictionaryEnabled(bool),
926    }
927    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
928    pub enum StatisticsEnabledOpt {
929        #[prost(string, tag = "13")]
930        StatisticsEnabled(::prost::alloc::string::String),
931    }
932    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
933    pub enum ColumnIndexTruncateLengthOpt {
934        #[prost(uint64, tag = "17")]
935        ColumnIndexTruncateLength(u64),
936    }
937    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
938    pub enum StatisticsTruncateLengthOpt {
939        #[prost(uint64, tag = "31")]
940        StatisticsTruncateLength(u64),
941    }
942    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
943    pub enum EncodingOpt {
944        #[prost(string, tag = "19")]
945        Encoding(::prost::alloc::string::String),
946    }
947    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
948    pub enum BloomFilterFppOpt {
949        #[prost(double, tag = "21")]
950        BloomFilterFpp(f64),
951    }
952    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
953    pub enum BloomFilterNdvOpt {
954        #[prost(uint64, tag = "22")]
955        BloomFilterNdv(u64),
956    }
957    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
958    pub enum CoerceInt96Opt {
959        #[prost(string, tag = "32")]
960        CoerceInt96(::prost::alloc::string::String),
961    }
962    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
963    pub enum MaxPredicateCacheSizeOpt {
964        #[prost(uint64, tag = "33")]
965        MaxPredicateCacheSize(u64),
966    }
967    /// Optional timezone applied to INT96-coerced timestamps when `coerce_int96`
968    /// is set. When `Some`, INT96 columns coerce to
969    /// `Timestamp(<coerce_int96>, Some(<tz>))` instead of the default
970    /// `Timestamp(<coerce_int96>, None)`. No effect when `coerce_int96` is unset.
971    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
972    pub enum CoerceInt96TzOpt {
973        #[prost(string, tag = "36")]
974        CoerceInt96Tz(::prost::alloc::string::String),
975    }
976}
977/// Content-defined chunking (CDC) options for writing parquet files.
978#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
979pub struct ParquetCdcOptions {
980    #[prost(bool, tag = "1")]
981    pub enabled: bool,
982    #[prost(uint64, tag = "2")]
983    pub min_chunk_size: u64,
984    #[prost(uint64, tag = "3")]
985    pub max_chunk_size: u64,
986    #[prost(int32, tag = "4")]
987    pub norm_level: i32,
988}
989#[derive(Clone, PartialEq, ::prost::Message)]
990pub struct Precision {
991    #[prost(enumeration = "PrecisionInfo", tag = "1")]
992    pub precision_info: i32,
993    #[prost(message, optional, tag = "2")]
994    pub val: ::core::option::Option<ScalarValue>,
995}
996#[derive(Clone, PartialEq, ::prost::Message)]
997pub struct Statistics {
998    #[prost(message, optional, tag = "1")]
999    pub num_rows: ::core::option::Option<Precision>,
1000    #[prost(message, optional, tag = "2")]
1001    pub total_byte_size: ::core::option::Option<Precision>,
1002    #[prost(message, repeated, tag = "3")]
1003    pub column_stats: ::prost::alloc::vec::Vec<ColumnStats>,
1004}
1005#[derive(Clone, PartialEq, ::prost::Message)]
1006pub struct ColumnStats {
1007    #[prost(message, optional, tag = "1")]
1008    pub min_value: ::core::option::Option<Precision>,
1009    #[prost(message, optional, tag = "2")]
1010    pub max_value: ::core::option::Option<Precision>,
1011    #[prost(message, optional, tag = "5")]
1012    pub sum_value: ::core::option::Option<Precision>,
1013    #[prost(message, optional, tag = "3")]
1014    pub null_count: ::core::option::Option<Precision>,
1015    #[prost(message, optional, tag = "4")]
1016    pub distinct_count: ::core::option::Option<Precision>,
1017    #[prost(message, optional, tag = "6")]
1018    pub byte_size: ::core::option::Option<Precision>,
1019}
1020#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1021#[repr(i32)]
1022pub enum JoinType {
1023    Inner = 0,
1024    Left = 1,
1025    Right = 2,
1026    Full = 3,
1027    Leftsemi = 4,
1028    Leftanti = 5,
1029    Rightsemi = 6,
1030    Rightanti = 7,
1031    Leftmark = 8,
1032    Rightmark = 9,
1033}
1034impl JoinType {
1035    /// String value of the enum field names used in the ProtoBuf definition.
1036    ///
1037    /// The values are not transformed in any way and thus are considered stable
1038    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1039    pub fn as_str_name(&self) -> &'static str {
1040        match self {
1041            Self::Inner => "INNER",
1042            Self::Left => "LEFT",
1043            Self::Right => "RIGHT",
1044            Self::Full => "FULL",
1045            Self::Leftsemi => "LEFTSEMI",
1046            Self::Leftanti => "LEFTANTI",
1047            Self::Rightsemi => "RIGHTSEMI",
1048            Self::Rightanti => "RIGHTANTI",
1049            Self::Leftmark => "LEFTMARK",
1050            Self::Rightmark => "RIGHTMARK",
1051        }
1052    }
1053    /// Creates an enum from field names used in the ProtoBuf definition.
1054    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1055        match value {
1056            "INNER" => Some(Self::Inner),
1057            "LEFT" => Some(Self::Left),
1058            "RIGHT" => Some(Self::Right),
1059            "FULL" => Some(Self::Full),
1060            "LEFTSEMI" => Some(Self::Leftsemi),
1061            "LEFTANTI" => Some(Self::Leftanti),
1062            "RIGHTSEMI" => Some(Self::Rightsemi),
1063            "RIGHTANTI" => Some(Self::Rightanti),
1064            "LEFTMARK" => Some(Self::Leftmark),
1065            "RIGHTMARK" => Some(Self::Rightmark),
1066            _ => None,
1067        }
1068    }
1069}
1070#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1071#[repr(i32)]
1072pub enum JoinConstraint {
1073    On = 0,
1074    Using = 1,
1075}
1076impl JoinConstraint {
1077    /// String value of the enum field names used in the ProtoBuf definition.
1078    ///
1079    /// The values are not transformed in any way and thus are considered stable
1080    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1081    pub fn as_str_name(&self) -> &'static str {
1082        match self {
1083            Self::On => "ON",
1084            Self::Using => "USING",
1085        }
1086    }
1087    /// Creates an enum from field names used in the ProtoBuf definition.
1088    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1089        match value {
1090            "ON" => Some(Self::On),
1091            "USING" => Some(Self::Using),
1092            _ => None,
1093        }
1094    }
1095}
1096#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1097#[repr(i32)]
1098pub enum NullEquality {
1099    NullEqualsNothing = 0,
1100    NullEqualsNull = 1,
1101}
1102impl NullEquality {
1103    /// String value of the enum field names used in the ProtoBuf definition.
1104    ///
1105    /// The values are not transformed in any way and thus are considered stable
1106    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1107    pub fn as_str_name(&self) -> &'static str {
1108        match self {
1109            Self::NullEqualsNothing => "NULL_EQUALS_NOTHING",
1110            Self::NullEqualsNull => "NULL_EQUALS_NULL",
1111        }
1112    }
1113    /// Creates an enum from field names used in the ProtoBuf definition.
1114    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1115        match value {
1116            "NULL_EQUALS_NOTHING" => Some(Self::NullEqualsNothing),
1117            "NULL_EQUALS_NULL" => Some(Self::NullEqualsNull),
1118            _ => None,
1119        }
1120    }
1121}
1122#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1123#[repr(i32)]
1124pub enum TimeUnit {
1125    Second = 0,
1126    Millisecond = 1,
1127    Microsecond = 2,
1128    Nanosecond = 3,
1129}
1130impl TimeUnit {
1131    /// String value of the enum field names used in the ProtoBuf definition.
1132    ///
1133    /// The values are not transformed in any way and thus are considered stable
1134    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1135    pub fn as_str_name(&self) -> &'static str {
1136        match self {
1137            Self::Second => "Second",
1138            Self::Millisecond => "Millisecond",
1139            Self::Microsecond => "Microsecond",
1140            Self::Nanosecond => "Nanosecond",
1141        }
1142    }
1143    /// Creates an enum from field names used in the ProtoBuf definition.
1144    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1145        match value {
1146            "Second" => Some(Self::Second),
1147            "Millisecond" => Some(Self::Millisecond),
1148            "Microsecond" => Some(Self::Microsecond),
1149            "Nanosecond" => Some(Self::Nanosecond),
1150            _ => None,
1151        }
1152    }
1153}
1154#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1155#[repr(i32)]
1156pub enum IntervalUnit {
1157    YearMonth = 0,
1158    DayTime = 1,
1159    MonthDayNano = 2,
1160}
1161impl IntervalUnit {
1162    /// String value of the enum field names used in the ProtoBuf definition.
1163    ///
1164    /// The values are not transformed in any way and thus are considered stable
1165    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1166    pub fn as_str_name(&self) -> &'static str {
1167        match self {
1168            Self::YearMonth => "YearMonth",
1169            Self::DayTime => "DayTime",
1170            Self::MonthDayNano => "MonthDayNano",
1171        }
1172    }
1173    /// Creates an enum from field names used in the ProtoBuf definition.
1174    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1175        match value {
1176            "YearMonth" => Some(Self::YearMonth),
1177            "DayTime" => Some(Self::DayTime),
1178            "MonthDayNano" => Some(Self::MonthDayNano),
1179            _ => None,
1180        }
1181    }
1182}
1183#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1184#[repr(i32)]
1185pub enum UnionMode {
1186    Sparse = 0,
1187    Dense = 1,
1188}
1189impl UnionMode {
1190    /// String value of the enum field names used in the ProtoBuf definition.
1191    ///
1192    /// The values are not transformed in any way and thus are considered stable
1193    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1194    pub fn as_str_name(&self) -> &'static str {
1195        match self {
1196            Self::Sparse => "sparse",
1197            Self::Dense => "dense",
1198        }
1199    }
1200    /// Creates an enum from field names used in the ProtoBuf definition.
1201    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1202        match value {
1203            "sparse" => Some(Self::Sparse),
1204            "dense" => Some(Self::Dense),
1205            _ => None,
1206        }
1207    }
1208}
1209#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1210#[repr(i32)]
1211pub enum CompressionTypeVariant {
1212    Gzip = 0,
1213    Bzip2 = 1,
1214    Xz = 2,
1215    Zstd = 3,
1216    Uncompressed = 4,
1217}
1218impl CompressionTypeVariant {
1219    /// String value of the enum field names used in the ProtoBuf definition.
1220    ///
1221    /// The values are not transformed in any way and thus are considered stable
1222    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1223    pub fn as_str_name(&self) -> &'static str {
1224        match self {
1225            Self::Gzip => "GZIP",
1226            Self::Bzip2 => "BZIP2",
1227            Self::Xz => "XZ",
1228            Self::Zstd => "ZSTD",
1229            Self::Uncompressed => "UNCOMPRESSED",
1230        }
1231    }
1232    /// Creates an enum from field names used in the ProtoBuf definition.
1233    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1234        match value {
1235            "GZIP" => Some(Self::Gzip),
1236            "BZIP2" => Some(Self::Bzip2),
1237            "XZ" => Some(Self::Xz),
1238            "ZSTD" => Some(Self::Zstd),
1239            "UNCOMPRESSED" => Some(Self::Uncompressed),
1240            _ => None,
1241        }
1242    }
1243}
1244#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1245#[repr(i32)]
1246pub enum CsvQuoteStyle {
1247    Necessary = 0,
1248    Always = 1,
1249    NonNumeric = 2,
1250    Never = 3,
1251}
1252impl CsvQuoteStyle {
1253    /// String value of the enum field names used in the ProtoBuf definition.
1254    ///
1255    /// The values are not transformed in any way and thus are considered stable
1256    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1257    pub fn as_str_name(&self) -> &'static str {
1258        match self {
1259            Self::Necessary => "NECESSARY",
1260            Self::Always => "ALWAYS",
1261            Self::NonNumeric => "NON_NUMERIC",
1262            Self::Never => "NEVER",
1263        }
1264    }
1265    /// Creates an enum from field names used in the ProtoBuf definition.
1266    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1267        match value {
1268            "NECESSARY" => Some(Self::Necessary),
1269            "ALWAYS" => Some(Self::Always),
1270            "NON_NUMERIC" => Some(Self::NonNumeric),
1271            "NEVER" => Some(Self::Never),
1272            _ => None,
1273        }
1274    }
1275}
1276#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1277#[repr(i32)]
1278pub enum JoinSide {
1279    LeftSide = 0,
1280    RightSide = 1,
1281    None = 2,
1282}
1283impl JoinSide {
1284    /// String value of the enum field names used in the ProtoBuf definition.
1285    ///
1286    /// The values are not transformed in any way and thus are considered stable
1287    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1288    pub fn as_str_name(&self) -> &'static str {
1289        match self {
1290            Self::LeftSide => "LEFT_SIDE",
1291            Self::RightSide => "RIGHT_SIDE",
1292            Self::None => "NONE",
1293        }
1294    }
1295    /// Creates an enum from field names used in the ProtoBuf definition.
1296    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1297        match value {
1298            "LEFT_SIDE" => Some(Self::LeftSide),
1299            "RIGHT_SIDE" => Some(Self::RightSide),
1300            "NONE" => Some(Self::None),
1301            _ => None,
1302        }
1303    }
1304}
1305#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1306#[repr(i32)]
1307pub enum PrecisionInfo {
1308    Exact = 0,
1309    Inexact = 1,
1310    Absent = 2,
1311}
1312impl PrecisionInfo {
1313    /// String value of the enum field names used in the ProtoBuf definition.
1314    ///
1315    /// The values are not transformed in any way and thus are considered stable
1316    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1317    pub fn as_str_name(&self) -> &'static str {
1318        match self {
1319            Self::Exact => "EXACT",
1320            Self::Inexact => "INEXACT",
1321            Self::Absent => "ABSENT",
1322        }
1323    }
1324    /// Creates an enum from field names used in the ProtoBuf definition.
1325    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1326        match value {
1327            "EXACT" => Some(Self::Exact),
1328            "INEXACT" => Some(Self::Inexact),
1329            "ABSENT" => Some(Self::Absent),
1330            _ => None,
1331        }
1332    }
1333}
1334#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1335#[repr(i32)]
1336pub enum ExplainFormat {
1337    Indent = 0,
1338    Tree = 1,
1339    Pgjson = 2,
1340    Graphviz = 3,
1341}
1342impl ExplainFormat {
1343    /// String value of the enum field names used in the ProtoBuf definition.
1344    ///
1345    /// The values are not transformed in any way and thus are considered stable
1346    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1347    pub fn as_str_name(&self) -> &'static str {
1348        match self {
1349            Self::Indent => "EXPLAIN_FORMAT_INDENT",
1350            Self::Tree => "EXPLAIN_FORMAT_TREE",
1351            Self::Pgjson => "EXPLAIN_FORMAT_PGJSON",
1352            Self::Graphviz => "EXPLAIN_FORMAT_GRAPHVIZ",
1353        }
1354    }
1355    /// Creates an enum from field names used in the ProtoBuf definition.
1356    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1357        match value {
1358            "EXPLAIN_FORMAT_INDENT" => Some(Self::Indent),
1359            "EXPLAIN_FORMAT_TREE" => Some(Self::Tree),
1360            "EXPLAIN_FORMAT_PGJSON" => Some(Self::Pgjson),
1361            "EXPLAIN_FORMAT_GRAPHVIZ" => Some(Self::Graphviz),
1362            _ => None,
1363        }
1364    }
1365}