risingwave_pb/
plan_common.rs

1// This file is @generated by prost-build.
2/// Field is a column in the streaming or batch plan.
3#[derive(prost_helpers::AnyPB)]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct Field {
6    #[prost(message, optional, tag = "1")]
7    pub data_type: ::core::option::Option<super::data::DataType>,
8    #[prost(string, tag = "2")]
9    pub name: ::prost::alloc::string::String,
10}
11#[derive(prost_helpers::AnyPB)]
12#[derive(Eq, Hash)]
13#[derive(Clone, PartialEq, ::prost::Message)]
14#[prost(skip_debug)]
15pub struct ColumnDesc {
16    #[prost(message, optional, tag = "1")]
17    pub column_type: ::core::option::Option<super::data::DataType>,
18    #[prost(int32, tag = "2")]
19    pub column_id: i32,
20    /// we store the column name in column desc now just for debug, but in future
21    /// we should store it in ColumnCatalog but not here
22    #[prost(string, tag = "3")]
23    pub name: ::prost::alloc::string::String,
24    /// This field is used to store the description set by the `comment on` clause.
25    #[prost(string, optional, tag = "8")]
26    pub description: ::core::option::Option<::prost::alloc::string::String>,
27    /// deprecated, use AdditionalColumn instead, keep for compatibility with v1.6.x
28    #[prost(enumeration = "AdditionalColumnType", tag = "9")]
29    pub additional_column_type: i32,
30    #[prost(enumeration = "ColumnDescVersion", tag = "10")]
31    pub version: i32,
32    #[prost(message, optional, tag = "11")]
33    pub additional_column: ::core::option::Option<AdditionalColumn>,
34    #[prost(bool, optional, tag = "12")]
35    pub nullable: ::core::option::Option<bool>,
36    /// Optional description for the generated column or default value.
37    #[prost(oneof = "column_desc::GeneratedOrDefaultColumn", tags = "6, 7")]
38    pub generated_or_default_column: ::core::option::Option<
39        column_desc::GeneratedOrDefaultColumn,
40    >,
41}
42/// Nested message and enum types in `ColumnDesc`.
43pub mod column_desc {
44    /// Optional description for the generated column or default value.
45    #[derive(prost_helpers::AnyPB)]
46    #[derive(Eq, Hash)]
47    #[derive(Clone, PartialEq, ::prost::Oneof)]
48    #[prost(skip_debug)]
49    pub enum GeneratedOrDefaultColumn {
50        #[prost(message, tag = "6")]
51        GeneratedColumn(super::GeneratedColumnDesc),
52        #[prost(message, tag = "7")]
53        DefaultColumn(super::DefaultColumnDesc),
54    }
55}
56#[derive(prost_helpers::AnyPB)]
57#[derive(Clone, PartialEq, ::prost::Message)]
58pub struct ColumnCatalog {
59    #[prost(message, optional, tag = "1")]
60    pub column_desc: ::core::option::Option<ColumnDesc>,
61    #[prost(bool, tag = "2")]
62    pub is_hidden: bool,
63}
64#[derive(prost_helpers::AnyPB)]
65#[derive(Eq, Hash)]
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct GeneratedColumnDesc {
68    #[prost(message, optional, tag = "1")]
69    pub expr: ::core::option::Option<super::expr::ExprNode>,
70}
71#[derive(prost_helpers::AnyPB)]
72#[derive(Eq, Hash)]
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct DefaultColumnDesc {
75    /// Expression of the `DEFAULT`. Used when inserting new records.
76    #[prost(message, optional, tag = "1")]
77    pub expr: ::core::option::Option<super::expr::ExprNode>,
78    /// Evaluated value of the expression at the time of the table creation or the
79    /// column addition. Used when filling the default value for the records where
80    /// the column is missing.
81    #[prost(message, optional, tag = "2")]
82    pub snapshot_value: ::core::option::Option<super::data::Datum>,
83}
84#[derive(prost_helpers::AnyPB)]
85#[derive(Clone, PartialEq, ::prost::Message)]
86pub struct StorageTableDesc {
87    #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
88    pub table_id: crate::id::TableId,
89    #[prost(message, repeated, tag = "2")]
90    pub columns: ::prost::alloc::vec::Vec<ColumnDesc>,
91    /// TODO: may refactor primary key representations
92    #[prost(message, repeated, tag = "3")]
93    pub pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
94    #[prost(uint32, repeated, tag = "4")]
95    pub dist_key_in_pk_indices: ::prost::alloc::vec::Vec<u32>,
96    #[prost(uint32, repeated, tag = "6")]
97    pub value_indices: ::prost::alloc::vec::Vec<u32>,
98    #[prost(uint32, tag = "7")]
99    pub read_prefix_len_hint: u32,
100    /// Whether the table is versioned. If `true`, column-aware row encoding will
101    /// be used to be compatible with schema changes.
102    #[prost(bool, tag = "8")]
103    pub versioned: bool,
104    #[prost(uint32, repeated, tag = "9")]
105    pub stream_key: ::prost::alloc::vec::Vec<u32>,
106    #[prost(uint32, optional, tag = "10")]
107    pub vnode_col_idx_in_pk: ::core::option::Option<u32>,
108    #[prost(uint32, optional, tag = "11")]
109    pub retention_seconds: ::core::option::Option<u32>,
110    /// Total vnode count of the table.
111    ///
112    /// Can be unset if the table is created in older versions where variable vnode count is not
113    /// supported, in which case a default value of 256 (or 1 for singleton) should be used.
114    /// Use `VnodeCountCompat::vnode_count` to access it.
115    #[prost(uint32, optional, tag = "12")]
116    pub maybe_vnode_count: ::core::option::Option<u32>,
117}
118#[derive(prost_helpers::AnyPB)]
119#[derive(Clone, PartialEq, ::prost::Message)]
120pub struct VectorIndexReaderDesc {
121    /// The table_id of the vector index to search.
122    #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
123    pub table_id: crate::id::TableId,
124    /// The columns of the vector index info.
125    #[prost(message, repeated, tag = "2")]
126    pub info_column_desc: ::prost::alloc::vec::Vec<ColumnDesc>,
127    #[prost(uint32, repeated, tag = "3")]
128    pub info_output_indices: ::prost::alloc::vec::Vec<u32>,
129    /// Whether or not to include the distance column in the output
130    #[prost(bool, tag = "4")]
131    pub include_distance: bool,
132    /// The number of nearest neighbors to return.
133    #[prost(uint32, tag = "5")]
134    pub top_n: u32,
135    /// The distance metric to use for the search.
136    #[prost(enumeration = "super::common::DistanceType", tag = "6")]
137    pub distance_type: i32,
138    /// The ef_search used to query hnsw index
139    #[prost(uint32, tag = "7")]
140    pub hnsw_ef_search: u32,
141}
142/// Represents a table in external database for CDC scenario
143#[derive(prost_helpers::AnyPB)]
144#[derive(Eq, Hash)]
145#[derive(Clone, PartialEq, ::prost::Message)]
146pub struct ExternalTableDesc {
147    #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
148    pub table_id: crate::id::TableId,
149    #[prost(message, repeated, tag = "2")]
150    pub columns: ::prost::alloc::vec::Vec<ColumnDesc>,
151    /// TODO: may refactor primary key representations
152    #[prost(message, repeated, tag = "3")]
153    pub pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
154    #[prost(string, tag = "4")]
155    pub table_name: ::prost::alloc::string::String,
156    #[prost(uint32, repeated, tag = "5")]
157    pub stream_key: ::prost::alloc::vec::Vec<u32>,
158    #[prost(btree_map = "string, string", tag = "6")]
159    pub connect_properties: ::prost::alloc::collections::BTreeMap<
160        ::prost::alloc::string::String,
161        ::prost::alloc::string::String,
162    >,
163    /// upstream cdc source job id
164    #[prost(uint32, tag = "7", wrapper = "crate::id::SourceId")]
165    pub source_id: crate::id::SourceId,
166    #[prost(btree_map = "string, message", tag = "8")]
167    pub secret_refs: ::prost::alloc::collections::BTreeMap<
168        ::prost::alloc::string::String,
169        super::secret::SecretRef,
170    >,
171}
172#[derive(prost_helpers::AnyPB)]
173#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
174pub struct AsOfJoinDesc {
175    /// The index of the right side's as of column.
176    #[prost(uint32, tag = "1")]
177    pub right_idx: u32,
178    /// The index of the left side's as of column.
179    #[prost(uint32, tag = "2")]
180    pub left_idx: u32,
181    /// The type of the inequality.
182    #[prost(enumeration = "AsOfJoinInequalityType", tag = "3")]
183    pub inequality_type: i32,
184}
185#[derive(prost_helpers::AnyPB)]
186#[derive(Clone, PartialEq, ::prost::Message)]
187pub struct IndexAndExpr {
188    #[prost(uint32, tag = "1")]
189    pub index: u32,
190    #[prost(message, optional, tag = "2")]
191    pub expr: ::core::option::Option<super::expr::ExprNode>,
192}
193#[derive(prost_helpers::AnyPB)]
194#[derive(Clone, PartialEq, ::prost::Message)]
195pub struct DefaultColumns {
196    #[prost(message, repeated, tag = "1")]
197    pub default_columns: ::prost::alloc::vec::Vec<IndexAndExpr>,
198}
199/// The cardinality of the output rows of a plan node. Bounds are inclusive.
200#[derive(prost_helpers::AnyPB)]
201#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
202pub struct Cardinality {
203    #[prost(uint64, tag = "1")]
204    pub lo: u64,
205    /// Unbounded if not set.
206    #[prost(uint64, optional, tag = "2")]
207    pub hi: ::core::option::Option<u64>,
208}
209/// Provide statement-local context, e.g. session info like time zone, for execution.
210#[derive(prost_helpers::AnyPB)]
211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
212pub struct ExprContext {
213    #[prost(string, tag = "1")]
214    pub time_zone: ::prost::alloc::string::String,
215    #[prost(bool, tag = "2")]
216    pub strict_mode: bool,
217}
218#[derive(prost_helpers::AnyPB)]
219#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
220pub struct AdditionalColumnKey {}
221#[derive(prost_helpers::AnyPB)]
222#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
223pub struct AdditionalColumnTimestamp {}
224#[derive(prost_helpers::AnyPB)]
225#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
226pub struct AdditionalColumnPartition {}
227#[derive(prost_helpers::AnyPB)]
228#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
229pub struct AdditionalColumnOffset {}
230#[derive(prost_helpers::AnyPB)]
231#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
232pub struct AdditionalColumnFilename {}
233#[derive(prost_helpers::AnyPB)]
234#[derive(Eq, Hash)]
235#[derive(Clone, PartialEq, ::prost::Message)]
236pub struct AdditionalColumnHeader {
237    #[prost(string, tag = "1")]
238    pub inner_field: ::prost::alloc::string::String,
239    #[prost(message, optional, tag = "2")]
240    pub data_type: ::core::option::Option<super::data::DataType>,
241}
242/// metadata column for cdc table
243#[derive(prost_helpers::AnyPB)]
244#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
245pub struct AdditionalDatabaseName {}
246#[derive(prost_helpers::AnyPB)]
247#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
248pub struct AdditionalSchemaName {}
249#[derive(prost_helpers::AnyPB)]
250#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
251pub struct AdditionalTableName {}
252#[derive(prost_helpers::AnyPB)]
253#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
254pub struct AdditionalCollectionName {}
255#[derive(prost_helpers::AnyPB)]
256#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
257pub struct AdditionalColumnPayload {}
258/// this type means we read all headers as a whole
259#[derive(prost_helpers::AnyPB)]
260#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
261pub struct AdditionalColumnHeaders {}
262#[derive(prost_helpers::AnyPB)]
263#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
264pub struct AdditionalSubject {}
265#[derive(prost_helpers::AnyPB)]
266#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
267pub struct AdditionalColumnPulsarMessageIdData {}
268#[derive(prost_helpers::AnyPB)]
269#[derive(Eq, Hash)]
270#[derive(Clone, PartialEq, ::prost::Message)]
271pub struct AdditionalColumn {
272    #[prost(
273        oneof = "additional_column::ColumnType",
274        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"
275    )]
276    pub column_type: ::core::option::Option<additional_column::ColumnType>,
277}
278/// Nested message and enum types in `AdditionalColumn`.
279pub mod additional_column {
280    #[derive(prost_helpers::AnyPB)]
281    #[derive(Eq, Hash)]
282    #[derive(Clone, PartialEq, ::prost::Oneof)]
283    pub enum ColumnType {
284        #[prost(message, tag = "1")]
285        Key(super::AdditionalColumnKey),
286        #[prost(message, tag = "2")]
287        Timestamp(super::AdditionalColumnTimestamp),
288        #[prost(message, tag = "3")]
289        Partition(super::AdditionalColumnPartition),
290        #[prost(message, tag = "4")]
291        Offset(super::AdditionalColumnOffset),
292        #[prost(message, tag = "5")]
293        HeaderInner(super::AdditionalColumnHeader),
294        #[prost(message, tag = "6")]
295        Filename(super::AdditionalColumnFilename),
296        #[prost(message, tag = "7")]
297        Headers(super::AdditionalColumnHeaders),
298        #[prost(message, tag = "8")]
299        DatabaseName(super::AdditionalDatabaseName),
300        #[prost(message, tag = "9")]
301        SchemaName(super::AdditionalSchemaName),
302        #[prost(message, tag = "10")]
303        TableName(super::AdditionalTableName),
304        #[prost(message, tag = "11")]
305        CollectionName(super::AdditionalCollectionName),
306        #[prost(message, tag = "12")]
307        Payload(super::AdditionalColumnPayload),
308        #[prost(message, tag = "13")]
309        Subject(super::AdditionalSubject),
310        #[prost(message, tag = "14")]
311        PulsarMessageIdData(super::AdditionalColumnPulsarMessageIdData),
312    }
313}
314#[derive(prost_helpers::AnyPB)]
315#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
316pub struct SourceRefreshMode {
317    #[prost(oneof = "source_refresh_mode::RefreshMode", tags = "1, 2")]
318    pub refresh_mode: ::core::option::Option<source_refresh_mode::RefreshMode>,
319}
320/// Nested message and enum types in `SourceRefreshMode`.
321pub mod source_refresh_mode {
322    #[derive(prost_helpers::AnyPB)]
323    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
324    pub struct SourceRefreshModeStreaming {}
325    #[derive(prost_helpers::AnyPB)]
326    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
327    pub struct SourceRefreshModeFullReload {
328        #[prost(int64, optional, tag = "1")]
329        pub refresh_interval_sec: ::core::option::Option<i64>,
330    }
331    #[derive(prost_helpers::AnyPB)]
332    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
333    pub enum RefreshMode {
334        #[prost(message, tag = "1")]
335        Streaming(SourceRefreshModeStreaming),
336        #[prost(message, tag = "2")]
337        FullReload(SourceRefreshModeFullReload),
338    }
339}
340#[derive(prost_helpers::AnyPB)]
341#[derive(prost_helpers::Version)]
342#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
343#[repr(i32)]
344pub enum ColumnDescVersion {
345    Unspecified = 0,
346    /// Introduced in <https://github.com/risingwavelabs/risingwave/pull/13707#discussion_r1429947537,>
347    /// in case DEFAULT_KEY_COLUMN_NAME changes
348    Pr13707 = 1,
349}
350impl ColumnDescVersion {
351    /// String value of the enum field names used in the ProtoBuf definition.
352    ///
353    /// The values are not transformed in any way and thus are considered stable
354    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
355    pub fn as_str_name(&self) -> &'static str {
356        match self {
357            Self::Unspecified => "COLUMN_DESC_VERSION_UNSPECIFIED",
358            Self::Pr13707 => "COLUMN_DESC_VERSION_PR_13707",
359        }
360    }
361    /// Creates an enum from field names used in the ProtoBuf definition.
362    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
363        match value {
364            "COLUMN_DESC_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
365            "COLUMN_DESC_VERSION_PR_13707" => Some(Self::Pr13707),
366            _ => None,
367        }
368    }
369}
370#[derive(prost_helpers::AnyPB)]
371#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
372#[repr(i32)]
373pub enum JoinType {
374    /// Note that it comes from Calcite's JoinRelType.
375    /// DO NOT HAVE direction for SEMI and ANTI now.
376    Unspecified = 0,
377    Inner = 1,
378    LeftOuter = 2,
379    RightOuter = 3,
380    FullOuter = 4,
381    LeftSemi = 5,
382    LeftAnti = 6,
383    RightSemi = 7,
384    RightAnti = 8,
385    AsofInner = 9,
386    AsofLeftOuter = 10,
387}
388impl JoinType {
389    /// String value of the enum field names used in the ProtoBuf definition.
390    ///
391    /// The values are not transformed in any way and thus are considered stable
392    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
393    pub fn as_str_name(&self) -> &'static str {
394        match self {
395            Self::Unspecified => "JOIN_TYPE_UNSPECIFIED",
396            Self::Inner => "JOIN_TYPE_INNER",
397            Self::LeftOuter => "JOIN_TYPE_LEFT_OUTER",
398            Self::RightOuter => "JOIN_TYPE_RIGHT_OUTER",
399            Self::FullOuter => "JOIN_TYPE_FULL_OUTER",
400            Self::LeftSemi => "JOIN_TYPE_LEFT_SEMI",
401            Self::LeftAnti => "JOIN_TYPE_LEFT_ANTI",
402            Self::RightSemi => "JOIN_TYPE_RIGHT_SEMI",
403            Self::RightAnti => "JOIN_TYPE_RIGHT_ANTI",
404            Self::AsofInner => "JOIN_TYPE_ASOF_INNER",
405            Self::AsofLeftOuter => "JOIN_TYPE_ASOF_LEFT_OUTER",
406        }
407    }
408    /// Creates an enum from field names used in the ProtoBuf definition.
409    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
410        match value {
411            "JOIN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
412            "JOIN_TYPE_INNER" => Some(Self::Inner),
413            "JOIN_TYPE_LEFT_OUTER" => Some(Self::LeftOuter),
414            "JOIN_TYPE_RIGHT_OUTER" => Some(Self::RightOuter),
415            "JOIN_TYPE_FULL_OUTER" => Some(Self::FullOuter),
416            "JOIN_TYPE_LEFT_SEMI" => Some(Self::LeftSemi),
417            "JOIN_TYPE_LEFT_ANTI" => Some(Self::LeftAnti),
418            "JOIN_TYPE_RIGHT_SEMI" => Some(Self::RightSemi),
419            "JOIN_TYPE_RIGHT_ANTI" => Some(Self::RightAnti),
420            "JOIN_TYPE_ASOF_INNER" => Some(Self::AsofInner),
421            "JOIN_TYPE_ASOF_LEFT_OUTER" => Some(Self::AsofLeftOuter),
422            _ => None,
423        }
424    }
425}
426#[derive(prost_helpers::AnyPB)]
427#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
428#[repr(i32)]
429pub enum AsOfJoinType {
430    Unspecified = 0,
431    Inner = 1,
432    LeftOuter = 2,
433}
434impl AsOfJoinType {
435    /// String value of the enum field names used in the ProtoBuf definition.
436    ///
437    /// The values are not transformed in any way and thus are considered stable
438    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
439    pub fn as_str_name(&self) -> &'static str {
440        match self {
441            Self::Unspecified => "AS_OF_JOIN_TYPE_UNSPECIFIED",
442            Self::Inner => "AS_OF_JOIN_TYPE_INNER",
443            Self::LeftOuter => "AS_OF_JOIN_TYPE_LEFT_OUTER",
444        }
445    }
446    /// Creates an enum from field names used in the ProtoBuf definition.
447    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
448        match value {
449            "AS_OF_JOIN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
450            "AS_OF_JOIN_TYPE_INNER" => Some(Self::Inner),
451            "AS_OF_JOIN_TYPE_LEFT_OUTER" => Some(Self::LeftOuter),
452            _ => None,
453        }
454    }
455}
456#[derive(prost_helpers::AnyPB)]
457#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
458#[repr(i32)]
459pub enum AsOfJoinInequalityType {
460    AsOfInequalityTypeUnspecified = 0,
461    AsOfInequalityTypeGt = 1,
462    AsOfInequalityTypeGe = 2,
463    AsOfInequalityTypeLt = 3,
464    AsOfInequalityTypeLe = 4,
465}
466impl AsOfJoinInequalityType {
467    /// String value of the enum field names used in the ProtoBuf definition.
468    ///
469    /// The values are not transformed in any way and thus are considered stable
470    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
471    pub fn as_str_name(&self) -> &'static str {
472        match self {
473            Self::AsOfInequalityTypeUnspecified => "AS_OF_INEQUALITY_TYPE_UNSPECIFIED",
474            Self::AsOfInequalityTypeGt => "AS_OF_INEQUALITY_TYPE_GT",
475            Self::AsOfInequalityTypeGe => "AS_OF_INEQUALITY_TYPE_GE",
476            Self::AsOfInequalityTypeLt => "AS_OF_INEQUALITY_TYPE_LT",
477            Self::AsOfInequalityTypeLe => "AS_OF_INEQUALITY_TYPE_LE",
478        }
479    }
480    /// Creates an enum from field names used in the ProtoBuf definition.
481    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
482        match value {
483            "AS_OF_INEQUALITY_TYPE_UNSPECIFIED" => {
484                Some(Self::AsOfInequalityTypeUnspecified)
485            }
486            "AS_OF_INEQUALITY_TYPE_GT" => Some(Self::AsOfInequalityTypeGt),
487            "AS_OF_INEQUALITY_TYPE_GE" => Some(Self::AsOfInequalityTypeGe),
488            "AS_OF_INEQUALITY_TYPE_LT" => Some(Self::AsOfInequalityTypeLt),
489            "AS_OF_INEQUALITY_TYPE_LE" => Some(Self::AsOfInequalityTypeLe),
490            _ => None,
491        }
492    }
493}
494/// <https://github.com/tokio-rs/prost/issues/80>
495#[derive(prost_helpers::AnyPB)]
496#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
497#[repr(i32)]
498pub enum FormatType {
499    Unspecified = 0,
500    Native = 1,
501    Debezium = 2,
502    DebeziumMongo = 3,
503    Maxwell = 4,
504    Canal = 5,
505    Upsert = 6,
506    Plain = 7,
507    None = 8,
508}
509impl FormatType {
510    /// String value of the enum field names used in the ProtoBuf definition.
511    ///
512    /// The values are not transformed in any way and thus are considered stable
513    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
514    pub fn as_str_name(&self) -> &'static str {
515        match self {
516            Self::Unspecified => "FORMAT_TYPE_UNSPECIFIED",
517            Self::Native => "FORMAT_TYPE_NATIVE",
518            Self::Debezium => "FORMAT_TYPE_DEBEZIUM",
519            Self::DebeziumMongo => "FORMAT_TYPE_DEBEZIUM_MONGO",
520            Self::Maxwell => "FORMAT_TYPE_MAXWELL",
521            Self::Canal => "FORMAT_TYPE_CANAL",
522            Self::Upsert => "FORMAT_TYPE_UPSERT",
523            Self::Plain => "FORMAT_TYPE_PLAIN",
524            Self::None => "FORMAT_TYPE_NONE",
525        }
526    }
527    /// Creates an enum from field names used in the ProtoBuf definition.
528    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
529        match value {
530            "FORMAT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
531            "FORMAT_TYPE_NATIVE" => Some(Self::Native),
532            "FORMAT_TYPE_DEBEZIUM" => Some(Self::Debezium),
533            "FORMAT_TYPE_DEBEZIUM_MONGO" => Some(Self::DebeziumMongo),
534            "FORMAT_TYPE_MAXWELL" => Some(Self::Maxwell),
535            "FORMAT_TYPE_CANAL" => Some(Self::Canal),
536            "FORMAT_TYPE_UPSERT" => Some(Self::Upsert),
537            "FORMAT_TYPE_PLAIN" => Some(Self::Plain),
538            "FORMAT_TYPE_NONE" => Some(Self::None),
539            _ => None,
540        }
541    }
542}
543#[derive(prost_helpers::AnyPB)]
544#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
545#[repr(i32)]
546pub enum EncodeType {
547    Unspecified = 0,
548    Native = 1,
549    Avro = 2,
550    Csv = 3,
551    Protobuf = 4,
552    Json = 5,
553    Bytes = 6,
554    Template = 7,
555    None = 8,
556    Text = 9,
557    Parquet = 10,
558}
559impl EncodeType {
560    /// String value of the enum field names used in the ProtoBuf definition.
561    ///
562    /// The values are not transformed in any way and thus are considered stable
563    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
564    pub fn as_str_name(&self) -> &'static str {
565        match self {
566            Self::Unspecified => "ENCODE_TYPE_UNSPECIFIED",
567            Self::Native => "ENCODE_TYPE_NATIVE",
568            Self::Avro => "ENCODE_TYPE_AVRO",
569            Self::Csv => "ENCODE_TYPE_CSV",
570            Self::Protobuf => "ENCODE_TYPE_PROTOBUF",
571            Self::Json => "ENCODE_TYPE_JSON",
572            Self::Bytes => "ENCODE_TYPE_BYTES",
573            Self::Template => "ENCODE_TYPE_TEMPLATE",
574            Self::None => "ENCODE_TYPE_NONE",
575            Self::Text => "ENCODE_TYPE_TEXT",
576            Self::Parquet => "ENCODE_TYPE_PARQUET",
577        }
578    }
579    /// Creates an enum from field names used in the ProtoBuf definition.
580    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
581        match value {
582            "ENCODE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
583            "ENCODE_TYPE_NATIVE" => Some(Self::Native),
584            "ENCODE_TYPE_AVRO" => Some(Self::Avro),
585            "ENCODE_TYPE_CSV" => Some(Self::Csv),
586            "ENCODE_TYPE_PROTOBUF" => Some(Self::Protobuf),
587            "ENCODE_TYPE_JSON" => Some(Self::Json),
588            "ENCODE_TYPE_BYTES" => Some(Self::Bytes),
589            "ENCODE_TYPE_TEMPLATE" => Some(Self::Template),
590            "ENCODE_TYPE_NONE" => Some(Self::None),
591            "ENCODE_TYPE_TEXT" => Some(Self::Text),
592            "ENCODE_TYPE_PARQUET" => Some(Self::Parquet),
593            _ => None,
594        }
595    }
596}
597#[derive(prost_helpers::AnyPB)]
598#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
599#[repr(i32)]
600pub enum RowFormatType {
601    RowUnspecified = 0,
602    Json = 1,
603    Protobuf = 2,
604    DebeziumJson = 3,
605    Avro = 4,
606    Maxwell = 5,
607    CanalJson = 6,
608    Csv = 7,
609    Native = 8,
610    DebeziumAvro = 9,
611    UpsertJson = 10,
612    UpsertAvro = 11,
613    DebeziumMongoJson = 12,
614    Bytes = 13,
615}
616impl RowFormatType {
617    /// String value of the enum field names used in the ProtoBuf definition.
618    ///
619    /// The values are not transformed in any way and thus are considered stable
620    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
621    pub fn as_str_name(&self) -> &'static str {
622        match self {
623            Self::RowUnspecified => "ROW_UNSPECIFIED",
624            Self::Json => "JSON",
625            Self::Protobuf => "PROTOBUF",
626            Self::DebeziumJson => "DEBEZIUM_JSON",
627            Self::Avro => "AVRO",
628            Self::Maxwell => "MAXWELL",
629            Self::CanalJson => "CANAL_JSON",
630            Self::Csv => "CSV",
631            Self::Native => "NATIVE",
632            Self::DebeziumAvro => "DEBEZIUM_AVRO",
633            Self::UpsertJson => "UPSERT_JSON",
634            Self::UpsertAvro => "UPSERT_AVRO",
635            Self::DebeziumMongoJson => "DEBEZIUM_MONGO_JSON",
636            Self::Bytes => "BYTES",
637        }
638    }
639    /// Creates an enum from field names used in the ProtoBuf definition.
640    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
641        match value {
642            "ROW_UNSPECIFIED" => Some(Self::RowUnspecified),
643            "JSON" => Some(Self::Json),
644            "PROTOBUF" => Some(Self::Protobuf),
645            "DEBEZIUM_JSON" => Some(Self::DebeziumJson),
646            "AVRO" => Some(Self::Avro),
647            "MAXWELL" => Some(Self::Maxwell),
648            "CANAL_JSON" => Some(Self::CanalJson),
649            "CSV" => Some(Self::Csv),
650            "NATIVE" => Some(Self::Native),
651            "DEBEZIUM_AVRO" => Some(Self::DebeziumAvro),
652            "UPSERT_JSON" => Some(Self::UpsertJson),
653            "UPSERT_AVRO" => Some(Self::UpsertAvro),
654            "DEBEZIUM_MONGO_JSON" => Some(Self::DebeziumMongoJson),
655            "BYTES" => Some(Self::Bytes),
656            _ => None,
657        }
658    }
659}
660#[derive(prost_helpers::AnyPB)]
661#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
662#[repr(i32)]
663pub enum AdditionalColumnType {
664    Unspecified = 0,
665    Key = 1,
666    Timestamp = 2,
667    Partition = 3,
668    Offset = 4,
669    Header = 5,
670    Filename = 6,
671    Normal = 7,
672    Payload = 8,
673    /// for pulsar source, used for ack message
674    PulsarMessageIdData = 9,
675}
676impl AdditionalColumnType {
677    /// String value of the enum field names used in the ProtoBuf definition.
678    ///
679    /// The values are not transformed in any way and thus are considered stable
680    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
681    pub fn as_str_name(&self) -> &'static str {
682        match self {
683            Self::Unspecified => "ADDITIONAL_COLUMN_TYPE_UNSPECIFIED",
684            Self::Key => "ADDITIONAL_COLUMN_TYPE_KEY",
685            Self::Timestamp => "ADDITIONAL_COLUMN_TYPE_TIMESTAMP",
686            Self::Partition => "ADDITIONAL_COLUMN_TYPE_PARTITION",
687            Self::Offset => "ADDITIONAL_COLUMN_TYPE_OFFSET",
688            Self::Header => "ADDITIONAL_COLUMN_TYPE_HEADER",
689            Self::Filename => "ADDITIONAL_COLUMN_TYPE_FILENAME",
690            Self::Normal => "ADDITIONAL_COLUMN_TYPE_NORMAL",
691            Self::Payload => "ADDITIONAL_COLUMN_TYPE_PAYLOAD",
692            Self::PulsarMessageIdData => "ADDITIONAL_COLUMN_TYPE_PULSAR_MESSAGE_ID_DATA",
693        }
694    }
695    /// Creates an enum from field names used in the ProtoBuf definition.
696    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
697        match value {
698            "ADDITIONAL_COLUMN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
699            "ADDITIONAL_COLUMN_TYPE_KEY" => Some(Self::Key),
700            "ADDITIONAL_COLUMN_TYPE_TIMESTAMP" => Some(Self::Timestamp),
701            "ADDITIONAL_COLUMN_TYPE_PARTITION" => Some(Self::Partition),
702            "ADDITIONAL_COLUMN_TYPE_OFFSET" => Some(Self::Offset),
703            "ADDITIONAL_COLUMN_TYPE_HEADER" => Some(Self::Header),
704            "ADDITIONAL_COLUMN_TYPE_FILENAME" => Some(Self::Filename),
705            "ADDITIONAL_COLUMN_TYPE_NORMAL" => Some(Self::Normal),
706            "ADDITIONAL_COLUMN_TYPE_PAYLOAD" => Some(Self::Payload),
707            "ADDITIONAL_COLUMN_TYPE_PULSAR_MESSAGE_ID_DATA" => {
708                Some(Self::PulsarMessageIdData)
709            }
710            _ => None,
711        }
712    }
713}