Skip to main content

pg_query/
protobuf.rs

1// This file is @generated by prost-build.
2#[derive(serde::Serialize)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct ParseResult {
5    #[prost(int32, tag = "1")]
6    pub version: i32,
7    #[prost(message, repeated, tag = "2")]
8    pub stmts: ::prost::alloc::vec::Vec<RawStmt>,
9}
10#[derive(serde::Serialize)]
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct ScanResult {
13    #[prost(int32, tag = "1")]
14    pub version: i32,
15    #[prost(message, repeated, tag = "2")]
16    pub tokens: ::prost::alloc::vec::Vec<ScanToken>,
17}
18#[derive(serde::Serialize)]
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct Node {
21    #[prost(
22        oneof = "node::Node",
23        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271"
24    )]
25    pub node: ::core::option::Option<node::Node>,
26}
27/// Nested message and enum types in `Node`.
28pub mod node {
29    bounded_message_oneof! {
30    #[derive(serde::Serialize)]
31    #[derive(Clone, PartialEq)]
32    pub enum Node {
33        #[prost(message, tag = "1")]
34        Alias(super::Alias),
35        #[prost(message, tag = "2")]
36        RangeVar(super::RangeVar),
37        #[prost(message, tag = "3")]
38        TableFunc(::prost::alloc::boxed::Box<super::TableFunc>),
39        #[prost(message, tag = "4")]
40        IntoClause(::prost::alloc::boxed::Box<super::IntoClause>),
41        #[prost(message, tag = "5")]
42        Var(::prost::alloc::boxed::Box<super::Var>),
43        #[prost(message, tag = "6")]
44        Param(::prost::alloc::boxed::Box<super::Param>),
45        #[prost(message, tag = "7")]
46        Aggref(::prost::alloc::boxed::Box<super::Aggref>),
47        #[prost(message, tag = "8")]
48        GroupingFunc(::prost::alloc::boxed::Box<super::GroupingFunc>),
49        #[prost(message, tag = "9")]
50        WindowFunc(::prost::alloc::boxed::Box<super::WindowFunc>),
51        #[prost(message, tag = "10")]
52        WindowFuncRunCondition(
53            ::prost::alloc::boxed::Box<super::WindowFuncRunCondition>,
54        ),
55        #[prost(message, tag = "11")]
56        MergeSupportFunc(::prost::alloc::boxed::Box<super::MergeSupportFunc>),
57        #[prost(message, tag = "12")]
58        SubscriptingRef(::prost::alloc::boxed::Box<super::SubscriptingRef>),
59        #[prost(message, tag = "13")]
60        FuncExpr(::prost::alloc::boxed::Box<super::FuncExpr>),
61        #[prost(message, tag = "14")]
62        NamedArgExpr(::prost::alloc::boxed::Box<super::NamedArgExpr>),
63        #[prost(message, tag = "15")]
64        OpExpr(::prost::alloc::boxed::Box<super::OpExpr>),
65        #[prost(message, tag = "16")]
66        DistinctExpr(::prost::alloc::boxed::Box<super::DistinctExpr>),
67        #[prost(message, tag = "17")]
68        NullIfExpr(::prost::alloc::boxed::Box<super::NullIfExpr>),
69        #[prost(message, tag = "18")]
70        ScalarArrayOpExpr(::prost::alloc::boxed::Box<super::ScalarArrayOpExpr>),
71        #[prost(message, tag = "19")]
72        BoolExpr(::prost::alloc::boxed::Box<super::BoolExpr>),
73        #[prost(message, tag = "20")]
74        SubLink(::prost::alloc::boxed::Box<super::SubLink>),
75        #[prost(message, tag = "21")]
76        SubPlan(::prost::alloc::boxed::Box<super::SubPlan>),
77        #[prost(message, tag = "22")]
78        AlternativeSubPlan(::prost::alloc::boxed::Box<super::AlternativeSubPlan>),
79        #[prost(message, tag = "23")]
80        FieldSelect(::prost::alloc::boxed::Box<super::FieldSelect>),
81        #[prost(message, tag = "24")]
82        FieldStore(::prost::alloc::boxed::Box<super::FieldStore>),
83        #[prost(message, tag = "25")]
84        RelabelType(::prost::alloc::boxed::Box<super::RelabelType>),
85        #[prost(message, tag = "26")]
86        CoerceViaIo(::prost::alloc::boxed::Box<super::CoerceViaIo>),
87        #[prost(message, tag = "27")]
88        ArrayCoerceExpr(::prost::alloc::boxed::Box<super::ArrayCoerceExpr>),
89        #[prost(message, tag = "28")]
90        ConvertRowtypeExpr(::prost::alloc::boxed::Box<super::ConvertRowtypeExpr>),
91        #[prost(message, tag = "29")]
92        CollateExpr(::prost::alloc::boxed::Box<super::CollateExpr>),
93        #[prost(message, tag = "30")]
94        CaseExpr(::prost::alloc::boxed::Box<super::CaseExpr>),
95        #[prost(message, tag = "31")]
96        CaseWhen(::prost::alloc::boxed::Box<super::CaseWhen>),
97        #[prost(message, tag = "32")]
98        CaseTestExpr(::prost::alloc::boxed::Box<super::CaseTestExpr>),
99        #[prost(message, tag = "33")]
100        ArrayExpr(::prost::alloc::boxed::Box<super::ArrayExpr>),
101        #[prost(message, tag = "34")]
102        RowExpr(::prost::alloc::boxed::Box<super::RowExpr>),
103        #[prost(message, tag = "35")]
104        RowCompareExpr(::prost::alloc::boxed::Box<super::RowCompareExpr>),
105        #[prost(message, tag = "36")]
106        CoalesceExpr(::prost::alloc::boxed::Box<super::CoalesceExpr>),
107        #[prost(message, tag = "37")]
108        MinMaxExpr(::prost::alloc::boxed::Box<super::MinMaxExpr>),
109        #[prost(message, tag = "38")]
110        SqlvalueFunction(::prost::alloc::boxed::Box<super::SqlValueFunction>),
111        #[prost(message, tag = "39")]
112        XmlExpr(::prost::alloc::boxed::Box<super::XmlExpr>),
113        #[prost(message, tag = "40")]
114        JsonFormat(super::JsonFormat),
115        #[prost(message, tag = "41")]
116        JsonReturning(super::JsonReturning),
117        #[prost(message, tag = "42")]
118        JsonValueExpr(::prost::alloc::boxed::Box<super::JsonValueExpr>),
119        #[prost(message, tag = "43")]
120        JsonConstructorExpr(::prost::alloc::boxed::Box<super::JsonConstructorExpr>),
121        #[prost(message, tag = "44")]
122        JsonIsPredicate(::prost::alloc::boxed::Box<super::JsonIsPredicate>),
123        #[prost(message, tag = "45")]
124        JsonBehavior(::prost::alloc::boxed::Box<super::JsonBehavior>),
125        #[prost(message, tag = "46")]
126        JsonExpr(::prost::alloc::boxed::Box<super::JsonExpr>),
127        #[prost(message, tag = "47")]
128        JsonTablePath(super::JsonTablePath),
129        #[prost(message, tag = "48")]
130        JsonTablePathScan(::prost::alloc::boxed::Box<super::JsonTablePathScan>),
131        #[prost(message, tag = "49")]
132        JsonTableSiblingJoin(::prost::alloc::boxed::Box<super::JsonTableSiblingJoin>),
133        #[prost(message, tag = "50")]
134        NullTest(::prost::alloc::boxed::Box<super::NullTest>),
135        #[prost(message, tag = "51")]
136        BooleanTest(::prost::alloc::boxed::Box<super::BooleanTest>),
137        #[prost(message, tag = "52")]
138        MergeAction(::prost::alloc::boxed::Box<super::MergeAction>),
139        #[prost(message, tag = "53")]
140        CoerceToDomain(::prost::alloc::boxed::Box<super::CoerceToDomain>),
141        #[prost(message, tag = "54")]
142        CoerceToDomainValue(::prost::alloc::boxed::Box<super::CoerceToDomainValue>),
143        #[prost(message, tag = "55")]
144        SetToDefault(::prost::alloc::boxed::Box<super::SetToDefault>),
145        #[prost(message, tag = "56")]
146        CurrentOfExpr(::prost::alloc::boxed::Box<super::CurrentOfExpr>),
147        #[prost(message, tag = "57")]
148        NextValueExpr(::prost::alloc::boxed::Box<super::NextValueExpr>),
149        #[prost(message, tag = "58")]
150        InferenceElem(::prost::alloc::boxed::Box<super::InferenceElem>),
151        #[prost(message, tag = "59")]
152        ReturningExpr(::prost::alloc::boxed::Box<super::ReturningExpr>),
153        #[prost(message, tag = "60")]
154        TargetEntry(::prost::alloc::boxed::Box<super::TargetEntry>),
155        #[prost(message, tag = "61")]
156        RangeTblRef(super::RangeTblRef),
157        #[prost(message, tag = "62")]
158        JoinExpr(::prost::alloc::boxed::Box<super::JoinExpr>),
159        #[prost(message, tag = "63")]
160        FromExpr(::prost::alloc::boxed::Box<super::FromExpr>),
161        #[prost(message, tag = "64")]
162        OnConflictExpr(::prost::alloc::boxed::Box<super::OnConflictExpr>),
163        #[prost(message, tag = "65")]
164        Query(::prost::alloc::boxed::Box<super::Query>),
165        #[prost(message, tag = "66")]
166        TypeName(super::TypeName),
167        #[prost(message, tag = "67")]
168        ColumnRef(super::ColumnRef),
169        #[prost(message, tag = "68")]
170        ParamRef(super::ParamRef),
171        #[prost(message, tag = "69")]
172        AExpr(::prost::alloc::boxed::Box<super::AExpr>),
173        #[prost(message, tag = "70")]
174        TypeCast(::prost::alloc::boxed::Box<super::TypeCast>),
175        #[prost(message, tag = "71")]
176        CollateClause(::prost::alloc::boxed::Box<super::CollateClause>),
177        #[prost(message, tag = "72")]
178        RoleSpec(super::RoleSpec),
179        #[prost(message, tag = "73")]
180        FuncCall(::prost::alloc::boxed::Box<super::FuncCall>),
181        #[prost(message, tag = "74")]
182        AStar(super::AStar),
183        #[prost(message, tag = "75")]
184        AIndices(::prost::alloc::boxed::Box<super::AIndices>),
185        #[prost(message, tag = "76")]
186        AIndirection(::prost::alloc::boxed::Box<super::AIndirection>),
187        #[prost(message, tag = "77")]
188        AArrayExpr(super::AArrayExpr),
189        #[prost(message, tag = "78")]
190        ResTarget(::prost::alloc::boxed::Box<super::ResTarget>),
191        #[prost(message, tag = "79")]
192        MultiAssignRef(::prost::alloc::boxed::Box<super::MultiAssignRef>),
193        #[prost(message, tag = "80")]
194        SortBy(::prost::alloc::boxed::Box<super::SortBy>),
195        #[prost(message, tag = "81")]
196        WindowDef(::prost::alloc::boxed::Box<super::WindowDef>),
197        #[prost(message, tag = "82")]
198        RangeSubselect(::prost::alloc::boxed::Box<super::RangeSubselect>),
199        #[prost(message, tag = "83")]
200        RangeFunction(super::RangeFunction),
201        #[prost(message, tag = "84")]
202        RangeTableFunc(::prost::alloc::boxed::Box<super::RangeTableFunc>),
203        #[prost(message, tag = "85")]
204        RangeTableFuncCol(::prost::alloc::boxed::Box<super::RangeTableFuncCol>),
205        #[prost(message, tag = "86")]
206        RangeTableSample(::prost::alloc::boxed::Box<super::RangeTableSample>),
207        #[prost(message, tag = "87")]
208        ColumnDef(::prost::alloc::boxed::Box<super::ColumnDef>),
209        #[prost(message, tag = "88")]
210        TableLikeClause(super::TableLikeClause),
211        #[prost(message, tag = "89")]
212        IndexElem(::prost::alloc::boxed::Box<super::IndexElem>),
213        #[prost(message, tag = "90")]
214        DefElem(::prost::alloc::boxed::Box<super::DefElem>),
215        #[prost(message, tag = "91")]
216        LockingClause(super::LockingClause),
217        #[prost(message, tag = "92")]
218        XmlSerialize(::prost::alloc::boxed::Box<super::XmlSerialize>),
219        #[prost(message, tag = "93")]
220        PartitionElem(::prost::alloc::boxed::Box<super::PartitionElem>),
221        #[prost(message, tag = "94")]
222        PartitionSpec(super::PartitionSpec),
223        #[prost(message, tag = "95")]
224        PartitionBoundSpec(super::PartitionBoundSpec),
225        #[prost(message, tag = "96")]
226        PartitionRangeDatum(::prost::alloc::boxed::Box<super::PartitionRangeDatum>),
227        #[prost(message, tag = "97")]
228        PartitionCmd(super::PartitionCmd),
229        #[prost(message, tag = "98")]
230        RangeTblEntry(::prost::alloc::boxed::Box<super::RangeTblEntry>),
231        #[prost(message, tag = "99")]
232        RtepermissionInfo(super::RtePermissionInfo),
233        #[prost(message, tag = "100")]
234        RangeTblFunction(::prost::alloc::boxed::Box<super::RangeTblFunction>),
235        #[prost(message, tag = "101")]
236        TableSampleClause(::prost::alloc::boxed::Box<super::TableSampleClause>),
237        #[prost(message, tag = "102")]
238        WithCheckOption(::prost::alloc::boxed::Box<super::WithCheckOption>),
239        #[prost(message, tag = "103")]
240        SortGroupClause(super::SortGroupClause),
241        #[prost(message, tag = "104")]
242        GroupingSet(super::GroupingSet),
243        #[prost(message, tag = "105")]
244        WindowClause(::prost::alloc::boxed::Box<super::WindowClause>),
245        #[prost(message, tag = "106")]
246        RowMarkClause(super::RowMarkClause),
247        #[prost(message, tag = "107")]
248        WithClause(super::WithClause),
249        #[prost(message, tag = "108")]
250        InferClause(::prost::alloc::boxed::Box<super::InferClause>),
251        #[prost(message, tag = "109")]
252        OnConflictClause(::prost::alloc::boxed::Box<super::OnConflictClause>),
253        #[prost(message, tag = "110")]
254        CtesearchClause(super::CteSearchClause),
255        #[prost(message, tag = "111")]
256        CtecycleClause(::prost::alloc::boxed::Box<super::CteCycleClause>),
257        #[prost(message, tag = "112")]
258        CommonTableExpr(::prost::alloc::boxed::Box<super::CommonTableExpr>),
259        #[prost(message, tag = "113")]
260        MergeWhenClause(::prost::alloc::boxed::Box<super::MergeWhenClause>),
261        #[prost(message, tag = "114")]
262        ReturningOption(super::ReturningOption),
263        #[prost(message, tag = "115")]
264        ReturningClause(super::ReturningClause),
265        #[prost(message, tag = "116")]
266        TriggerTransition(super::TriggerTransition),
267        #[prost(message, tag = "117")]
268        JsonOutput(super::JsonOutput),
269        #[prost(message, tag = "118")]
270        JsonArgument(::prost::alloc::boxed::Box<super::JsonArgument>),
271        #[prost(message, tag = "119")]
272        JsonFuncExpr(::prost::alloc::boxed::Box<super::JsonFuncExpr>),
273        #[prost(message, tag = "120")]
274        JsonTablePathSpec(::prost::alloc::boxed::Box<super::JsonTablePathSpec>),
275        #[prost(message, tag = "121")]
276        JsonTable(::prost::alloc::boxed::Box<super::JsonTable>),
277        #[prost(message, tag = "122")]
278        JsonTableColumn(::prost::alloc::boxed::Box<super::JsonTableColumn>),
279        #[prost(message, tag = "123")]
280        JsonKeyValue(::prost::alloc::boxed::Box<super::JsonKeyValue>),
281        #[prost(message, tag = "124")]
282        JsonParseExpr(::prost::alloc::boxed::Box<super::JsonParseExpr>),
283        #[prost(message, tag = "125")]
284        JsonScalarExpr(::prost::alloc::boxed::Box<super::JsonScalarExpr>),
285        #[prost(message, tag = "126")]
286        JsonSerializeExpr(::prost::alloc::boxed::Box<super::JsonSerializeExpr>),
287        #[prost(message, tag = "127")]
288        JsonObjectConstructor(super::JsonObjectConstructor),
289        #[prost(message, tag = "128")]
290        JsonArrayConstructor(super::JsonArrayConstructor),
291        #[prost(message, tag = "129")]
292        JsonArrayQueryConstructor(
293            ::prost::alloc::boxed::Box<super::JsonArrayQueryConstructor>,
294        ),
295        #[prost(message, tag = "130")]
296        JsonAggConstructor(::prost::alloc::boxed::Box<super::JsonAggConstructor>),
297        #[prost(message, tag = "131")]
298        JsonObjectAgg(::prost::alloc::boxed::Box<super::JsonObjectAgg>),
299        #[prost(message, tag = "132")]
300        JsonArrayAgg(::prost::alloc::boxed::Box<super::JsonArrayAgg>),
301        #[prost(message, tag = "133")]
302        RawStmt(::prost::alloc::boxed::Box<super::RawStmt>),
303        #[prost(message, tag = "134")]
304        InsertStmt(::prost::alloc::boxed::Box<super::InsertStmt>),
305        #[prost(message, tag = "135")]
306        DeleteStmt(::prost::alloc::boxed::Box<super::DeleteStmt>),
307        #[prost(message, tag = "136")]
308        UpdateStmt(::prost::alloc::boxed::Box<super::UpdateStmt>),
309        #[prost(message, tag = "137")]
310        MergeStmt(::prost::alloc::boxed::Box<super::MergeStmt>),
311        #[prost(message, tag = "138")]
312        SelectStmt(::prost::alloc::boxed::Box<super::SelectStmt>),
313        #[prost(message, tag = "139")]
314        SetOperationStmt(::prost::alloc::boxed::Box<super::SetOperationStmt>),
315        #[prost(message, tag = "140")]
316        ReturnStmt(::prost::alloc::boxed::Box<super::ReturnStmt>),
317        #[prost(message, tag = "141")]
318        PlassignStmt(::prost::alloc::boxed::Box<super::PlAssignStmt>),
319        #[prost(message, tag = "142")]
320        CreateSchemaStmt(super::CreateSchemaStmt),
321        #[prost(message, tag = "143")]
322        AlterTableStmt(super::AlterTableStmt),
323        #[prost(message, tag = "144")]
324        AlterTableCmd(::prost::alloc::boxed::Box<super::AlterTableCmd>),
325        #[prost(message, tag = "145")]
326        AtalterConstraint(super::AtAlterConstraint),
327        #[prost(message, tag = "146")]
328        ReplicaIdentityStmt(super::ReplicaIdentityStmt),
329        #[prost(message, tag = "147")]
330        AlterCollationStmt(super::AlterCollationStmt),
331        #[prost(message, tag = "148")]
332        AlterDomainStmt(::prost::alloc::boxed::Box<super::AlterDomainStmt>),
333        #[prost(message, tag = "149")]
334        GrantStmt(super::GrantStmt),
335        #[prost(message, tag = "150")]
336        ObjectWithArgs(super::ObjectWithArgs),
337        #[prost(message, tag = "151")]
338        AccessPriv(super::AccessPriv),
339        #[prost(message, tag = "152")]
340        GrantRoleStmt(super::GrantRoleStmt),
341        #[prost(message, tag = "153")]
342        AlterDefaultPrivilegesStmt(super::AlterDefaultPrivilegesStmt),
343        #[prost(message, tag = "154")]
344        CopyStmt(::prost::alloc::boxed::Box<super::CopyStmt>),
345        #[prost(message, tag = "155")]
346        VariableSetStmt(super::VariableSetStmt),
347        #[prost(message, tag = "156")]
348        VariableShowStmt(super::VariableShowStmt),
349        #[prost(message, tag = "157")]
350        CreateStmt(super::CreateStmt),
351        #[prost(message, tag = "158")]
352        Constraint(::prost::alloc::boxed::Box<super::Constraint>),
353        #[prost(message, tag = "159")]
354        CreateTableSpaceStmt(super::CreateTableSpaceStmt),
355        #[prost(message, tag = "160")]
356        DropTableSpaceStmt(super::DropTableSpaceStmt),
357        #[prost(message, tag = "161")]
358        AlterTableSpaceOptionsStmt(super::AlterTableSpaceOptionsStmt),
359        #[prost(message, tag = "162")]
360        AlterTableMoveAllStmt(super::AlterTableMoveAllStmt),
361        #[prost(message, tag = "163")]
362        CreateExtensionStmt(super::CreateExtensionStmt),
363        #[prost(message, tag = "164")]
364        AlterExtensionStmt(super::AlterExtensionStmt),
365        #[prost(message, tag = "165")]
366        AlterExtensionContentsStmt(
367            ::prost::alloc::boxed::Box<super::AlterExtensionContentsStmt>,
368        ),
369        #[prost(message, tag = "166")]
370        CreateFdwStmt(super::CreateFdwStmt),
371        #[prost(message, tag = "167")]
372        AlterFdwStmt(super::AlterFdwStmt),
373        #[prost(message, tag = "168")]
374        CreateForeignServerStmt(super::CreateForeignServerStmt),
375        #[prost(message, tag = "169")]
376        AlterForeignServerStmt(super::AlterForeignServerStmt),
377        #[prost(message, tag = "170")]
378        CreateForeignTableStmt(super::CreateForeignTableStmt),
379        #[prost(message, tag = "171")]
380        CreateUserMappingStmt(super::CreateUserMappingStmt),
381        #[prost(message, tag = "172")]
382        AlterUserMappingStmt(super::AlterUserMappingStmt),
383        #[prost(message, tag = "173")]
384        DropUserMappingStmt(super::DropUserMappingStmt),
385        #[prost(message, tag = "174")]
386        ImportForeignSchemaStmt(super::ImportForeignSchemaStmt),
387        #[prost(message, tag = "175")]
388        CreatePolicyStmt(::prost::alloc::boxed::Box<super::CreatePolicyStmt>),
389        #[prost(message, tag = "176")]
390        AlterPolicyStmt(::prost::alloc::boxed::Box<super::AlterPolicyStmt>),
391        #[prost(message, tag = "177")]
392        CreateAmStmt(super::CreateAmStmt),
393        #[prost(message, tag = "178")]
394        CreateTrigStmt(::prost::alloc::boxed::Box<super::CreateTrigStmt>),
395        #[prost(message, tag = "179")]
396        CreateEventTrigStmt(super::CreateEventTrigStmt),
397        #[prost(message, tag = "180")]
398        AlterEventTrigStmt(super::AlterEventTrigStmt),
399        #[prost(message, tag = "181")]
400        CreatePlangStmt(super::CreatePLangStmt),
401        #[prost(message, tag = "182")]
402        CreateRoleStmt(super::CreateRoleStmt),
403        #[prost(message, tag = "183")]
404        AlterRoleStmt(super::AlterRoleStmt),
405        #[prost(message, tag = "184")]
406        AlterRoleSetStmt(super::AlterRoleSetStmt),
407        #[prost(message, tag = "185")]
408        DropRoleStmt(super::DropRoleStmt),
409        #[prost(message, tag = "186")]
410        CreateSeqStmt(super::CreateSeqStmt),
411        #[prost(message, tag = "187")]
412        AlterSeqStmt(super::AlterSeqStmt),
413        #[prost(message, tag = "188")]
414        DefineStmt(super::DefineStmt),
415        #[prost(message, tag = "189")]
416        CreateDomainStmt(::prost::alloc::boxed::Box<super::CreateDomainStmt>),
417        #[prost(message, tag = "190")]
418        CreateOpClassStmt(super::CreateOpClassStmt),
419        #[prost(message, tag = "191")]
420        CreateOpClassItem(super::CreateOpClassItem),
421        #[prost(message, tag = "192")]
422        CreateOpFamilyStmt(super::CreateOpFamilyStmt),
423        #[prost(message, tag = "193")]
424        AlterOpFamilyStmt(super::AlterOpFamilyStmt),
425        #[prost(message, tag = "194")]
426        DropStmt(super::DropStmt),
427        #[prost(message, tag = "195")]
428        TruncateStmt(super::TruncateStmt),
429        #[prost(message, tag = "196")]
430        CommentStmt(::prost::alloc::boxed::Box<super::CommentStmt>),
431        #[prost(message, tag = "197")]
432        SecLabelStmt(::prost::alloc::boxed::Box<super::SecLabelStmt>),
433        #[prost(message, tag = "198")]
434        DeclareCursorStmt(::prost::alloc::boxed::Box<super::DeclareCursorStmt>),
435        #[prost(message, tag = "199")]
436        ClosePortalStmt(super::ClosePortalStmt),
437        #[prost(message, tag = "200")]
438        FetchStmt(super::FetchStmt),
439        #[prost(message, tag = "201")]
440        IndexStmt(::prost::alloc::boxed::Box<super::IndexStmt>),
441        #[prost(message, tag = "202")]
442        CreateStatsStmt(super::CreateStatsStmt),
443        #[prost(message, tag = "203")]
444        StatsElem(::prost::alloc::boxed::Box<super::StatsElem>),
445        #[prost(message, tag = "204")]
446        AlterStatsStmt(::prost::alloc::boxed::Box<super::AlterStatsStmt>),
447        #[prost(message, tag = "205")]
448        CreateFunctionStmt(::prost::alloc::boxed::Box<super::CreateFunctionStmt>),
449        #[prost(message, tag = "206")]
450        FunctionParameter(::prost::alloc::boxed::Box<super::FunctionParameter>),
451        #[prost(message, tag = "207")]
452        AlterFunctionStmt(super::AlterFunctionStmt),
453        #[prost(message, tag = "208")]
454        DoStmt(super::DoStmt),
455        #[prost(message, tag = "209")]
456        InlineCodeBlock(super::InlineCodeBlock),
457        #[prost(message, tag = "210")]
458        CallStmt(::prost::alloc::boxed::Box<super::CallStmt>),
459        #[prost(message, tag = "211")]
460        CallContext(super::CallContext),
461        #[prost(message, tag = "212")]
462        RenameStmt(::prost::alloc::boxed::Box<super::RenameStmt>),
463        #[prost(message, tag = "213")]
464        AlterObjectDependsStmt(
465            ::prost::alloc::boxed::Box<super::AlterObjectDependsStmt>,
466        ),
467        #[prost(message, tag = "214")]
468        AlterObjectSchemaStmt(::prost::alloc::boxed::Box<super::AlterObjectSchemaStmt>),
469        #[prost(message, tag = "215")]
470        AlterOwnerStmt(::prost::alloc::boxed::Box<super::AlterOwnerStmt>),
471        #[prost(message, tag = "216")]
472        AlterOperatorStmt(super::AlterOperatorStmt),
473        #[prost(message, tag = "217")]
474        AlterTypeStmt(super::AlterTypeStmt),
475        #[prost(message, tag = "218")]
476        RuleStmt(::prost::alloc::boxed::Box<super::RuleStmt>),
477        #[prost(message, tag = "219")]
478        NotifyStmt(super::NotifyStmt),
479        #[prost(message, tag = "220")]
480        ListenStmt(super::ListenStmt),
481        #[prost(message, tag = "221")]
482        UnlistenStmt(super::UnlistenStmt),
483        #[prost(message, tag = "222")]
484        TransactionStmt(super::TransactionStmt),
485        #[prost(message, tag = "223")]
486        CompositeTypeStmt(super::CompositeTypeStmt),
487        #[prost(message, tag = "224")]
488        CreateEnumStmt(super::CreateEnumStmt),
489        #[prost(message, tag = "225")]
490        CreateRangeStmt(super::CreateRangeStmt),
491        #[prost(message, tag = "226")]
492        AlterEnumStmt(super::AlterEnumStmt),
493        #[prost(message, tag = "227")]
494        ViewStmt(::prost::alloc::boxed::Box<super::ViewStmt>),
495        #[prost(message, tag = "228")]
496        LoadStmt(super::LoadStmt),
497        #[prost(message, tag = "229")]
498        CreatedbStmt(super::CreatedbStmt),
499        #[prost(message, tag = "230")]
500        AlterDatabaseStmt(super::AlterDatabaseStmt),
501        #[prost(message, tag = "231")]
502        AlterDatabaseRefreshCollStmt(super::AlterDatabaseRefreshCollStmt),
503        #[prost(message, tag = "232")]
504        AlterDatabaseSetStmt(super::AlterDatabaseSetStmt),
505        #[prost(message, tag = "233")]
506        DropdbStmt(super::DropdbStmt),
507        #[prost(message, tag = "234")]
508        AlterSystemStmt(super::AlterSystemStmt),
509        #[prost(message, tag = "235")]
510        ClusterStmt(super::ClusterStmt),
511        #[prost(message, tag = "236")]
512        VacuumStmt(super::VacuumStmt),
513        #[prost(message, tag = "237")]
514        VacuumRelation(super::VacuumRelation),
515        #[prost(message, tag = "238")]
516        ExplainStmt(::prost::alloc::boxed::Box<super::ExplainStmt>),
517        #[prost(message, tag = "239")]
518        CreateTableAsStmt(::prost::alloc::boxed::Box<super::CreateTableAsStmt>),
519        #[prost(message, tag = "240")]
520        RefreshMatViewStmt(super::RefreshMatViewStmt),
521        #[prost(message, tag = "241")]
522        CheckPointStmt(super::CheckPointStmt),
523        #[prost(message, tag = "242")]
524        DiscardStmt(super::DiscardStmt),
525        #[prost(message, tag = "243")]
526        LockStmt(super::LockStmt),
527        #[prost(message, tag = "244")]
528        ConstraintsSetStmt(super::ConstraintsSetStmt),
529        #[prost(message, tag = "245")]
530        ReindexStmt(super::ReindexStmt),
531        #[prost(message, tag = "246")]
532        CreateConversionStmt(super::CreateConversionStmt),
533        #[prost(message, tag = "247")]
534        CreateCastStmt(super::CreateCastStmt),
535        #[prost(message, tag = "248")]
536        CreateTransformStmt(super::CreateTransformStmt),
537        #[prost(message, tag = "249")]
538        PrepareStmt(::prost::alloc::boxed::Box<super::PrepareStmt>),
539        #[prost(message, tag = "250")]
540        ExecuteStmt(super::ExecuteStmt),
541        #[prost(message, tag = "251")]
542        DeallocateStmt(super::DeallocateStmt),
543        #[prost(message, tag = "252")]
544        DropOwnedStmt(super::DropOwnedStmt),
545        #[prost(message, tag = "253")]
546        ReassignOwnedStmt(super::ReassignOwnedStmt),
547        #[prost(message, tag = "254")]
548        AlterTsdictionaryStmt(super::AlterTsDictionaryStmt),
549        #[prost(message, tag = "255")]
550        AlterTsconfigurationStmt(super::AlterTsConfigurationStmt),
551        #[prost(message, tag = "256")]
552        PublicationTable(::prost::alloc::boxed::Box<super::PublicationTable>),
553        #[prost(message, tag = "257")]
554        PublicationObjSpec(::prost::alloc::boxed::Box<super::PublicationObjSpec>),
555        #[prost(message, tag = "258")]
556        CreatePublicationStmt(super::CreatePublicationStmt),
557        #[prost(message, tag = "259")]
558        AlterPublicationStmt(super::AlterPublicationStmt),
559        #[prost(message, tag = "260")]
560        CreateSubscriptionStmt(super::CreateSubscriptionStmt),
561        #[prost(message, tag = "261")]
562        AlterSubscriptionStmt(super::AlterSubscriptionStmt),
563        #[prost(message, tag = "262")]
564        DropSubscriptionStmt(super::DropSubscriptionStmt),
565        #[prost(message, tag = "263")]
566        Integer(super::Integer),
567        #[prost(message, tag = "264")]
568        Float(super::Float),
569        #[prost(message, tag = "265")]
570        Boolean(super::Boolean),
571        #[prost(message, tag = "266")]
572        String(super::String),
573        #[prost(message, tag = "267")]
574        BitString(super::BitString),
575        #[prost(message, tag = "268")]
576        List(super::List),
577        #[prost(message, tag = "269")]
578        IntList(super::IntList),
579        #[prost(message, tag = "270")]
580        OidList(super::OidList),
581        #[prost(message, tag = "271")]
582        AConst(super::AConst),
583    }
584    }
585}
586#[derive(serde::Serialize)]
587#[derive(Clone, Copy, PartialEq, ::prost::Message)]
588pub struct Integer {
589    /// machine integer
590    #[prost(int32, tag = "1")]
591    pub ival: i32,
592}
593#[derive(serde::Serialize)]
594#[derive(Clone, PartialEq, ::prost::Message)]
595pub struct Float {
596    /// string
597    #[prost(string, tag = "1")]
598    pub fval: ::prost::alloc::string::String,
599}
600#[derive(serde::Serialize)]
601#[derive(Clone, Copy, PartialEq, ::prost::Message)]
602pub struct Boolean {
603    #[prost(bool, tag = "1")]
604    pub boolval: bool,
605}
606#[derive(serde::Serialize)]
607#[derive(Clone, PartialEq, ::prost::Message)]
608pub struct String {
609    /// string
610    #[prost(string, tag = "1")]
611    pub sval: ::prost::alloc::string::String,
612}
613#[derive(serde::Serialize)]
614#[derive(Clone, PartialEq, ::prost::Message)]
615pub struct BitString {
616    /// string
617    #[prost(string, tag = "1")]
618    pub bsval: ::prost::alloc::string::String,
619}
620#[derive(serde::Serialize)]
621#[derive(Clone, PartialEq, ::prost::Message)]
622pub struct List {
623    #[prost(message, repeated, tag = "1")]
624    pub items: ::prost::alloc::vec::Vec<Node>,
625}
626#[derive(serde::Serialize)]
627#[derive(Clone, PartialEq, ::prost::Message)]
628pub struct OidList {
629    #[prost(message, repeated, tag = "1")]
630    pub items: ::prost::alloc::vec::Vec<Node>,
631}
632#[derive(serde::Serialize)]
633#[derive(Clone, PartialEq, ::prost::Message)]
634pub struct IntList {
635    #[prost(message, repeated, tag = "1")]
636    pub items: ::prost::alloc::vec::Vec<Node>,
637}
638#[derive(serde::Serialize)]
639#[derive(Clone, PartialEq, ::prost::Message)]
640pub struct AConst {
641    #[prost(bool, tag = "10")]
642    pub isnull: bool,
643    #[prost(int32, tag = "11")]
644    pub location: i32,
645    #[prost(oneof = "a_const::Val", tags = "1, 2, 3, 4, 5")]
646    pub val: ::core::option::Option<a_const::Val>,
647}
648/// Nested message and enum types in `A_Const`.
649pub mod a_const {
650    #[derive(serde::Serialize)]
651    #[derive(Clone, PartialEq, ::prost::Oneof)]
652    pub enum Val {
653        #[prost(message, tag = "1")]
654        Ival(super::Integer),
655        #[prost(message, tag = "2")]
656        Fval(super::Float),
657        #[prost(message, tag = "3")]
658        Boolval(super::Boolean),
659        #[prost(message, tag = "4")]
660        Sval(super::String),
661        #[prost(message, tag = "5")]
662        Bsval(super::BitString),
663    }
664}
665#[derive(serde::Serialize)]
666#[derive(Clone, PartialEq, ::prost::Message)]
667pub struct Alias {
668    #[prost(string, tag = "1")]
669    pub aliasname: ::prost::alloc::string::String,
670    #[prost(message, repeated, tag = "2")]
671    pub colnames: ::prost::alloc::vec::Vec<Node>,
672}
673#[derive(serde::Serialize)]
674#[derive(Clone, PartialEq, ::prost::Message)]
675pub struct RangeVar {
676    #[prost(string, tag = "1")]
677    pub catalogname: ::prost::alloc::string::String,
678    #[prost(string, tag = "2")]
679    pub schemaname: ::prost::alloc::string::String,
680    #[prost(string, tag = "3")]
681    pub relname: ::prost::alloc::string::String,
682    #[prost(bool, tag = "4")]
683    pub inh: bool,
684    #[prost(string, tag = "5")]
685    pub relpersistence: ::prost::alloc::string::String,
686    #[prost(message, optional, tag = "6")]
687    pub alias: ::core::option::Option<Alias>,
688    #[prost(int32, tag = "7")]
689    pub location: i32,
690}
691#[derive(serde::Serialize)]
692#[derive(Clone, PartialEq, ::prost::Message)]
693pub struct TableFunc {
694    #[prost(enumeration = "TableFuncType", tag = "1")]
695    pub functype: i32,
696    #[prost(message, repeated, tag = "2")]
697    pub ns_uris: ::prost::alloc::vec::Vec<Node>,
698    #[prost(message, repeated, tag = "3")]
699    pub ns_names: ::prost::alloc::vec::Vec<Node>,
700    #[prost(message, optional, boxed, tag = "4")]
701    pub docexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
702    #[prost(message, optional, boxed, tag = "5")]
703    pub rowexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
704    #[prost(message, repeated, tag = "6")]
705    pub colnames: ::prost::alloc::vec::Vec<Node>,
706    #[prost(message, repeated, tag = "7")]
707    pub coltypes: ::prost::alloc::vec::Vec<Node>,
708    #[prost(message, repeated, tag = "8")]
709    pub coltypmods: ::prost::alloc::vec::Vec<Node>,
710    #[prost(message, repeated, tag = "9")]
711    pub colcollations: ::prost::alloc::vec::Vec<Node>,
712    #[prost(message, repeated, tag = "10")]
713    pub colexprs: ::prost::alloc::vec::Vec<Node>,
714    #[prost(message, repeated, tag = "11")]
715    pub coldefexprs: ::prost::alloc::vec::Vec<Node>,
716    #[prost(message, repeated, tag = "12")]
717    pub colvalexprs: ::prost::alloc::vec::Vec<Node>,
718    #[prost(message, repeated, tag = "13")]
719    pub passingvalexprs: ::prost::alloc::vec::Vec<Node>,
720    #[prost(uint64, repeated, tag = "14")]
721    pub notnulls: ::prost::alloc::vec::Vec<u64>,
722    #[prost(message, optional, boxed, tag = "15")]
723    pub plan: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
724    #[prost(int32, tag = "16")]
725    pub ordinalitycol: i32,
726    #[prost(int32, tag = "17")]
727    pub location: i32,
728}
729#[derive(serde::Serialize)]
730#[derive(Clone, PartialEq, ::prost::Message)]
731pub struct IntoClause {
732    #[prost(message, optional, tag = "1")]
733    pub rel: ::core::option::Option<RangeVar>,
734    #[prost(message, repeated, tag = "2")]
735    pub col_names: ::prost::alloc::vec::Vec<Node>,
736    #[prost(string, tag = "3")]
737    pub access_method: ::prost::alloc::string::String,
738    #[prost(message, repeated, tag = "4")]
739    pub options: ::prost::alloc::vec::Vec<Node>,
740    #[prost(enumeration = "OnCommitAction", tag = "5")]
741    pub on_commit: i32,
742    #[prost(string, tag = "6")]
743    pub table_space_name: ::prost::alloc::string::String,
744    #[prost(message, optional, boxed, tag = "7")]
745    pub view_query: ::core::option::Option<::prost::alloc::boxed::Box<Query>>,
746    #[prost(bool, tag = "8")]
747    pub skip_data: bool,
748}
749#[derive(serde::Serialize)]
750#[derive(Clone, PartialEq, ::prost::Message)]
751pub struct Var {
752    #[prost(message, optional, boxed, tag = "1")]
753    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
754    #[prost(int32, tag = "2")]
755    pub varno: i32,
756    #[prost(int32, tag = "3")]
757    pub varattno: i32,
758    #[prost(uint32, tag = "4")]
759    pub vartype: u32,
760    #[prost(int32, tag = "5")]
761    pub vartypmod: i32,
762    #[prost(uint32, tag = "6")]
763    pub varcollid: u32,
764    #[prost(uint64, repeated, tag = "7")]
765    pub varnullingrels: ::prost::alloc::vec::Vec<u64>,
766    #[prost(uint32, tag = "8")]
767    pub varlevelsup: u32,
768    #[prost(enumeration = "VarReturningType", tag = "9")]
769    pub varreturningtype: i32,
770    #[prost(int32, tag = "10")]
771    pub location: i32,
772}
773#[derive(serde::Serialize)]
774#[derive(Clone, PartialEq, ::prost::Message)]
775pub struct Param {
776    #[prost(message, optional, boxed, tag = "1")]
777    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
778    #[prost(enumeration = "ParamKind", tag = "2")]
779    pub paramkind: i32,
780    #[prost(int32, tag = "3")]
781    pub paramid: i32,
782    #[prost(uint32, tag = "4")]
783    pub paramtype: u32,
784    #[prost(int32, tag = "5")]
785    pub paramtypmod: i32,
786    #[prost(uint32, tag = "6")]
787    pub paramcollid: u32,
788    #[prost(int32, tag = "7")]
789    pub location: i32,
790}
791#[derive(serde::Serialize)]
792#[derive(Clone, PartialEq, ::prost::Message)]
793pub struct Aggref {
794    #[prost(message, optional, boxed, tag = "1")]
795    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
796    #[prost(uint32, tag = "2")]
797    pub aggfnoid: u32,
798    #[prost(uint32, tag = "3")]
799    pub aggtype: u32,
800    #[prost(uint32, tag = "4")]
801    pub aggcollid: u32,
802    #[prost(uint32, tag = "5")]
803    pub inputcollid: u32,
804    #[prost(message, repeated, tag = "6")]
805    pub aggargtypes: ::prost::alloc::vec::Vec<Node>,
806    #[prost(message, repeated, tag = "7")]
807    pub aggdirectargs: ::prost::alloc::vec::Vec<Node>,
808    #[prost(message, repeated, tag = "8")]
809    pub args: ::prost::alloc::vec::Vec<Node>,
810    #[prost(message, repeated, tag = "9")]
811    pub aggorder: ::prost::alloc::vec::Vec<Node>,
812    #[prost(message, repeated, tag = "10")]
813    pub aggdistinct: ::prost::alloc::vec::Vec<Node>,
814    #[prost(message, optional, boxed, tag = "11")]
815    pub aggfilter: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
816    #[prost(bool, tag = "12")]
817    pub aggstar: bool,
818    #[prost(bool, tag = "13")]
819    pub aggvariadic: bool,
820    #[prost(string, tag = "14")]
821    pub aggkind: ::prost::alloc::string::String,
822    #[prost(uint32, tag = "15")]
823    pub agglevelsup: u32,
824    #[prost(enumeration = "AggSplit", tag = "16")]
825    pub aggsplit: i32,
826    #[prost(int32, tag = "17")]
827    pub aggno: i32,
828    #[prost(int32, tag = "18")]
829    pub aggtransno: i32,
830    #[prost(int32, tag = "19")]
831    pub location: i32,
832}
833#[derive(serde::Serialize)]
834#[derive(Clone, PartialEq, ::prost::Message)]
835pub struct GroupingFunc {
836    #[prost(message, optional, boxed, tag = "1")]
837    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
838    #[prost(message, repeated, tag = "2")]
839    pub args: ::prost::alloc::vec::Vec<Node>,
840    #[prost(message, repeated, tag = "3")]
841    pub refs: ::prost::alloc::vec::Vec<Node>,
842    #[prost(uint32, tag = "4")]
843    pub agglevelsup: u32,
844    #[prost(int32, tag = "5")]
845    pub location: i32,
846}
847#[derive(serde::Serialize)]
848#[derive(Clone, PartialEq, ::prost::Message)]
849pub struct WindowFunc {
850    #[prost(message, optional, boxed, tag = "1")]
851    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
852    #[prost(uint32, tag = "2")]
853    pub winfnoid: u32,
854    #[prost(uint32, tag = "3")]
855    pub wintype: u32,
856    #[prost(uint32, tag = "4")]
857    pub wincollid: u32,
858    #[prost(uint32, tag = "5")]
859    pub inputcollid: u32,
860    #[prost(message, repeated, tag = "6")]
861    pub args: ::prost::alloc::vec::Vec<Node>,
862    #[prost(message, optional, boxed, tag = "7")]
863    pub aggfilter: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
864    #[prost(message, repeated, tag = "8")]
865    pub run_condition: ::prost::alloc::vec::Vec<Node>,
866    #[prost(uint32, tag = "9")]
867    pub winref: u32,
868    #[prost(bool, tag = "10")]
869    pub winstar: bool,
870    #[prost(bool, tag = "11")]
871    pub winagg: bool,
872    #[prost(int32, tag = "12")]
873    pub location: i32,
874}
875#[derive(serde::Serialize)]
876#[derive(Clone, PartialEq, ::prost::Message)]
877pub struct WindowFuncRunCondition {
878    #[prost(message, optional, boxed, tag = "1")]
879    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
880    #[prost(uint32, tag = "2")]
881    pub opno: u32,
882    #[prost(uint32, tag = "3")]
883    pub inputcollid: u32,
884    #[prost(bool, tag = "4")]
885    pub wfunc_left: bool,
886    #[prost(message, optional, boxed, tag = "5")]
887    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
888}
889#[derive(serde::Serialize)]
890#[derive(Clone, PartialEq, ::prost::Message)]
891pub struct MergeSupportFunc {
892    #[prost(message, optional, boxed, tag = "1")]
893    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
894    #[prost(uint32, tag = "2")]
895    pub msftype: u32,
896    #[prost(uint32, tag = "3")]
897    pub msfcollid: u32,
898    #[prost(int32, tag = "4")]
899    pub location: i32,
900}
901#[derive(serde::Serialize)]
902#[derive(Clone, PartialEq, ::prost::Message)]
903pub struct SubscriptingRef {
904    #[prost(message, optional, boxed, tag = "1")]
905    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
906    #[prost(uint32, tag = "2")]
907    pub refcontainertype: u32,
908    #[prost(uint32, tag = "3")]
909    pub refelemtype: u32,
910    #[prost(uint32, tag = "4")]
911    pub refrestype: u32,
912    #[prost(int32, tag = "5")]
913    pub reftypmod: i32,
914    #[prost(uint32, tag = "6")]
915    pub refcollid: u32,
916    #[prost(message, repeated, tag = "7")]
917    pub refupperindexpr: ::prost::alloc::vec::Vec<Node>,
918    #[prost(message, repeated, tag = "8")]
919    pub reflowerindexpr: ::prost::alloc::vec::Vec<Node>,
920    #[prost(message, optional, boxed, tag = "9")]
921    pub refexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
922    #[prost(message, optional, boxed, tag = "10")]
923    pub refassgnexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
924}
925#[derive(serde::Serialize)]
926#[derive(Clone, PartialEq, ::prost::Message)]
927pub struct FuncExpr {
928    #[prost(message, optional, boxed, tag = "1")]
929    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
930    #[prost(uint32, tag = "2")]
931    pub funcid: u32,
932    #[prost(uint32, tag = "3")]
933    pub funcresulttype: u32,
934    #[prost(bool, tag = "4")]
935    pub funcretset: bool,
936    #[prost(bool, tag = "5")]
937    pub funcvariadic: bool,
938    #[prost(enumeration = "CoercionForm", tag = "6")]
939    pub funcformat: i32,
940    #[prost(uint32, tag = "7")]
941    pub funccollid: u32,
942    #[prost(uint32, tag = "8")]
943    pub inputcollid: u32,
944    #[prost(message, repeated, tag = "9")]
945    pub args: ::prost::alloc::vec::Vec<Node>,
946    #[prost(int32, tag = "10")]
947    pub location: i32,
948}
949#[derive(serde::Serialize)]
950#[derive(Clone, PartialEq, ::prost::Message)]
951pub struct NamedArgExpr {
952    #[prost(message, optional, boxed, tag = "1")]
953    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
954    #[prost(message, optional, boxed, tag = "2")]
955    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
956    #[prost(string, tag = "3")]
957    pub name: ::prost::alloc::string::String,
958    #[prost(int32, tag = "4")]
959    pub argnumber: i32,
960    #[prost(int32, tag = "5")]
961    pub location: i32,
962}
963#[derive(serde::Serialize)]
964#[derive(Clone, PartialEq, ::prost::Message)]
965pub struct OpExpr {
966    #[prost(message, optional, boxed, tag = "1")]
967    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
968    #[prost(uint32, tag = "2")]
969    pub opno: u32,
970    #[prost(uint32, tag = "3")]
971    pub opresulttype: u32,
972    #[prost(bool, tag = "4")]
973    pub opretset: bool,
974    #[prost(uint32, tag = "5")]
975    pub opcollid: u32,
976    #[prost(uint32, tag = "6")]
977    pub inputcollid: u32,
978    #[prost(message, repeated, tag = "7")]
979    pub args: ::prost::alloc::vec::Vec<Node>,
980    #[prost(int32, tag = "8")]
981    pub location: i32,
982}
983#[derive(serde::Serialize)]
984#[derive(Clone, PartialEq, ::prost::Message)]
985pub struct DistinctExpr {
986    #[prost(message, optional, boxed, tag = "1")]
987    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
988    #[prost(uint32, tag = "2")]
989    pub opno: u32,
990    #[prost(uint32, tag = "3")]
991    pub opresulttype: u32,
992    #[prost(bool, tag = "4")]
993    pub opretset: bool,
994    #[prost(uint32, tag = "5")]
995    pub opcollid: u32,
996    #[prost(uint32, tag = "6")]
997    pub inputcollid: u32,
998    #[prost(message, repeated, tag = "7")]
999    pub args: ::prost::alloc::vec::Vec<Node>,
1000    #[prost(int32, tag = "8")]
1001    pub location: i32,
1002}
1003#[derive(serde::Serialize)]
1004#[derive(Clone, PartialEq, ::prost::Message)]
1005pub struct NullIfExpr {
1006    #[prost(message, optional, boxed, tag = "1")]
1007    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1008    #[prost(uint32, tag = "2")]
1009    pub opno: u32,
1010    #[prost(uint32, tag = "3")]
1011    pub opresulttype: u32,
1012    #[prost(bool, tag = "4")]
1013    pub opretset: bool,
1014    #[prost(uint32, tag = "5")]
1015    pub opcollid: u32,
1016    #[prost(uint32, tag = "6")]
1017    pub inputcollid: u32,
1018    #[prost(message, repeated, tag = "7")]
1019    pub args: ::prost::alloc::vec::Vec<Node>,
1020    #[prost(int32, tag = "8")]
1021    pub location: i32,
1022}
1023#[derive(serde::Serialize)]
1024#[derive(Clone, PartialEq, ::prost::Message)]
1025pub struct ScalarArrayOpExpr {
1026    #[prost(message, optional, boxed, tag = "1")]
1027    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1028    #[prost(uint32, tag = "2")]
1029    pub opno: u32,
1030    #[prost(bool, tag = "3")]
1031    pub use_or: bool,
1032    #[prost(uint32, tag = "4")]
1033    pub inputcollid: u32,
1034    #[prost(message, repeated, tag = "5")]
1035    pub args: ::prost::alloc::vec::Vec<Node>,
1036    #[prost(int32, tag = "6")]
1037    pub location: i32,
1038}
1039#[derive(serde::Serialize)]
1040#[derive(Clone, PartialEq, ::prost::Message)]
1041pub struct BoolExpr {
1042    #[prost(message, optional, boxed, tag = "1")]
1043    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1044    #[prost(enumeration = "BoolExprType", tag = "2")]
1045    pub boolop: i32,
1046    #[prost(message, repeated, tag = "3")]
1047    pub args: ::prost::alloc::vec::Vec<Node>,
1048    #[prost(int32, tag = "4")]
1049    pub location: i32,
1050}
1051#[derive(serde::Serialize)]
1052#[derive(Clone, PartialEq, ::prost::Message)]
1053pub struct SubLink {
1054    #[prost(message, optional, boxed, tag = "1")]
1055    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1056    #[prost(enumeration = "SubLinkType", tag = "2")]
1057    pub sub_link_type: i32,
1058    #[prost(int32, tag = "3")]
1059    pub sub_link_id: i32,
1060    #[prost(message, optional, boxed, tag = "4")]
1061    pub testexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1062    #[prost(message, repeated, tag = "5")]
1063    pub oper_name: ::prost::alloc::vec::Vec<Node>,
1064    #[prost(message, optional, boxed, tag = "6")]
1065    pub subselect: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1066    #[prost(int32, tag = "7")]
1067    pub location: i32,
1068}
1069#[derive(serde::Serialize)]
1070#[derive(Clone, PartialEq, ::prost::Message)]
1071pub struct SubPlan {
1072    #[prost(message, optional, boxed, tag = "1")]
1073    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1074    #[prost(enumeration = "SubLinkType", tag = "2")]
1075    pub sub_link_type: i32,
1076    #[prost(message, optional, boxed, tag = "3")]
1077    pub testexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1078    #[prost(message, repeated, tag = "4")]
1079    pub param_ids: ::prost::alloc::vec::Vec<Node>,
1080    #[prost(int32, tag = "5")]
1081    pub plan_id: i32,
1082    #[prost(string, tag = "6")]
1083    pub plan_name: ::prost::alloc::string::String,
1084    #[prost(uint32, tag = "7")]
1085    pub first_col_type: u32,
1086    #[prost(int32, tag = "8")]
1087    pub first_col_typmod: i32,
1088    #[prost(uint32, tag = "9")]
1089    pub first_col_collation: u32,
1090    #[prost(bool, tag = "10")]
1091    pub use_hash_table: bool,
1092    #[prost(bool, tag = "11")]
1093    pub unknown_eq_false: bool,
1094    #[prost(bool, tag = "12")]
1095    pub parallel_safe: bool,
1096    #[prost(message, repeated, tag = "13")]
1097    pub set_param: ::prost::alloc::vec::Vec<Node>,
1098    #[prost(message, repeated, tag = "14")]
1099    pub par_param: ::prost::alloc::vec::Vec<Node>,
1100    #[prost(message, repeated, tag = "15")]
1101    pub args: ::prost::alloc::vec::Vec<Node>,
1102    #[prost(double, tag = "16")]
1103    pub startup_cost: f64,
1104    #[prost(double, tag = "17")]
1105    pub per_call_cost: f64,
1106}
1107#[derive(serde::Serialize)]
1108#[derive(Clone, PartialEq, ::prost::Message)]
1109pub struct AlternativeSubPlan {
1110    #[prost(message, optional, boxed, tag = "1")]
1111    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1112    #[prost(message, repeated, tag = "2")]
1113    pub subplans: ::prost::alloc::vec::Vec<Node>,
1114}
1115#[derive(serde::Serialize)]
1116#[derive(Clone, PartialEq, ::prost::Message)]
1117pub struct FieldSelect {
1118    #[prost(message, optional, boxed, tag = "1")]
1119    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1120    #[prost(message, optional, boxed, tag = "2")]
1121    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1122    #[prost(int32, tag = "3")]
1123    pub fieldnum: i32,
1124    #[prost(uint32, tag = "4")]
1125    pub resulttype: u32,
1126    #[prost(int32, tag = "5")]
1127    pub resulttypmod: i32,
1128    #[prost(uint32, tag = "6")]
1129    pub resultcollid: u32,
1130}
1131#[derive(serde::Serialize)]
1132#[derive(Clone, PartialEq, ::prost::Message)]
1133pub struct FieldStore {
1134    #[prost(message, optional, boxed, tag = "1")]
1135    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1136    #[prost(message, optional, boxed, tag = "2")]
1137    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1138    #[prost(message, repeated, tag = "3")]
1139    pub newvals: ::prost::alloc::vec::Vec<Node>,
1140    #[prost(message, repeated, tag = "4")]
1141    pub fieldnums: ::prost::alloc::vec::Vec<Node>,
1142    #[prost(uint32, tag = "5")]
1143    pub resulttype: u32,
1144}
1145#[derive(serde::Serialize)]
1146#[derive(Clone, PartialEq, ::prost::Message)]
1147pub struct RelabelType {
1148    #[prost(message, optional, boxed, tag = "1")]
1149    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1150    #[prost(message, optional, boxed, tag = "2")]
1151    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1152    #[prost(uint32, tag = "3")]
1153    pub resulttype: u32,
1154    #[prost(int32, tag = "4")]
1155    pub resulttypmod: i32,
1156    #[prost(uint32, tag = "5")]
1157    pub resultcollid: u32,
1158    #[prost(enumeration = "CoercionForm", tag = "6")]
1159    pub relabelformat: i32,
1160    #[prost(int32, tag = "7")]
1161    pub location: i32,
1162}
1163#[derive(serde::Serialize)]
1164#[derive(Clone, PartialEq, ::prost::Message)]
1165pub struct CoerceViaIo {
1166    #[prost(message, optional, boxed, tag = "1")]
1167    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1168    #[prost(message, optional, boxed, tag = "2")]
1169    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1170    #[prost(uint32, tag = "3")]
1171    pub resulttype: u32,
1172    #[prost(uint32, tag = "4")]
1173    pub resultcollid: u32,
1174    #[prost(enumeration = "CoercionForm", tag = "5")]
1175    pub coerceformat: i32,
1176    #[prost(int32, tag = "6")]
1177    pub location: i32,
1178}
1179#[derive(serde::Serialize)]
1180#[derive(Clone, PartialEq, ::prost::Message)]
1181pub struct ArrayCoerceExpr {
1182    #[prost(message, optional, boxed, tag = "1")]
1183    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1184    #[prost(message, optional, boxed, tag = "2")]
1185    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1186    #[prost(message, optional, boxed, tag = "3")]
1187    pub elemexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1188    #[prost(uint32, tag = "4")]
1189    pub resulttype: u32,
1190    #[prost(int32, tag = "5")]
1191    pub resulttypmod: i32,
1192    #[prost(uint32, tag = "6")]
1193    pub resultcollid: u32,
1194    #[prost(enumeration = "CoercionForm", tag = "7")]
1195    pub coerceformat: i32,
1196    #[prost(int32, tag = "8")]
1197    pub location: i32,
1198}
1199#[derive(serde::Serialize)]
1200#[derive(Clone, PartialEq, ::prost::Message)]
1201pub struct ConvertRowtypeExpr {
1202    #[prost(message, optional, boxed, tag = "1")]
1203    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1204    #[prost(message, optional, boxed, tag = "2")]
1205    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1206    #[prost(uint32, tag = "3")]
1207    pub resulttype: u32,
1208    #[prost(enumeration = "CoercionForm", tag = "4")]
1209    pub convertformat: i32,
1210    #[prost(int32, tag = "5")]
1211    pub location: i32,
1212}
1213#[derive(serde::Serialize)]
1214#[derive(Clone, PartialEq, ::prost::Message)]
1215pub struct CollateExpr {
1216    #[prost(message, optional, boxed, tag = "1")]
1217    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1218    #[prost(message, optional, boxed, tag = "2")]
1219    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1220    #[prost(uint32, tag = "3")]
1221    pub coll_oid: u32,
1222    #[prost(int32, tag = "4")]
1223    pub location: i32,
1224}
1225#[derive(serde::Serialize)]
1226#[derive(Clone, PartialEq, ::prost::Message)]
1227pub struct CaseExpr {
1228    #[prost(message, optional, boxed, tag = "1")]
1229    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1230    #[prost(uint32, tag = "2")]
1231    pub casetype: u32,
1232    #[prost(uint32, tag = "3")]
1233    pub casecollid: u32,
1234    #[prost(message, optional, boxed, tag = "4")]
1235    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1236    #[prost(message, repeated, tag = "5")]
1237    pub args: ::prost::alloc::vec::Vec<Node>,
1238    #[prost(message, optional, boxed, tag = "6")]
1239    pub defresult: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1240    #[prost(int32, tag = "7")]
1241    pub location: i32,
1242}
1243#[derive(serde::Serialize)]
1244#[derive(Clone, PartialEq, ::prost::Message)]
1245pub struct CaseWhen {
1246    #[prost(message, optional, boxed, tag = "1")]
1247    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1248    #[prost(message, optional, boxed, tag = "2")]
1249    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1250    #[prost(message, optional, boxed, tag = "3")]
1251    pub result: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1252    #[prost(int32, tag = "4")]
1253    pub location: i32,
1254}
1255#[derive(serde::Serialize)]
1256#[derive(Clone, PartialEq, ::prost::Message)]
1257pub struct CaseTestExpr {
1258    #[prost(message, optional, boxed, tag = "1")]
1259    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1260    #[prost(uint32, tag = "2")]
1261    pub type_id: u32,
1262    #[prost(int32, tag = "3")]
1263    pub type_mod: i32,
1264    #[prost(uint32, tag = "4")]
1265    pub collation: u32,
1266}
1267#[derive(serde::Serialize)]
1268#[derive(Clone, PartialEq, ::prost::Message)]
1269pub struct ArrayExpr {
1270    #[prost(message, optional, boxed, tag = "1")]
1271    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1272    #[prost(uint32, tag = "2")]
1273    pub array_typeid: u32,
1274    #[prost(uint32, tag = "3")]
1275    pub array_collid: u32,
1276    #[prost(uint32, tag = "4")]
1277    pub element_typeid: u32,
1278    #[prost(message, repeated, tag = "5")]
1279    pub elements: ::prost::alloc::vec::Vec<Node>,
1280    #[prost(bool, tag = "6")]
1281    pub multidims: bool,
1282    #[prost(int32, tag = "7")]
1283    pub list_start: i32,
1284    #[prost(int32, tag = "8")]
1285    pub list_end: i32,
1286    #[prost(int32, tag = "9")]
1287    pub location: i32,
1288}
1289#[derive(serde::Serialize)]
1290#[derive(Clone, PartialEq, ::prost::Message)]
1291pub struct RowExpr {
1292    #[prost(message, optional, boxed, tag = "1")]
1293    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1294    #[prost(message, repeated, tag = "2")]
1295    pub args: ::prost::alloc::vec::Vec<Node>,
1296    #[prost(uint32, tag = "3")]
1297    pub row_typeid: u32,
1298    #[prost(enumeration = "CoercionForm", tag = "4")]
1299    pub row_format: i32,
1300    #[prost(message, repeated, tag = "5")]
1301    pub colnames: ::prost::alloc::vec::Vec<Node>,
1302    #[prost(int32, tag = "6")]
1303    pub location: i32,
1304}
1305#[derive(serde::Serialize)]
1306#[derive(Clone, PartialEq, ::prost::Message)]
1307pub struct RowCompareExpr {
1308    #[prost(message, optional, boxed, tag = "1")]
1309    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1310    #[prost(enumeration = "CompareType", tag = "2")]
1311    pub cmptype: i32,
1312    #[prost(message, repeated, tag = "3")]
1313    pub opnos: ::prost::alloc::vec::Vec<Node>,
1314    #[prost(message, repeated, tag = "4")]
1315    pub opfamilies: ::prost::alloc::vec::Vec<Node>,
1316    #[prost(message, repeated, tag = "5")]
1317    pub inputcollids: ::prost::alloc::vec::Vec<Node>,
1318    #[prost(message, repeated, tag = "6")]
1319    pub largs: ::prost::alloc::vec::Vec<Node>,
1320    #[prost(message, repeated, tag = "7")]
1321    pub rargs: ::prost::alloc::vec::Vec<Node>,
1322}
1323#[derive(serde::Serialize)]
1324#[derive(Clone, PartialEq, ::prost::Message)]
1325pub struct CoalesceExpr {
1326    #[prost(message, optional, boxed, tag = "1")]
1327    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1328    #[prost(uint32, tag = "2")]
1329    pub coalescetype: u32,
1330    #[prost(uint32, tag = "3")]
1331    pub coalescecollid: u32,
1332    #[prost(message, repeated, tag = "4")]
1333    pub args: ::prost::alloc::vec::Vec<Node>,
1334    #[prost(int32, tag = "5")]
1335    pub location: i32,
1336}
1337#[derive(serde::Serialize)]
1338#[derive(Clone, PartialEq, ::prost::Message)]
1339pub struct MinMaxExpr {
1340    #[prost(message, optional, boxed, tag = "1")]
1341    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1342    #[prost(uint32, tag = "2")]
1343    pub minmaxtype: u32,
1344    #[prost(uint32, tag = "3")]
1345    pub minmaxcollid: u32,
1346    #[prost(uint32, tag = "4")]
1347    pub inputcollid: u32,
1348    #[prost(enumeration = "MinMaxOp", tag = "5")]
1349    pub op: i32,
1350    #[prost(message, repeated, tag = "6")]
1351    pub args: ::prost::alloc::vec::Vec<Node>,
1352    #[prost(int32, tag = "7")]
1353    pub location: i32,
1354}
1355#[derive(serde::Serialize)]
1356#[derive(Clone, PartialEq, ::prost::Message)]
1357pub struct SqlValueFunction {
1358    #[prost(message, optional, boxed, tag = "1")]
1359    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1360    #[prost(enumeration = "SqlValueFunctionOp", tag = "2")]
1361    pub op: i32,
1362    #[prost(uint32, tag = "3")]
1363    pub r#type: u32,
1364    #[prost(int32, tag = "4")]
1365    pub typmod: i32,
1366    #[prost(int32, tag = "5")]
1367    pub location: i32,
1368}
1369#[derive(serde::Serialize)]
1370#[derive(Clone, PartialEq, ::prost::Message)]
1371pub struct XmlExpr {
1372    #[prost(message, optional, boxed, tag = "1")]
1373    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1374    #[prost(enumeration = "XmlExprOp", tag = "2")]
1375    pub op: i32,
1376    #[prost(string, tag = "3")]
1377    pub name: ::prost::alloc::string::String,
1378    #[prost(message, repeated, tag = "4")]
1379    pub named_args: ::prost::alloc::vec::Vec<Node>,
1380    #[prost(message, repeated, tag = "5")]
1381    pub arg_names: ::prost::alloc::vec::Vec<Node>,
1382    #[prost(message, repeated, tag = "6")]
1383    pub args: ::prost::alloc::vec::Vec<Node>,
1384    #[prost(enumeration = "XmlOptionType", tag = "7")]
1385    pub xmloption: i32,
1386    #[prost(bool, tag = "8")]
1387    pub indent: bool,
1388    #[prost(uint32, tag = "9")]
1389    pub r#type: u32,
1390    #[prost(int32, tag = "10")]
1391    pub typmod: i32,
1392    #[prost(int32, tag = "11")]
1393    pub location: i32,
1394}
1395#[derive(serde::Serialize)]
1396#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1397pub struct JsonFormat {
1398    #[prost(enumeration = "JsonFormatType", tag = "1")]
1399    pub format_type: i32,
1400    #[prost(enumeration = "JsonEncoding", tag = "2")]
1401    pub encoding: i32,
1402    #[prost(int32, tag = "3")]
1403    pub location: i32,
1404}
1405#[derive(serde::Serialize)]
1406#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1407pub struct JsonReturning {
1408    #[prost(message, optional, tag = "1")]
1409    pub format: ::core::option::Option<JsonFormat>,
1410    #[prost(uint32, tag = "2")]
1411    pub typid: u32,
1412    #[prost(int32, tag = "3")]
1413    pub typmod: i32,
1414}
1415#[derive(serde::Serialize)]
1416#[derive(Clone, PartialEq, ::prost::Message)]
1417pub struct JsonValueExpr {
1418    #[prost(message, optional, boxed, tag = "1")]
1419    pub raw_expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1420    #[prost(message, optional, boxed, tag = "2")]
1421    pub formatted_expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1422    #[prost(message, optional, tag = "3")]
1423    pub format: ::core::option::Option<JsonFormat>,
1424}
1425#[derive(serde::Serialize)]
1426#[derive(Clone, PartialEq, ::prost::Message)]
1427pub struct JsonConstructorExpr {
1428    #[prost(message, optional, boxed, tag = "1")]
1429    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1430    #[prost(enumeration = "JsonConstructorType", tag = "2")]
1431    pub r#type: i32,
1432    #[prost(message, repeated, tag = "3")]
1433    pub args: ::prost::alloc::vec::Vec<Node>,
1434    #[prost(message, optional, boxed, tag = "4")]
1435    pub func: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1436    #[prost(message, optional, boxed, tag = "5")]
1437    pub coercion: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1438    #[prost(message, optional, tag = "6")]
1439    pub returning: ::core::option::Option<JsonReturning>,
1440    #[prost(bool, tag = "7")]
1441    pub absent_on_null: bool,
1442    #[prost(bool, tag = "8")]
1443    pub unique: bool,
1444    #[prost(int32, tag = "9")]
1445    pub location: i32,
1446}
1447#[derive(serde::Serialize)]
1448#[derive(Clone, PartialEq, ::prost::Message)]
1449pub struct JsonIsPredicate {
1450    #[prost(message, optional, boxed, tag = "1")]
1451    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1452    #[prost(message, optional, tag = "2")]
1453    pub format: ::core::option::Option<JsonFormat>,
1454    #[prost(enumeration = "JsonValueType", tag = "3")]
1455    pub item_type: i32,
1456    #[prost(bool, tag = "4")]
1457    pub unique_keys: bool,
1458    #[prost(int32, tag = "5")]
1459    pub location: i32,
1460}
1461#[derive(serde::Serialize)]
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463pub struct JsonBehavior {
1464    #[prost(enumeration = "JsonBehaviorType", tag = "1")]
1465    pub btype: i32,
1466    #[prost(message, optional, boxed, tag = "2")]
1467    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1468    #[prost(bool, tag = "3")]
1469    pub coerce: bool,
1470    #[prost(int32, tag = "4")]
1471    pub location: i32,
1472}
1473#[derive(serde::Serialize)]
1474#[derive(Clone, PartialEq, ::prost::Message)]
1475pub struct JsonExpr {
1476    #[prost(message, optional, boxed, tag = "1")]
1477    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1478    #[prost(enumeration = "JsonExprOp", tag = "2")]
1479    pub op: i32,
1480    #[prost(string, tag = "3")]
1481    pub column_name: ::prost::alloc::string::String,
1482    #[prost(message, optional, boxed, tag = "4")]
1483    pub formatted_expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1484    #[prost(message, optional, tag = "5")]
1485    pub format: ::core::option::Option<JsonFormat>,
1486    #[prost(message, optional, boxed, tag = "6")]
1487    pub path_spec: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1488    #[prost(message, optional, tag = "7")]
1489    pub returning: ::core::option::Option<JsonReturning>,
1490    #[prost(message, repeated, tag = "8")]
1491    pub passing_names: ::prost::alloc::vec::Vec<Node>,
1492    #[prost(message, repeated, tag = "9")]
1493    pub passing_values: ::prost::alloc::vec::Vec<Node>,
1494    #[prost(message, optional, boxed, tag = "10")]
1495    pub on_empty: ::core::option::Option<::prost::alloc::boxed::Box<JsonBehavior>>,
1496    #[prost(message, optional, boxed, tag = "11")]
1497    pub on_error: ::core::option::Option<::prost::alloc::boxed::Box<JsonBehavior>>,
1498    #[prost(bool, tag = "12")]
1499    pub use_io_coercion: bool,
1500    #[prost(bool, tag = "13")]
1501    pub use_json_coercion: bool,
1502    #[prost(enumeration = "JsonWrapper", tag = "14")]
1503    pub wrapper: i32,
1504    #[prost(bool, tag = "15")]
1505    pub omit_quotes: bool,
1506    #[prost(uint32, tag = "16")]
1507    pub collation: u32,
1508    #[prost(int32, tag = "17")]
1509    pub location: i32,
1510}
1511#[derive(serde::Serialize)]
1512#[derive(Clone, PartialEq, ::prost::Message)]
1513pub struct JsonTablePath {
1514    #[prost(string, tag = "1")]
1515    pub name: ::prost::alloc::string::String,
1516}
1517#[derive(serde::Serialize)]
1518#[derive(Clone, PartialEq, ::prost::Message)]
1519pub struct JsonTablePathScan {
1520    #[prost(message, optional, boxed, tag = "1")]
1521    pub plan: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1522    #[prost(message, optional, tag = "2")]
1523    pub path: ::core::option::Option<JsonTablePath>,
1524    #[prost(bool, tag = "3")]
1525    pub error_on_error: bool,
1526    #[prost(message, optional, boxed, tag = "4")]
1527    pub child: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1528    #[prost(int32, tag = "5")]
1529    pub col_min: i32,
1530    #[prost(int32, tag = "6")]
1531    pub col_max: i32,
1532}
1533#[derive(serde::Serialize)]
1534#[derive(Clone, PartialEq, ::prost::Message)]
1535pub struct JsonTableSiblingJoin {
1536    #[prost(message, optional, boxed, tag = "1")]
1537    pub plan: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1538    #[prost(message, optional, boxed, tag = "2")]
1539    pub lplan: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1540    #[prost(message, optional, boxed, tag = "3")]
1541    pub rplan: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1542}
1543#[derive(serde::Serialize)]
1544#[derive(Clone, PartialEq, ::prost::Message)]
1545pub struct NullTest {
1546    #[prost(message, optional, boxed, tag = "1")]
1547    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1548    #[prost(message, optional, boxed, tag = "2")]
1549    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1550    #[prost(enumeration = "NullTestType", tag = "3")]
1551    pub nulltesttype: i32,
1552    #[prost(bool, tag = "4")]
1553    pub argisrow: bool,
1554    #[prost(int32, tag = "5")]
1555    pub location: i32,
1556}
1557#[derive(serde::Serialize)]
1558#[derive(Clone, PartialEq, ::prost::Message)]
1559pub struct BooleanTest {
1560    #[prost(message, optional, boxed, tag = "1")]
1561    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1562    #[prost(message, optional, boxed, tag = "2")]
1563    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1564    #[prost(enumeration = "BoolTestType", tag = "3")]
1565    pub booltesttype: i32,
1566    #[prost(int32, tag = "4")]
1567    pub location: i32,
1568}
1569#[derive(serde::Serialize)]
1570#[derive(Clone, PartialEq, ::prost::Message)]
1571pub struct MergeAction {
1572    #[prost(enumeration = "MergeMatchKind", tag = "1")]
1573    pub match_kind: i32,
1574    #[prost(enumeration = "CmdType", tag = "2")]
1575    pub command_type: i32,
1576    #[prost(enumeration = "OverridingKind", tag = "3")]
1577    pub r#override: i32,
1578    #[prost(message, optional, boxed, tag = "4")]
1579    pub qual: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1580    #[prost(message, repeated, tag = "5")]
1581    pub target_list: ::prost::alloc::vec::Vec<Node>,
1582    #[prost(message, repeated, tag = "6")]
1583    pub update_colnos: ::prost::alloc::vec::Vec<Node>,
1584}
1585#[derive(serde::Serialize)]
1586#[derive(Clone, PartialEq, ::prost::Message)]
1587pub struct CoerceToDomain {
1588    #[prost(message, optional, boxed, tag = "1")]
1589    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1590    #[prost(message, optional, boxed, tag = "2")]
1591    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1592    #[prost(uint32, tag = "3")]
1593    pub resulttype: u32,
1594    #[prost(int32, tag = "4")]
1595    pub resulttypmod: i32,
1596    #[prost(uint32, tag = "5")]
1597    pub resultcollid: u32,
1598    #[prost(enumeration = "CoercionForm", tag = "6")]
1599    pub coercionformat: i32,
1600    #[prost(int32, tag = "7")]
1601    pub location: i32,
1602}
1603#[derive(serde::Serialize)]
1604#[derive(Clone, PartialEq, ::prost::Message)]
1605pub struct CoerceToDomainValue {
1606    #[prost(message, optional, boxed, tag = "1")]
1607    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1608    #[prost(uint32, tag = "2")]
1609    pub type_id: u32,
1610    #[prost(int32, tag = "3")]
1611    pub type_mod: i32,
1612    #[prost(uint32, tag = "4")]
1613    pub collation: u32,
1614    #[prost(int32, tag = "5")]
1615    pub location: i32,
1616}
1617#[derive(serde::Serialize)]
1618#[derive(Clone, PartialEq, ::prost::Message)]
1619pub struct SetToDefault {
1620    #[prost(message, optional, boxed, tag = "1")]
1621    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1622    #[prost(uint32, tag = "2")]
1623    pub type_id: u32,
1624    #[prost(int32, tag = "3")]
1625    pub type_mod: i32,
1626    #[prost(uint32, tag = "4")]
1627    pub collation: u32,
1628    #[prost(int32, tag = "5")]
1629    pub location: i32,
1630}
1631#[derive(serde::Serialize)]
1632#[derive(Clone, PartialEq, ::prost::Message)]
1633pub struct CurrentOfExpr {
1634    #[prost(message, optional, boxed, tag = "1")]
1635    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1636    #[prost(uint32, tag = "2")]
1637    pub cvarno: u32,
1638    #[prost(string, tag = "3")]
1639    pub cursor_name: ::prost::alloc::string::String,
1640    #[prost(int32, tag = "4")]
1641    pub cursor_param: i32,
1642}
1643#[derive(serde::Serialize)]
1644#[derive(Clone, PartialEq, ::prost::Message)]
1645pub struct NextValueExpr {
1646    #[prost(message, optional, boxed, tag = "1")]
1647    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1648    #[prost(uint32, tag = "2")]
1649    pub seqid: u32,
1650    #[prost(uint32, tag = "3")]
1651    pub type_id: u32,
1652}
1653#[derive(serde::Serialize)]
1654#[derive(Clone, PartialEq, ::prost::Message)]
1655pub struct InferenceElem {
1656    #[prost(message, optional, boxed, tag = "1")]
1657    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1658    #[prost(message, optional, boxed, tag = "2")]
1659    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1660    #[prost(uint32, tag = "3")]
1661    pub infercollid: u32,
1662    #[prost(uint32, tag = "4")]
1663    pub inferopclass: u32,
1664}
1665#[derive(serde::Serialize)]
1666#[derive(Clone, PartialEq, ::prost::Message)]
1667pub struct ReturningExpr {
1668    #[prost(message, optional, boxed, tag = "1")]
1669    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1670    #[prost(int32, tag = "2")]
1671    pub retlevelsup: i32,
1672    #[prost(bool, tag = "3")]
1673    pub retold: bool,
1674    #[prost(message, optional, boxed, tag = "4")]
1675    pub retexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1676}
1677#[derive(serde::Serialize)]
1678#[derive(Clone, PartialEq, ::prost::Message)]
1679pub struct TargetEntry {
1680    #[prost(message, optional, boxed, tag = "1")]
1681    pub xpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1682    #[prost(message, optional, boxed, tag = "2")]
1683    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1684    #[prost(int32, tag = "3")]
1685    pub resno: i32,
1686    #[prost(string, tag = "4")]
1687    pub resname: ::prost::alloc::string::String,
1688    #[prost(uint32, tag = "5")]
1689    pub ressortgroupref: u32,
1690    #[prost(uint32, tag = "6")]
1691    pub resorigtbl: u32,
1692    #[prost(int32, tag = "7")]
1693    pub resorigcol: i32,
1694    #[prost(bool, tag = "8")]
1695    pub resjunk: bool,
1696}
1697#[derive(serde::Serialize)]
1698#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1699pub struct RangeTblRef {
1700    #[prost(int32, tag = "1")]
1701    pub rtindex: i32,
1702}
1703#[derive(serde::Serialize)]
1704#[derive(Clone, PartialEq, ::prost::Message)]
1705pub struct JoinExpr {
1706    #[prost(enumeration = "JoinType", tag = "1")]
1707    pub jointype: i32,
1708    #[prost(bool, tag = "2")]
1709    pub is_natural: bool,
1710    #[prost(message, optional, boxed, tag = "3")]
1711    pub larg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1712    #[prost(message, optional, boxed, tag = "4")]
1713    pub rarg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1714    #[prost(message, repeated, tag = "5")]
1715    pub using_clause: ::prost::alloc::vec::Vec<Node>,
1716    #[prost(message, optional, tag = "6")]
1717    pub join_using_alias: ::core::option::Option<Alias>,
1718    #[prost(message, optional, boxed, tag = "7")]
1719    pub quals: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1720    #[prost(message, optional, tag = "8")]
1721    pub alias: ::core::option::Option<Alias>,
1722    #[prost(int32, tag = "9")]
1723    pub rtindex: i32,
1724}
1725#[derive(serde::Serialize)]
1726#[derive(Clone, PartialEq, ::prost::Message)]
1727pub struct FromExpr {
1728    #[prost(message, repeated, tag = "1")]
1729    pub fromlist: ::prost::alloc::vec::Vec<Node>,
1730    #[prost(message, optional, boxed, tag = "2")]
1731    pub quals: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1732}
1733#[derive(serde::Serialize)]
1734#[derive(Clone, PartialEq, ::prost::Message)]
1735pub struct OnConflictExpr {
1736    #[prost(enumeration = "OnConflictAction", tag = "1")]
1737    pub action: i32,
1738    #[prost(message, repeated, tag = "2")]
1739    pub arbiter_elems: ::prost::alloc::vec::Vec<Node>,
1740    #[prost(message, optional, boxed, tag = "3")]
1741    pub arbiter_where: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1742    #[prost(uint32, tag = "4")]
1743    pub constraint: u32,
1744    #[prost(message, repeated, tag = "5")]
1745    pub on_conflict_set: ::prost::alloc::vec::Vec<Node>,
1746    #[prost(message, optional, boxed, tag = "6")]
1747    pub on_conflict_where: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1748    #[prost(int32, tag = "7")]
1749    pub excl_rel_index: i32,
1750    #[prost(message, repeated, tag = "8")]
1751    pub excl_rel_tlist: ::prost::alloc::vec::Vec<Node>,
1752}
1753#[derive(serde::Serialize)]
1754#[derive(Clone, PartialEq, ::prost::Message)]
1755pub struct Query {
1756    #[prost(enumeration = "CmdType", tag = "1")]
1757    pub command_type: i32,
1758    #[prost(enumeration = "QuerySource", tag = "2")]
1759    pub query_source: i32,
1760    #[prost(bool, tag = "3")]
1761    pub can_set_tag: bool,
1762    #[prost(message, optional, boxed, tag = "4")]
1763    pub utility_stmt: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1764    #[prost(int32, tag = "5")]
1765    pub result_relation: i32,
1766    #[prost(bool, tag = "6")]
1767    pub has_aggs: bool,
1768    #[prost(bool, tag = "7")]
1769    pub has_window_funcs: bool,
1770    #[prost(bool, tag = "8")]
1771    pub has_target_srfs: bool,
1772    #[prost(bool, tag = "9")]
1773    pub has_sub_links: bool,
1774    #[prost(bool, tag = "10")]
1775    pub has_distinct_on: bool,
1776    #[prost(bool, tag = "11")]
1777    pub has_recursive: bool,
1778    #[prost(bool, tag = "12")]
1779    pub has_modifying_cte: bool,
1780    #[prost(bool, tag = "13")]
1781    pub has_for_update: bool,
1782    #[prost(bool, tag = "14")]
1783    pub has_row_security: bool,
1784    #[prost(bool, tag = "15")]
1785    pub has_group_rte: bool,
1786    #[prost(bool, tag = "16")]
1787    pub is_return: bool,
1788    #[prost(message, repeated, tag = "17")]
1789    pub cte_list: ::prost::alloc::vec::Vec<Node>,
1790    #[prost(message, repeated, tag = "18")]
1791    pub rtable: ::prost::alloc::vec::Vec<Node>,
1792    #[prost(message, repeated, tag = "19")]
1793    pub rteperminfos: ::prost::alloc::vec::Vec<Node>,
1794    #[prost(message, optional, boxed, tag = "20")]
1795    pub jointree: ::core::option::Option<::prost::alloc::boxed::Box<FromExpr>>,
1796    #[prost(message, repeated, tag = "21")]
1797    pub merge_action_list: ::prost::alloc::vec::Vec<Node>,
1798    #[prost(int32, tag = "22")]
1799    pub merge_target_relation: i32,
1800    #[prost(message, optional, boxed, tag = "23")]
1801    pub merge_join_condition: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1802    #[prost(message, repeated, tag = "24")]
1803    pub target_list: ::prost::alloc::vec::Vec<Node>,
1804    #[prost(enumeration = "OverridingKind", tag = "25")]
1805    pub r#override: i32,
1806    #[prost(message, optional, boxed, tag = "26")]
1807    pub on_conflict: ::core::option::Option<::prost::alloc::boxed::Box<OnConflictExpr>>,
1808    #[prost(string, tag = "27")]
1809    pub returning_old_alias: ::prost::alloc::string::String,
1810    #[prost(string, tag = "28")]
1811    pub returning_new_alias: ::prost::alloc::string::String,
1812    #[prost(message, repeated, tag = "29")]
1813    pub returning_list: ::prost::alloc::vec::Vec<Node>,
1814    #[prost(message, repeated, tag = "30")]
1815    pub group_clause: ::prost::alloc::vec::Vec<Node>,
1816    #[prost(bool, tag = "31")]
1817    pub group_distinct: bool,
1818    #[prost(message, repeated, tag = "32")]
1819    pub grouping_sets: ::prost::alloc::vec::Vec<Node>,
1820    #[prost(message, optional, boxed, tag = "33")]
1821    pub having_qual: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1822    #[prost(message, repeated, tag = "34")]
1823    pub window_clause: ::prost::alloc::vec::Vec<Node>,
1824    #[prost(message, repeated, tag = "35")]
1825    pub distinct_clause: ::prost::alloc::vec::Vec<Node>,
1826    #[prost(message, repeated, tag = "36")]
1827    pub sort_clause: ::prost::alloc::vec::Vec<Node>,
1828    #[prost(message, optional, boxed, tag = "37")]
1829    pub limit_offset: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1830    #[prost(message, optional, boxed, tag = "38")]
1831    pub limit_count: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1832    #[prost(enumeration = "LimitOption", tag = "39")]
1833    pub limit_option: i32,
1834    #[prost(message, repeated, tag = "40")]
1835    pub row_marks: ::prost::alloc::vec::Vec<Node>,
1836    #[prost(message, optional, boxed, tag = "41")]
1837    pub set_operations: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1838    #[prost(message, repeated, tag = "42")]
1839    pub constraint_deps: ::prost::alloc::vec::Vec<Node>,
1840    #[prost(message, repeated, tag = "43")]
1841    pub with_check_options: ::prost::alloc::vec::Vec<Node>,
1842    #[prost(int32, tag = "44")]
1843    pub stmt_location: i32,
1844    #[prost(int32, tag = "45")]
1845    pub stmt_len: i32,
1846}
1847#[derive(serde::Serialize)]
1848#[derive(Clone, PartialEq, ::prost::Message)]
1849pub struct TypeName {
1850    #[prost(message, repeated, tag = "1")]
1851    pub names: ::prost::alloc::vec::Vec<Node>,
1852    #[prost(uint32, tag = "2")]
1853    pub type_oid: u32,
1854    #[prost(bool, tag = "3")]
1855    pub setof: bool,
1856    #[prost(bool, tag = "4")]
1857    pub pct_type: bool,
1858    #[prost(message, repeated, tag = "5")]
1859    pub typmods: ::prost::alloc::vec::Vec<Node>,
1860    #[prost(int32, tag = "6")]
1861    pub typemod: i32,
1862    #[prost(message, repeated, tag = "7")]
1863    pub array_bounds: ::prost::alloc::vec::Vec<Node>,
1864    #[prost(int32, tag = "8")]
1865    pub location: i32,
1866}
1867#[derive(serde::Serialize)]
1868#[derive(Clone, PartialEq, ::prost::Message)]
1869pub struct ColumnRef {
1870    #[prost(message, repeated, tag = "1")]
1871    pub fields: ::prost::alloc::vec::Vec<Node>,
1872    #[prost(int32, tag = "2")]
1873    pub location: i32,
1874}
1875#[derive(serde::Serialize)]
1876#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1877pub struct ParamRef {
1878    #[prost(int32, tag = "1")]
1879    pub number: i32,
1880    #[prost(int32, tag = "2")]
1881    pub location: i32,
1882}
1883#[derive(serde::Serialize)]
1884#[derive(Clone, PartialEq, ::prost::Message)]
1885pub struct AExpr {
1886    #[prost(enumeration = "AExprKind", tag = "1")]
1887    pub kind: i32,
1888    #[prost(message, repeated, tag = "2")]
1889    pub name: ::prost::alloc::vec::Vec<Node>,
1890    #[prost(message, optional, boxed, tag = "3")]
1891    pub lexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1892    #[prost(message, optional, boxed, tag = "4")]
1893    pub rexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1894    #[prost(int32, tag = "5")]
1895    pub rexpr_list_start: i32,
1896    #[prost(int32, tag = "6")]
1897    pub rexpr_list_end: i32,
1898    #[prost(int32, tag = "7")]
1899    pub location: i32,
1900}
1901#[derive(serde::Serialize)]
1902#[derive(Clone, PartialEq, ::prost::Message)]
1903pub struct TypeCast {
1904    #[prost(message, optional, boxed, tag = "1")]
1905    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1906    #[prost(message, optional, tag = "2")]
1907    pub type_name: ::core::option::Option<TypeName>,
1908    #[prost(int32, tag = "3")]
1909    pub location: i32,
1910}
1911#[derive(serde::Serialize)]
1912#[derive(Clone, PartialEq, ::prost::Message)]
1913pub struct CollateClause {
1914    #[prost(message, optional, boxed, tag = "1")]
1915    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1916    #[prost(message, repeated, tag = "2")]
1917    pub collname: ::prost::alloc::vec::Vec<Node>,
1918    #[prost(int32, tag = "3")]
1919    pub location: i32,
1920}
1921#[derive(serde::Serialize)]
1922#[derive(Clone, PartialEq, ::prost::Message)]
1923pub struct RoleSpec {
1924    #[prost(enumeration = "RoleSpecType", tag = "1")]
1925    pub roletype: i32,
1926    #[prost(string, tag = "2")]
1927    pub rolename: ::prost::alloc::string::String,
1928    #[prost(int32, tag = "3")]
1929    pub location: i32,
1930}
1931#[derive(serde::Serialize)]
1932#[derive(Clone, PartialEq, ::prost::Message)]
1933pub struct FuncCall {
1934    #[prost(message, repeated, tag = "1")]
1935    pub funcname: ::prost::alloc::vec::Vec<Node>,
1936    #[prost(message, repeated, tag = "2")]
1937    pub args: ::prost::alloc::vec::Vec<Node>,
1938    #[prost(message, repeated, tag = "3")]
1939    pub agg_order: ::prost::alloc::vec::Vec<Node>,
1940    #[prost(message, optional, boxed, tag = "4")]
1941    pub agg_filter: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1942    #[prost(message, optional, boxed, tag = "5")]
1943    pub over: ::core::option::Option<::prost::alloc::boxed::Box<WindowDef>>,
1944    #[prost(bool, tag = "6")]
1945    pub agg_within_group: bool,
1946    #[prost(bool, tag = "7")]
1947    pub agg_star: bool,
1948    #[prost(bool, tag = "8")]
1949    pub agg_distinct: bool,
1950    #[prost(bool, tag = "9")]
1951    pub func_variadic: bool,
1952    #[prost(enumeration = "CoercionForm", tag = "10")]
1953    pub funcformat: i32,
1954    #[prost(int32, tag = "11")]
1955    pub location: i32,
1956}
1957#[derive(serde::Serialize)]
1958#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1959pub struct AStar {}
1960#[derive(serde::Serialize)]
1961#[derive(Clone, PartialEq, ::prost::Message)]
1962pub struct AIndices {
1963    #[prost(bool, tag = "1")]
1964    pub is_slice: bool,
1965    #[prost(message, optional, boxed, tag = "2")]
1966    pub lidx: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1967    #[prost(message, optional, boxed, tag = "3")]
1968    pub uidx: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1969}
1970#[derive(serde::Serialize)]
1971#[derive(Clone, PartialEq, ::prost::Message)]
1972pub struct AIndirection {
1973    #[prost(message, optional, boxed, tag = "1")]
1974    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1975    #[prost(message, repeated, tag = "2")]
1976    pub indirection: ::prost::alloc::vec::Vec<Node>,
1977}
1978#[derive(serde::Serialize)]
1979#[derive(Clone, PartialEq, ::prost::Message)]
1980pub struct AArrayExpr {
1981    #[prost(message, repeated, tag = "1")]
1982    pub elements: ::prost::alloc::vec::Vec<Node>,
1983    #[prost(int32, tag = "2")]
1984    pub list_start: i32,
1985    #[prost(int32, tag = "3")]
1986    pub list_end: i32,
1987    #[prost(int32, tag = "4")]
1988    pub location: i32,
1989}
1990#[derive(serde::Serialize)]
1991#[derive(Clone, PartialEq, ::prost::Message)]
1992pub struct ResTarget {
1993    #[prost(string, tag = "1")]
1994    pub name: ::prost::alloc::string::String,
1995    #[prost(message, repeated, tag = "2")]
1996    pub indirection: ::prost::alloc::vec::Vec<Node>,
1997    #[prost(message, optional, boxed, tag = "3")]
1998    pub val: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
1999    #[prost(int32, tag = "4")]
2000    pub location: i32,
2001}
2002#[derive(serde::Serialize)]
2003#[derive(Clone, PartialEq, ::prost::Message)]
2004pub struct MultiAssignRef {
2005    #[prost(message, optional, boxed, tag = "1")]
2006    pub source: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2007    #[prost(int32, tag = "2")]
2008    pub colno: i32,
2009    #[prost(int32, tag = "3")]
2010    pub ncolumns: i32,
2011}
2012#[derive(serde::Serialize)]
2013#[derive(Clone, PartialEq, ::prost::Message)]
2014pub struct SortBy {
2015    #[prost(message, optional, boxed, tag = "1")]
2016    pub node: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2017    #[prost(enumeration = "SortByDir", tag = "2")]
2018    pub sortby_dir: i32,
2019    #[prost(enumeration = "SortByNulls", tag = "3")]
2020    pub sortby_nulls: i32,
2021    #[prost(message, repeated, tag = "4")]
2022    pub use_op: ::prost::alloc::vec::Vec<Node>,
2023    #[prost(int32, tag = "5")]
2024    pub location: i32,
2025}
2026#[derive(serde::Serialize)]
2027#[derive(Clone, PartialEq, ::prost::Message)]
2028pub struct WindowDef {
2029    #[prost(string, tag = "1")]
2030    pub name: ::prost::alloc::string::String,
2031    #[prost(string, tag = "2")]
2032    pub refname: ::prost::alloc::string::String,
2033    #[prost(message, repeated, tag = "3")]
2034    pub partition_clause: ::prost::alloc::vec::Vec<Node>,
2035    #[prost(message, repeated, tag = "4")]
2036    pub order_clause: ::prost::alloc::vec::Vec<Node>,
2037    #[prost(int32, tag = "5")]
2038    pub frame_options: i32,
2039    #[prost(message, optional, boxed, tag = "6")]
2040    pub start_offset: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2041    #[prost(message, optional, boxed, tag = "7")]
2042    pub end_offset: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2043    #[prost(int32, tag = "8")]
2044    pub location: i32,
2045}
2046#[derive(serde::Serialize)]
2047#[derive(Clone, PartialEq, ::prost::Message)]
2048pub struct RangeSubselect {
2049    #[prost(bool, tag = "1")]
2050    pub lateral: bool,
2051    #[prost(message, optional, boxed, tag = "2")]
2052    pub subquery: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2053    #[prost(message, optional, tag = "3")]
2054    pub alias: ::core::option::Option<Alias>,
2055}
2056#[derive(serde::Serialize)]
2057#[derive(Clone, PartialEq, ::prost::Message)]
2058pub struct RangeFunction {
2059    #[prost(bool, tag = "1")]
2060    pub lateral: bool,
2061    #[prost(bool, tag = "2")]
2062    pub ordinality: bool,
2063    #[prost(bool, tag = "3")]
2064    pub is_rowsfrom: bool,
2065    #[prost(message, repeated, tag = "4")]
2066    pub functions: ::prost::alloc::vec::Vec<Node>,
2067    #[prost(message, optional, tag = "5")]
2068    pub alias: ::core::option::Option<Alias>,
2069    #[prost(message, repeated, tag = "6")]
2070    pub coldeflist: ::prost::alloc::vec::Vec<Node>,
2071}
2072#[derive(serde::Serialize)]
2073#[derive(Clone, PartialEq, ::prost::Message)]
2074pub struct RangeTableFunc {
2075    #[prost(bool, tag = "1")]
2076    pub lateral: bool,
2077    #[prost(message, optional, boxed, tag = "2")]
2078    pub docexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2079    #[prost(message, optional, boxed, tag = "3")]
2080    pub rowexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2081    #[prost(message, repeated, tag = "4")]
2082    pub namespaces: ::prost::alloc::vec::Vec<Node>,
2083    #[prost(message, repeated, tag = "5")]
2084    pub columns: ::prost::alloc::vec::Vec<Node>,
2085    #[prost(message, optional, tag = "6")]
2086    pub alias: ::core::option::Option<Alias>,
2087    #[prost(int32, tag = "7")]
2088    pub location: i32,
2089}
2090#[derive(serde::Serialize)]
2091#[derive(Clone, PartialEq, ::prost::Message)]
2092pub struct RangeTableFuncCol {
2093    #[prost(string, tag = "1")]
2094    pub colname: ::prost::alloc::string::String,
2095    #[prost(message, optional, tag = "2")]
2096    pub type_name: ::core::option::Option<TypeName>,
2097    #[prost(bool, tag = "3")]
2098    pub for_ordinality: bool,
2099    #[prost(bool, tag = "4")]
2100    pub is_not_null: bool,
2101    #[prost(message, optional, boxed, tag = "5")]
2102    pub colexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2103    #[prost(message, optional, boxed, tag = "6")]
2104    pub coldefexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2105    #[prost(int32, tag = "7")]
2106    pub location: i32,
2107}
2108#[derive(serde::Serialize)]
2109#[derive(Clone, PartialEq, ::prost::Message)]
2110pub struct RangeTableSample {
2111    #[prost(message, optional, boxed, tag = "1")]
2112    pub relation: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2113    #[prost(message, repeated, tag = "2")]
2114    pub method: ::prost::alloc::vec::Vec<Node>,
2115    #[prost(message, repeated, tag = "3")]
2116    pub args: ::prost::alloc::vec::Vec<Node>,
2117    #[prost(message, optional, boxed, tag = "4")]
2118    pub repeatable: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2119    #[prost(int32, tag = "5")]
2120    pub location: i32,
2121}
2122#[derive(serde::Serialize)]
2123#[derive(Clone, PartialEq, ::prost::Message)]
2124pub struct ColumnDef {
2125    #[prost(string, tag = "1")]
2126    pub colname: ::prost::alloc::string::String,
2127    #[prost(message, optional, tag = "2")]
2128    pub type_name: ::core::option::Option<TypeName>,
2129    #[prost(string, tag = "3")]
2130    pub compression: ::prost::alloc::string::String,
2131    #[prost(int32, tag = "4")]
2132    pub inhcount: i32,
2133    #[prost(bool, tag = "5")]
2134    pub is_local: bool,
2135    #[prost(bool, tag = "6")]
2136    pub is_not_null: bool,
2137    #[prost(bool, tag = "7")]
2138    pub is_from_type: bool,
2139    #[prost(string, tag = "8")]
2140    pub storage: ::prost::alloc::string::String,
2141    #[prost(string, tag = "9")]
2142    pub storage_name: ::prost::alloc::string::String,
2143    #[prost(message, optional, boxed, tag = "10")]
2144    pub raw_default: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2145    #[prost(message, optional, boxed, tag = "11")]
2146    pub cooked_default: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2147    #[prost(string, tag = "12")]
2148    pub identity: ::prost::alloc::string::String,
2149    #[prost(message, optional, tag = "13")]
2150    pub identity_sequence: ::core::option::Option<RangeVar>,
2151    #[prost(string, tag = "14")]
2152    pub generated: ::prost::alloc::string::String,
2153    #[prost(message, optional, boxed, tag = "15")]
2154    pub coll_clause: ::core::option::Option<::prost::alloc::boxed::Box<CollateClause>>,
2155    #[prost(uint32, tag = "16")]
2156    pub coll_oid: u32,
2157    #[prost(message, repeated, tag = "17")]
2158    pub constraints: ::prost::alloc::vec::Vec<Node>,
2159    #[prost(message, repeated, tag = "18")]
2160    pub fdwoptions: ::prost::alloc::vec::Vec<Node>,
2161    #[prost(int32, tag = "19")]
2162    pub location: i32,
2163}
2164#[derive(serde::Serialize)]
2165#[derive(Clone, PartialEq, ::prost::Message)]
2166pub struct TableLikeClause {
2167    #[prost(message, optional, tag = "1")]
2168    pub relation: ::core::option::Option<RangeVar>,
2169    #[prost(uint32, tag = "2")]
2170    pub options: u32,
2171    #[prost(uint32, tag = "3")]
2172    pub relation_oid: u32,
2173}
2174#[derive(serde::Serialize)]
2175#[derive(Clone, PartialEq, ::prost::Message)]
2176pub struct IndexElem {
2177    #[prost(string, tag = "1")]
2178    pub name: ::prost::alloc::string::String,
2179    #[prost(message, optional, boxed, tag = "2")]
2180    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2181    #[prost(string, tag = "3")]
2182    pub indexcolname: ::prost::alloc::string::String,
2183    #[prost(message, repeated, tag = "4")]
2184    pub collation: ::prost::alloc::vec::Vec<Node>,
2185    #[prost(message, repeated, tag = "5")]
2186    pub opclass: ::prost::alloc::vec::Vec<Node>,
2187    #[prost(message, repeated, tag = "6")]
2188    pub opclassopts: ::prost::alloc::vec::Vec<Node>,
2189    #[prost(enumeration = "SortByDir", tag = "7")]
2190    pub ordering: i32,
2191    #[prost(enumeration = "SortByNulls", tag = "8")]
2192    pub nulls_ordering: i32,
2193}
2194#[derive(serde::Serialize)]
2195#[derive(Clone, PartialEq, ::prost::Message)]
2196pub struct DefElem {
2197    #[prost(string, tag = "1")]
2198    pub defnamespace: ::prost::alloc::string::String,
2199    #[prost(string, tag = "2")]
2200    pub defname: ::prost::alloc::string::String,
2201    #[prost(message, optional, boxed, tag = "3")]
2202    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2203    #[prost(enumeration = "DefElemAction", tag = "4")]
2204    pub defaction: i32,
2205    #[prost(int32, tag = "5")]
2206    pub location: i32,
2207}
2208#[derive(serde::Serialize)]
2209#[derive(Clone, PartialEq, ::prost::Message)]
2210pub struct LockingClause {
2211    #[prost(message, repeated, tag = "1")]
2212    pub locked_rels: ::prost::alloc::vec::Vec<Node>,
2213    #[prost(enumeration = "LockClauseStrength", tag = "2")]
2214    pub strength: i32,
2215    #[prost(enumeration = "LockWaitPolicy", tag = "3")]
2216    pub wait_policy: i32,
2217}
2218#[derive(serde::Serialize)]
2219#[derive(Clone, PartialEq, ::prost::Message)]
2220pub struct XmlSerialize {
2221    #[prost(enumeration = "XmlOptionType", tag = "1")]
2222    pub xmloption: i32,
2223    #[prost(message, optional, boxed, tag = "2")]
2224    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2225    #[prost(message, optional, tag = "3")]
2226    pub type_name: ::core::option::Option<TypeName>,
2227    #[prost(bool, tag = "4")]
2228    pub indent: bool,
2229    #[prost(int32, tag = "5")]
2230    pub location: i32,
2231}
2232#[derive(serde::Serialize)]
2233#[derive(Clone, PartialEq, ::prost::Message)]
2234pub struct PartitionElem {
2235    #[prost(string, tag = "1")]
2236    pub name: ::prost::alloc::string::String,
2237    #[prost(message, optional, boxed, tag = "2")]
2238    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2239    #[prost(message, repeated, tag = "3")]
2240    pub collation: ::prost::alloc::vec::Vec<Node>,
2241    #[prost(message, repeated, tag = "4")]
2242    pub opclass: ::prost::alloc::vec::Vec<Node>,
2243    #[prost(int32, tag = "5")]
2244    pub location: i32,
2245}
2246#[derive(serde::Serialize)]
2247#[derive(Clone, PartialEq, ::prost::Message)]
2248pub struct PartitionSpec {
2249    #[prost(enumeration = "PartitionStrategy", tag = "1")]
2250    pub strategy: i32,
2251    #[prost(message, repeated, tag = "2")]
2252    pub part_params: ::prost::alloc::vec::Vec<Node>,
2253    #[prost(int32, tag = "3")]
2254    pub location: i32,
2255}
2256#[derive(serde::Serialize)]
2257#[derive(Clone, PartialEq, ::prost::Message)]
2258pub struct PartitionBoundSpec {
2259    #[prost(string, tag = "1")]
2260    pub strategy: ::prost::alloc::string::String,
2261    #[prost(bool, tag = "2")]
2262    pub is_default: bool,
2263    #[prost(int32, tag = "3")]
2264    pub modulus: i32,
2265    #[prost(int32, tag = "4")]
2266    pub remainder: i32,
2267    #[prost(message, repeated, tag = "5")]
2268    pub listdatums: ::prost::alloc::vec::Vec<Node>,
2269    #[prost(message, repeated, tag = "6")]
2270    pub lowerdatums: ::prost::alloc::vec::Vec<Node>,
2271    #[prost(message, repeated, tag = "7")]
2272    pub upperdatums: ::prost::alloc::vec::Vec<Node>,
2273    #[prost(int32, tag = "8")]
2274    pub location: i32,
2275}
2276#[derive(serde::Serialize)]
2277#[derive(Clone, PartialEq, ::prost::Message)]
2278pub struct PartitionRangeDatum {
2279    #[prost(enumeration = "PartitionRangeDatumKind", tag = "1")]
2280    pub kind: i32,
2281    #[prost(message, optional, boxed, tag = "2")]
2282    pub value: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2283    #[prost(int32, tag = "3")]
2284    pub location: i32,
2285}
2286#[derive(serde::Serialize)]
2287#[derive(Clone, PartialEq, ::prost::Message)]
2288pub struct PartitionCmd {
2289    #[prost(message, optional, tag = "1")]
2290    pub name: ::core::option::Option<RangeVar>,
2291    #[prost(message, optional, tag = "2")]
2292    pub bound: ::core::option::Option<PartitionBoundSpec>,
2293    #[prost(bool, tag = "3")]
2294    pub concurrent: bool,
2295}
2296#[derive(serde::Serialize)]
2297#[derive(Clone, PartialEq, ::prost::Message)]
2298pub struct RangeTblEntry {
2299    #[prost(message, optional, tag = "1")]
2300    pub alias: ::core::option::Option<Alias>,
2301    #[prost(message, optional, tag = "2")]
2302    pub eref: ::core::option::Option<Alias>,
2303    #[prost(enumeration = "RteKind", tag = "3")]
2304    pub rtekind: i32,
2305    #[prost(uint32, tag = "4")]
2306    pub relid: u32,
2307    #[prost(bool, tag = "5")]
2308    pub inh: bool,
2309    #[prost(string, tag = "6")]
2310    pub relkind: ::prost::alloc::string::String,
2311    #[prost(int32, tag = "7")]
2312    pub rellockmode: i32,
2313    #[prost(uint32, tag = "8")]
2314    pub perminfoindex: u32,
2315    #[prost(message, optional, boxed, tag = "9")]
2316    pub tablesample: ::core::option::Option<
2317        ::prost::alloc::boxed::Box<TableSampleClause>,
2318    >,
2319    #[prost(message, optional, boxed, tag = "10")]
2320    pub subquery: ::core::option::Option<::prost::alloc::boxed::Box<Query>>,
2321    #[prost(bool, tag = "11")]
2322    pub security_barrier: bool,
2323    #[prost(enumeration = "JoinType", tag = "12")]
2324    pub jointype: i32,
2325    #[prost(int32, tag = "13")]
2326    pub joinmergedcols: i32,
2327    #[prost(message, repeated, tag = "14")]
2328    pub joinaliasvars: ::prost::alloc::vec::Vec<Node>,
2329    #[prost(message, repeated, tag = "15")]
2330    pub joinleftcols: ::prost::alloc::vec::Vec<Node>,
2331    #[prost(message, repeated, tag = "16")]
2332    pub joinrightcols: ::prost::alloc::vec::Vec<Node>,
2333    #[prost(message, optional, tag = "17")]
2334    pub join_using_alias: ::core::option::Option<Alias>,
2335    #[prost(message, repeated, tag = "18")]
2336    pub functions: ::prost::alloc::vec::Vec<Node>,
2337    #[prost(bool, tag = "19")]
2338    pub funcordinality: bool,
2339    #[prost(message, optional, boxed, tag = "20")]
2340    pub tablefunc: ::core::option::Option<::prost::alloc::boxed::Box<TableFunc>>,
2341    #[prost(message, repeated, tag = "21")]
2342    pub values_lists: ::prost::alloc::vec::Vec<Node>,
2343    #[prost(string, tag = "22")]
2344    pub ctename: ::prost::alloc::string::String,
2345    #[prost(uint32, tag = "23")]
2346    pub ctelevelsup: u32,
2347    #[prost(bool, tag = "24")]
2348    pub self_reference: bool,
2349    #[prost(message, repeated, tag = "25")]
2350    pub coltypes: ::prost::alloc::vec::Vec<Node>,
2351    #[prost(message, repeated, tag = "26")]
2352    pub coltypmods: ::prost::alloc::vec::Vec<Node>,
2353    #[prost(message, repeated, tag = "27")]
2354    pub colcollations: ::prost::alloc::vec::Vec<Node>,
2355    #[prost(string, tag = "28")]
2356    pub enrname: ::prost::alloc::string::String,
2357    #[prost(double, tag = "29")]
2358    pub enrtuples: f64,
2359    #[prost(message, repeated, tag = "30")]
2360    pub groupexprs: ::prost::alloc::vec::Vec<Node>,
2361    #[prost(bool, tag = "31")]
2362    pub lateral: bool,
2363    #[prost(bool, tag = "32")]
2364    pub in_from_cl: bool,
2365    #[prost(message, repeated, tag = "33")]
2366    pub security_quals: ::prost::alloc::vec::Vec<Node>,
2367}
2368#[derive(serde::Serialize)]
2369#[derive(Clone, PartialEq, ::prost::Message)]
2370pub struct RtePermissionInfo {
2371    #[prost(uint32, tag = "1")]
2372    pub relid: u32,
2373    #[prost(bool, tag = "2")]
2374    pub inh: bool,
2375    #[prost(uint64, tag = "3")]
2376    pub required_perms: u64,
2377    #[prost(uint32, tag = "4")]
2378    pub check_as_user: u32,
2379    #[prost(uint64, repeated, tag = "5")]
2380    pub selected_cols: ::prost::alloc::vec::Vec<u64>,
2381    #[prost(uint64, repeated, tag = "6")]
2382    pub inserted_cols: ::prost::alloc::vec::Vec<u64>,
2383    #[prost(uint64, repeated, tag = "7")]
2384    pub updated_cols: ::prost::alloc::vec::Vec<u64>,
2385}
2386#[derive(serde::Serialize)]
2387#[derive(Clone, PartialEq, ::prost::Message)]
2388pub struct RangeTblFunction {
2389    #[prost(message, optional, boxed, tag = "1")]
2390    pub funcexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2391    #[prost(int32, tag = "2")]
2392    pub funccolcount: i32,
2393    #[prost(message, repeated, tag = "3")]
2394    pub funccolnames: ::prost::alloc::vec::Vec<Node>,
2395    #[prost(message, repeated, tag = "4")]
2396    pub funccoltypes: ::prost::alloc::vec::Vec<Node>,
2397    #[prost(message, repeated, tag = "5")]
2398    pub funccoltypmods: ::prost::alloc::vec::Vec<Node>,
2399    #[prost(message, repeated, tag = "6")]
2400    pub funccolcollations: ::prost::alloc::vec::Vec<Node>,
2401    #[prost(uint64, repeated, tag = "7")]
2402    pub funcparams: ::prost::alloc::vec::Vec<u64>,
2403}
2404#[derive(serde::Serialize)]
2405#[derive(Clone, PartialEq, ::prost::Message)]
2406pub struct TableSampleClause {
2407    #[prost(uint32, tag = "1")]
2408    pub tsmhandler: u32,
2409    #[prost(message, repeated, tag = "2")]
2410    pub args: ::prost::alloc::vec::Vec<Node>,
2411    #[prost(message, optional, boxed, tag = "3")]
2412    pub repeatable: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2413}
2414#[derive(serde::Serialize)]
2415#[derive(Clone, PartialEq, ::prost::Message)]
2416pub struct WithCheckOption {
2417    #[prost(enumeration = "WcoKind", tag = "1")]
2418    pub kind: i32,
2419    #[prost(string, tag = "2")]
2420    pub relname: ::prost::alloc::string::String,
2421    #[prost(string, tag = "3")]
2422    pub polname: ::prost::alloc::string::String,
2423    #[prost(message, optional, boxed, tag = "4")]
2424    pub qual: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2425    #[prost(bool, tag = "5")]
2426    pub cascaded: bool,
2427}
2428#[derive(serde::Serialize)]
2429#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2430pub struct SortGroupClause {
2431    #[prost(uint32, tag = "1")]
2432    pub tle_sort_group_ref: u32,
2433    #[prost(uint32, tag = "2")]
2434    pub eqop: u32,
2435    #[prost(uint32, tag = "3")]
2436    pub sortop: u32,
2437    #[prost(bool, tag = "4")]
2438    pub reverse_sort: bool,
2439    #[prost(bool, tag = "5")]
2440    pub nulls_first: bool,
2441    #[prost(bool, tag = "6")]
2442    pub hashable: bool,
2443}
2444#[derive(serde::Serialize)]
2445#[derive(Clone, PartialEq, ::prost::Message)]
2446pub struct GroupingSet {
2447    #[prost(enumeration = "GroupingSetKind", tag = "1")]
2448    pub kind: i32,
2449    #[prost(message, repeated, tag = "2")]
2450    pub content: ::prost::alloc::vec::Vec<Node>,
2451    #[prost(int32, tag = "3")]
2452    pub location: i32,
2453}
2454#[derive(serde::Serialize)]
2455#[derive(Clone, PartialEq, ::prost::Message)]
2456pub struct WindowClause {
2457    #[prost(string, tag = "1")]
2458    pub name: ::prost::alloc::string::String,
2459    #[prost(string, tag = "2")]
2460    pub refname: ::prost::alloc::string::String,
2461    #[prost(message, repeated, tag = "3")]
2462    pub partition_clause: ::prost::alloc::vec::Vec<Node>,
2463    #[prost(message, repeated, tag = "4")]
2464    pub order_clause: ::prost::alloc::vec::Vec<Node>,
2465    #[prost(int32, tag = "5")]
2466    pub frame_options: i32,
2467    #[prost(message, optional, boxed, tag = "6")]
2468    pub start_offset: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2469    #[prost(message, optional, boxed, tag = "7")]
2470    pub end_offset: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2471    #[prost(uint32, tag = "8")]
2472    pub start_in_range_func: u32,
2473    #[prost(uint32, tag = "9")]
2474    pub end_in_range_func: u32,
2475    #[prost(uint32, tag = "10")]
2476    pub in_range_coll: u32,
2477    #[prost(bool, tag = "11")]
2478    pub in_range_asc: bool,
2479    #[prost(bool, tag = "12")]
2480    pub in_range_nulls_first: bool,
2481    #[prost(uint32, tag = "13")]
2482    pub winref: u32,
2483    #[prost(bool, tag = "14")]
2484    pub copied_order: bool,
2485}
2486#[derive(serde::Serialize)]
2487#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2488pub struct RowMarkClause {
2489    #[prost(uint32, tag = "1")]
2490    pub rti: u32,
2491    #[prost(enumeration = "LockClauseStrength", tag = "2")]
2492    pub strength: i32,
2493    #[prost(enumeration = "LockWaitPolicy", tag = "3")]
2494    pub wait_policy: i32,
2495    #[prost(bool, tag = "4")]
2496    pub pushed_down: bool,
2497}
2498#[derive(serde::Serialize)]
2499#[derive(Clone, PartialEq, ::prost::Message)]
2500pub struct WithClause {
2501    #[prost(message, repeated, tag = "1")]
2502    pub ctes: ::prost::alloc::vec::Vec<Node>,
2503    #[prost(bool, tag = "2")]
2504    pub recursive: bool,
2505    #[prost(int32, tag = "3")]
2506    pub location: i32,
2507}
2508#[derive(serde::Serialize)]
2509#[derive(Clone, PartialEq, ::prost::Message)]
2510pub struct InferClause {
2511    #[prost(message, repeated, tag = "1")]
2512    pub index_elems: ::prost::alloc::vec::Vec<Node>,
2513    #[prost(message, optional, boxed, tag = "2")]
2514    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2515    #[prost(string, tag = "3")]
2516    pub conname: ::prost::alloc::string::String,
2517    #[prost(int32, tag = "4")]
2518    pub location: i32,
2519}
2520#[derive(serde::Serialize)]
2521#[derive(Clone, PartialEq, ::prost::Message)]
2522pub struct OnConflictClause {
2523    #[prost(enumeration = "OnConflictAction", tag = "1")]
2524    pub action: i32,
2525    #[prost(message, optional, boxed, tag = "2")]
2526    pub infer: ::core::option::Option<::prost::alloc::boxed::Box<InferClause>>,
2527    #[prost(message, repeated, tag = "3")]
2528    pub target_list: ::prost::alloc::vec::Vec<Node>,
2529    #[prost(message, optional, boxed, tag = "4")]
2530    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2531    #[prost(int32, tag = "5")]
2532    pub location: i32,
2533}
2534#[derive(serde::Serialize)]
2535#[derive(Clone, PartialEq, ::prost::Message)]
2536pub struct CteSearchClause {
2537    #[prost(message, repeated, tag = "1")]
2538    pub search_col_list: ::prost::alloc::vec::Vec<Node>,
2539    #[prost(bool, tag = "2")]
2540    pub search_breadth_first: bool,
2541    #[prost(string, tag = "3")]
2542    pub search_seq_column: ::prost::alloc::string::String,
2543    #[prost(int32, tag = "4")]
2544    pub location: i32,
2545}
2546#[derive(serde::Serialize)]
2547#[derive(Clone, PartialEq, ::prost::Message)]
2548pub struct CteCycleClause {
2549    #[prost(message, repeated, tag = "1")]
2550    pub cycle_col_list: ::prost::alloc::vec::Vec<Node>,
2551    #[prost(string, tag = "2")]
2552    pub cycle_mark_column: ::prost::alloc::string::String,
2553    #[prost(message, optional, boxed, tag = "3")]
2554    pub cycle_mark_value: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2555    #[prost(message, optional, boxed, tag = "4")]
2556    pub cycle_mark_default: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2557    #[prost(string, tag = "5")]
2558    pub cycle_path_column: ::prost::alloc::string::String,
2559    #[prost(int32, tag = "6")]
2560    pub location: i32,
2561    #[prost(uint32, tag = "7")]
2562    pub cycle_mark_type: u32,
2563    #[prost(int32, tag = "8")]
2564    pub cycle_mark_typmod: i32,
2565    #[prost(uint32, tag = "9")]
2566    pub cycle_mark_collation: u32,
2567    #[prost(uint32, tag = "10")]
2568    pub cycle_mark_neop: u32,
2569}
2570#[derive(serde::Serialize)]
2571#[derive(Clone, PartialEq, ::prost::Message)]
2572pub struct CommonTableExpr {
2573    #[prost(string, tag = "1")]
2574    pub ctename: ::prost::alloc::string::String,
2575    #[prost(message, repeated, tag = "2")]
2576    pub aliascolnames: ::prost::alloc::vec::Vec<Node>,
2577    #[prost(enumeration = "CteMaterialize", tag = "3")]
2578    pub ctematerialized: i32,
2579    #[prost(message, optional, boxed, tag = "4")]
2580    pub ctequery: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2581    #[prost(message, optional, tag = "5")]
2582    pub search_clause: ::core::option::Option<CteSearchClause>,
2583    #[prost(message, optional, boxed, tag = "6")]
2584    pub cycle_clause: ::core::option::Option<::prost::alloc::boxed::Box<CteCycleClause>>,
2585    #[prost(int32, tag = "7")]
2586    pub location: i32,
2587    #[prost(bool, tag = "8")]
2588    pub cterecursive: bool,
2589    #[prost(int32, tag = "9")]
2590    pub cterefcount: i32,
2591    #[prost(message, repeated, tag = "10")]
2592    pub ctecolnames: ::prost::alloc::vec::Vec<Node>,
2593    #[prost(message, repeated, tag = "11")]
2594    pub ctecoltypes: ::prost::alloc::vec::Vec<Node>,
2595    #[prost(message, repeated, tag = "12")]
2596    pub ctecoltypmods: ::prost::alloc::vec::Vec<Node>,
2597    #[prost(message, repeated, tag = "13")]
2598    pub ctecolcollations: ::prost::alloc::vec::Vec<Node>,
2599}
2600#[derive(serde::Serialize)]
2601#[derive(Clone, PartialEq, ::prost::Message)]
2602pub struct MergeWhenClause {
2603    #[prost(enumeration = "MergeMatchKind", tag = "1")]
2604    pub match_kind: i32,
2605    #[prost(enumeration = "CmdType", tag = "2")]
2606    pub command_type: i32,
2607    #[prost(enumeration = "OverridingKind", tag = "3")]
2608    pub r#override: i32,
2609    #[prost(message, optional, boxed, tag = "4")]
2610    pub condition: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2611    #[prost(message, repeated, tag = "5")]
2612    pub target_list: ::prost::alloc::vec::Vec<Node>,
2613    #[prost(message, repeated, tag = "6")]
2614    pub values: ::prost::alloc::vec::Vec<Node>,
2615}
2616#[derive(serde::Serialize)]
2617#[derive(Clone, PartialEq, ::prost::Message)]
2618pub struct ReturningOption {
2619    #[prost(enumeration = "ReturningOptionKind", tag = "1")]
2620    pub option: i32,
2621    #[prost(string, tag = "2")]
2622    pub value: ::prost::alloc::string::String,
2623    #[prost(int32, tag = "3")]
2624    pub location: i32,
2625}
2626#[derive(serde::Serialize)]
2627#[derive(Clone, PartialEq, ::prost::Message)]
2628pub struct ReturningClause {
2629    #[prost(message, repeated, tag = "1")]
2630    pub options: ::prost::alloc::vec::Vec<Node>,
2631    #[prost(message, repeated, tag = "2")]
2632    pub exprs: ::prost::alloc::vec::Vec<Node>,
2633}
2634#[derive(serde::Serialize)]
2635#[derive(Clone, PartialEq, ::prost::Message)]
2636pub struct TriggerTransition {
2637    #[prost(string, tag = "1")]
2638    pub name: ::prost::alloc::string::String,
2639    #[prost(bool, tag = "2")]
2640    pub is_new: bool,
2641    #[prost(bool, tag = "3")]
2642    pub is_table: bool,
2643}
2644#[derive(serde::Serialize)]
2645#[derive(Clone, PartialEq, ::prost::Message)]
2646pub struct JsonOutput {
2647    #[prost(message, optional, tag = "1")]
2648    pub type_name: ::core::option::Option<TypeName>,
2649    #[prost(message, optional, tag = "2")]
2650    pub returning: ::core::option::Option<JsonReturning>,
2651}
2652#[derive(serde::Serialize)]
2653#[derive(Clone, PartialEq, ::prost::Message)]
2654pub struct JsonArgument {
2655    #[prost(message, optional, boxed, tag = "1")]
2656    pub val: ::core::option::Option<::prost::alloc::boxed::Box<JsonValueExpr>>,
2657    #[prost(string, tag = "2")]
2658    pub name: ::prost::alloc::string::String,
2659}
2660#[derive(serde::Serialize)]
2661#[derive(Clone, PartialEq, ::prost::Message)]
2662pub struct JsonFuncExpr {
2663    #[prost(enumeration = "JsonExprOp", tag = "1")]
2664    pub op: i32,
2665    #[prost(string, tag = "2")]
2666    pub column_name: ::prost::alloc::string::String,
2667    #[prost(message, optional, boxed, tag = "3")]
2668    pub context_item: ::core::option::Option<::prost::alloc::boxed::Box<JsonValueExpr>>,
2669    #[prost(message, optional, boxed, tag = "4")]
2670    pub pathspec: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2671    #[prost(message, repeated, tag = "5")]
2672    pub passing: ::prost::alloc::vec::Vec<Node>,
2673    #[prost(message, optional, tag = "6")]
2674    pub output: ::core::option::Option<JsonOutput>,
2675    #[prost(message, optional, boxed, tag = "7")]
2676    pub on_empty: ::core::option::Option<::prost::alloc::boxed::Box<JsonBehavior>>,
2677    #[prost(message, optional, boxed, tag = "8")]
2678    pub on_error: ::core::option::Option<::prost::alloc::boxed::Box<JsonBehavior>>,
2679    #[prost(enumeration = "JsonWrapper", tag = "9")]
2680    pub wrapper: i32,
2681    #[prost(enumeration = "JsonQuotes", tag = "10")]
2682    pub quotes: i32,
2683    #[prost(int32, tag = "11")]
2684    pub location: i32,
2685}
2686#[derive(serde::Serialize)]
2687#[derive(Clone, PartialEq, ::prost::Message)]
2688pub struct JsonTablePathSpec {
2689    #[prost(message, optional, boxed, tag = "1")]
2690    pub string: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2691    #[prost(string, tag = "2")]
2692    pub name: ::prost::alloc::string::String,
2693    #[prost(int32, tag = "3")]
2694    pub name_location: i32,
2695    #[prost(int32, tag = "4")]
2696    pub location: i32,
2697}
2698#[derive(serde::Serialize)]
2699#[derive(Clone, PartialEq, ::prost::Message)]
2700pub struct JsonTable {
2701    #[prost(message, optional, boxed, tag = "1")]
2702    pub context_item: ::core::option::Option<::prost::alloc::boxed::Box<JsonValueExpr>>,
2703    #[prost(message, optional, boxed, tag = "2")]
2704    pub pathspec: ::core::option::Option<::prost::alloc::boxed::Box<JsonTablePathSpec>>,
2705    #[prost(message, repeated, tag = "3")]
2706    pub passing: ::prost::alloc::vec::Vec<Node>,
2707    #[prost(message, repeated, tag = "4")]
2708    pub columns: ::prost::alloc::vec::Vec<Node>,
2709    #[prost(message, optional, boxed, tag = "5")]
2710    pub on_error: ::core::option::Option<::prost::alloc::boxed::Box<JsonBehavior>>,
2711    #[prost(message, optional, tag = "6")]
2712    pub alias: ::core::option::Option<Alias>,
2713    #[prost(bool, tag = "7")]
2714    pub lateral: bool,
2715    #[prost(int32, tag = "8")]
2716    pub location: i32,
2717}
2718#[derive(serde::Serialize)]
2719#[derive(Clone, PartialEq, ::prost::Message)]
2720pub struct JsonTableColumn {
2721    #[prost(enumeration = "JsonTableColumnType", tag = "1")]
2722    pub coltype: i32,
2723    #[prost(string, tag = "2")]
2724    pub name: ::prost::alloc::string::String,
2725    #[prost(message, optional, tag = "3")]
2726    pub type_name: ::core::option::Option<TypeName>,
2727    #[prost(message, optional, boxed, tag = "4")]
2728    pub pathspec: ::core::option::Option<::prost::alloc::boxed::Box<JsonTablePathSpec>>,
2729    #[prost(message, optional, tag = "5")]
2730    pub format: ::core::option::Option<JsonFormat>,
2731    #[prost(enumeration = "JsonWrapper", tag = "6")]
2732    pub wrapper: i32,
2733    #[prost(enumeration = "JsonQuotes", tag = "7")]
2734    pub quotes: i32,
2735    #[prost(message, repeated, tag = "8")]
2736    pub columns: ::prost::alloc::vec::Vec<Node>,
2737    #[prost(message, optional, boxed, tag = "9")]
2738    pub on_empty: ::core::option::Option<::prost::alloc::boxed::Box<JsonBehavior>>,
2739    #[prost(message, optional, boxed, tag = "10")]
2740    pub on_error: ::core::option::Option<::prost::alloc::boxed::Box<JsonBehavior>>,
2741    #[prost(int32, tag = "11")]
2742    pub location: i32,
2743}
2744#[derive(serde::Serialize)]
2745#[derive(Clone, PartialEq, ::prost::Message)]
2746pub struct JsonKeyValue {
2747    #[prost(message, optional, boxed, tag = "1")]
2748    pub key: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2749    #[prost(message, optional, boxed, tag = "2")]
2750    pub value: ::core::option::Option<::prost::alloc::boxed::Box<JsonValueExpr>>,
2751}
2752#[derive(serde::Serialize)]
2753#[derive(Clone, PartialEq, ::prost::Message)]
2754pub struct JsonParseExpr {
2755    #[prost(message, optional, boxed, tag = "1")]
2756    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<JsonValueExpr>>,
2757    #[prost(message, optional, tag = "2")]
2758    pub output: ::core::option::Option<JsonOutput>,
2759    #[prost(bool, tag = "3")]
2760    pub unique_keys: bool,
2761    #[prost(int32, tag = "4")]
2762    pub location: i32,
2763}
2764#[derive(serde::Serialize)]
2765#[derive(Clone, PartialEq, ::prost::Message)]
2766pub struct JsonScalarExpr {
2767    #[prost(message, optional, boxed, tag = "1")]
2768    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2769    #[prost(message, optional, tag = "2")]
2770    pub output: ::core::option::Option<JsonOutput>,
2771    #[prost(int32, tag = "3")]
2772    pub location: i32,
2773}
2774#[derive(serde::Serialize)]
2775#[derive(Clone, PartialEq, ::prost::Message)]
2776pub struct JsonSerializeExpr {
2777    #[prost(message, optional, boxed, tag = "1")]
2778    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<JsonValueExpr>>,
2779    #[prost(message, optional, tag = "2")]
2780    pub output: ::core::option::Option<JsonOutput>,
2781    #[prost(int32, tag = "3")]
2782    pub location: i32,
2783}
2784#[derive(serde::Serialize)]
2785#[derive(Clone, PartialEq, ::prost::Message)]
2786pub struct JsonObjectConstructor {
2787    #[prost(message, repeated, tag = "1")]
2788    pub exprs: ::prost::alloc::vec::Vec<Node>,
2789    #[prost(message, optional, tag = "2")]
2790    pub output: ::core::option::Option<JsonOutput>,
2791    #[prost(bool, tag = "3")]
2792    pub absent_on_null: bool,
2793    #[prost(bool, tag = "4")]
2794    pub unique: bool,
2795    #[prost(int32, tag = "5")]
2796    pub location: i32,
2797}
2798#[derive(serde::Serialize)]
2799#[derive(Clone, PartialEq, ::prost::Message)]
2800pub struct JsonArrayConstructor {
2801    #[prost(message, repeated, tag = "1")]
2802    pub exprs: ::prost::alloc::vec::Vec<Node>,
2803    #[prost(message, optional, tag = "2")]
2804    pub output: ::core::option::Option<JsonOutput>,
2805    #[prost(bool, tag = "3")]
2806    pub absent_on_null: bool,
2807    #[prost(int32, tag = "4")]
2808    pub location: i32,
2809}
2810#[derive(serde::Serialize)]
2811#[derive(Clone, PartialEq, ::prost::Message)]
2812pub struct JsonArrayQueryConstructor {
2813    #[prost(message, optional, boxed, tag = "1")]
2814    pub query: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2815    #[prost(message, optional, tag = "2")]
2816    pub output: ::core::option::Option<JsonOutput>,
2817    #[prost(message, optional, tag = "3")]
2818    pub format: ::core::option::Option<JsonFormat>,
2819    #[prost(bool, tag = "4")]
2820    pub absent_on_null: bool,
2821    #[prost(int32, tag = "5")]
2822    pub location: i32,
2823}
2824#[derive(serde::Serialize)]
2825#[derive(Clone, PartialEq, ::prost::Message)]
2826pub struct JsonAggConstructor {
2827    #[prost(message, optional, tag = "1")]
2828    pub output: ::core::option::Option<JsonOutput>,
2829    #[prost(message, optional, boxed, tag = "2")]
2830    pub agg_filter: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2831    #[prost(message, repeated, tag = "3")]
2832    pub agg_order: ::prost::alloc::vec::Vec<Node>,
2833    #[prost(message, optional, boxed, tag = "4")]
2834    pub over: ::core::option::Option<::prost::alloc::boxed::Box<WindowDef>>,
2835    #[prost(int32, tag = "5")]
2836    pub location: i32,
2837}
2838#[derive(serde::Serialize)]
2839#[derive(Clone, PartialEq, ::prost::Message)]
2840pub struct JsonObjectAgg {
2841    #[prost(message, optional, boxed, tag = "1")]
2842    pub constructor: ::core::option::Option<
2843        ::prost::alloc::boxed::Box<JsonAggConstructor>,
2844    >,
2845    #[prost(message, optional, boxed, tag = "2")]
2846    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<JsonKeyValue>>,
2847    #[prost(bool, tag = "3")]
2848    pub absent_on_null: bool,
2849    #[prost(bool, tag = "4")]
2850    pub unique: bool,
2851}
2852#[derive(serde::Serialize)]
2853#[derive(Clone, PartialEq, ::prost::Message)]
2854pub struct JsonArrayAgg {
2855    #[prost(message, optional, boxed, tag = "1")]
2856    pub constructor: ::core::option::Option<
2857        ::prost::alloc::boxed::Box<JsonAggConstructor>,
2858    >,
2859    #[prost(message, optional, boxed, tag = "2")]
2860    pub arg: ::core::option::Option<::prost::alloc::boxed::Box<JsonValueExpr>>,
2861    #[prost(bool, tag = "3")]
2862    pub absent_on_null: bool,
2863}
2864#[derive(serde::Serialize)]
2865#[derive(Clone, PartialEq, ::prost::Message)]
2866pub struct RawStmt {
2867    #[prost(message, optional, boxed, tag = "1")]
2868    pub stmt: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2869    #[prost(int32, tag = "2")]
2870    pub stmt_location: i32,
2871    #[prost(int32, tag = "3")]
2872    pub stmt_len: i32,
2873}
2874#[derive(serde::Serialize)]
2875#[derive(Clone, PartialEq, ::prost::Message)]
2876pub struct InsertStmt {
2877    #[prost(message, optional, tag = "1")]
2878    pub relation: ::core::option::Option<RangeVar>,
2879    #[prost(message, repeated, tag = "2")]
2880    pub cols: ::prost::alloc::vec::Vec<Node>,
2881    #[prost(message, optional, boxed, tag = "3")]
2882    pub select_stmt: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2883    #[prost(message, optional, boxed, tag = "4")]
2884    pub on_conflict_clause: ::core::option::Option<
2885        ::prost::alloc::boxed::Box<OnConflictClause>,
2886    >,
2887    #[prost(message, optional, tag = "5")]
2888    pub returning_clause: ::core::option::Option<ReturningClause>,
2889    #[prost(message, optional, tag = "6")]
2890    pub with_clause: ::core::option::Option<WithClause>,
2891    #[prost(enumeration = "OverridingKind", tag = "7")]
2892    pub r#override: i32,
2893}
2894#[derive(serde::Serialize)]
2895#[derive(Clone, PartialEq, ::prost::Message)]
2896pub struct DeleteStmt {
2897    #[prost(message, optional, tag = "1")]
2898    pub relation: ::core::option::Option<RangeVar>,
2899    #[prost(message, repeated, tag = "2")]
2900    pub using_clause: ::prost::alloc::vec::Vec<Node>,
2901    #[prost(message, optional, boxed, tag = "3")]
2902    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2903    #[prost(message, optional, tag = "4")]
2904    pub returning_clause: ::core::option::Option<ReturningClause>,
2905    #[prost(message, optional, tag = "5")]
2906    pub with_clause: ::core::option::Option<WithClause>,
2907}
2908#[derive(serde::Serialize)]
2909#[derive(Clone, PartialEq, ::prost::Message)]
2910pub struct UpdateStmt {
2911    #[prost(message, optional, tag = "1")]
2912    pub relation: ::core::option::Option<RangeVar>,
2913    #[prost(message, repeated, tag = "2")]
2914    pub target_list: ::prost::alloc::vec::Vec<Node>,
2915    #[prost(message, optional, boxed, tag = "3")]
2916    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2917    #[prost(message, repeated, tag = "4")]
2918    pub from_clause: ::prost::alloc::vec::Vec<Node>,
2919    #[prost(message, optional, tag = "5")]
2920    pub returning_clause: ::core::option::Option<ReturningClause>,
2921    #[prost(message, optional, tag = "6")]
2922    pub with_clause: ::core::option::Option<WithClause>,
2923}
2924#[derive(serde::Serialize)]
2925#[derive(Clone, PartialEq, ::prost::Message)]
2926pub struct MergeStmt {
2927    #[prost(message, optional, tag = "1")]
2928    pub relation: ::core::option::Option<RangeVar>,
2929    #[prost(message, optional, boxed, tag = "2")]
2930    pub source_relation: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2931    #[prost(message, optional, boxed, tag = "3")]
2932    pub join_condition: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2933    #[prost(message, repeated, tag = "4")]
2934    pub merge_when_clauses: ::prost::alloc::vec::Vec<Node>,
2935    #[prost(message, optional, tag = "5")]
2936    pub returning_clause: ::core::option::Option<ReturningClause>,
2937    #[prost(message, optional, tag = "6")]
2938    pub with_clause: ::core::option::Option<WithClause>,
2939}
2940#[derive(serde::Serialize)]
2941#[derive(Clone, PartialEq, ::prost::Message)]
2942pub struct SelectStmt {
2943    #[prost(message, repeated, tag = "1")]
2944    pub distinct_clause: ::prost::alloc::vec::Vec<Node>,
2945    #[prost(message, optional, boxed, tag = "2")]
2946    pub into_clause: ::core::option::Option<::prost::alloc::boxed::Box<IntoClause>>,
2947    #[prost(message, repeated, tag = "3")]
2948    pub target_list: ::prost::alloc::vec::Vec<Node>,
2949    #[prost(message, repeated, tag = "4")]
2950    pub from_clause: ::prost::alloc::vec::Vec<Node>,
2951    #[prost(message, optional, boxed, tag = "5")]
2952    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2953    #[prost(message, repeated, tag = "6")]
2954    pub group_clause: ::prost::alloc::vec::Vec<Node>,
2955    #[prost(bool, tag = "7")]
2956    pub group_distinct: bool,
2957    #[prost(message, optional, boxed, tag = "8")]
2958    pub having_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2959    #[prost(message, repeated, tag = "9")]
2960    pub window_clause: ::prost::alloc::vec::Vec<Node>,
2961    #[prost(message, repeated, tag = "10")]
2962    pub values_lists: ::prost::alloc::vec::Vec<Node>,
2963    #[prost(message, repeated, tag = "11")]
2964    pub sort_clause: ::prost::alloc::vec::Vec<Node>,
2965    #[prost(message, optional, boxed, tag = "12")]
2966    pub limit_offset: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2967    #[prost(message, optional, boxed, tag = "13")]
2968    pub limit_count: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2969    #[prost(enumeration = "LimitOption", tag = "14")]
2970    pub limit_option: i32,
2971    #[prost(message, repeated, tag = "15")]
2972    pub locking_clause: ::prost::alloc::vec::Vec<Node>,
2973    #[prost(message, optional, tag = "16")]
2974    pub with_clause: ::core::option::Option<WithClause>,
2975    #[prost(enumeration = "SetOperation", tag = "17")]
2976    pub op: i32,
2977    #[prost(bool, tag = "18")]
2978    pub all: bool,
2979    #[prost(message, optional, boxed, tag = "19")]
2980    pub larg: ::core::option::Option<::prost::alloc::boxed::Box<SelectStmt>>,
2981    #[prost(message, optional, boxed, tag = "20")]
2982    pub rarg: ::core::option::Option<::prost::alloc::boxed::Box<SelectStmt>>,
2983}
2984#[derive(serde::Serialize)]
2985#[derive(Clone, PartialEq, ::prost::Message)]
2986pub struct SetOperationStmt {
2987    #[prost(enumeration = "SetOperation", tag = "1")]
2988    pub op: i32,
2989    #[prost(bool, tag = "2")]
2990    pub all: bool,
2991    #[prost(message, optional, boxed, tag = "3")]
2992    pub larg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2993    #[prost(message, optional, boxed, tag = "4")]
2994    pub rarg: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
2995    #[prost(message, repeated, tag = "5")]
2996    pub col_types: ::prost::alloc::vec::Vec<Node>,
2997    #[prost(message, repeated, tag = "6")]
2998    pub col_typmods: ::prost::alloc::vec::Vec<Node>,
2999    #[prost(message, repeated, tag = "7")]
3000    pub col_collations: ::prost::alloc::vec::Vec<Node>,
3001    #[prost(message, repeated, tag = "8")]
3002    pub group_clauses: ::prost::alloc::vec::Vec<Node>,
3003}
3004#[derive(serde::Serialize)]
3005#[derive(Clone, PartialEq, ::prost::Message)]
3006pub struct ReturnStmt {
3007    #[prost(message, optional, boxed, tag = "1")]
3008    pub returnval: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3009}
3010#[derive(serde::Serialize)]
3011#[derive(Clone, PartialEq, ::prost::Message)]
3012pub struct PlAssignStmt {
3013    #[prost(string, tag = "1")]
3014    pub name: ::prost::alloc::string::String,
3015    #[prost(message, repeated, tag = "2")]
3016    pub indirection: ::prost::alloc::vec::Vec<Node>,
3017    #[prost(int32, tag = "3")]
3018    pub nnames: i32,
3019    #[prost(message, optional, boxed, tag = "4")]
3020    pub val: ::core::option::Option<::prost::alloc::boxed::Box<SelectStmt>>,
3021    #[prost(int32, tag = "5")]
3022    pub location: i32,
3023}
3024#[derive(serde::Serialize)]
3025#[derive(Clone, PartialEq, ::prost::Message)]
3026pub struct CreateSchemaStmt {
3027    #[prost(string, tag = "1")]
3028    pub schemaname: ::prost::alloc::string::String,
3029    #[prost(message, optional, tag = "2")]
3030    pub authrole: ::core::option::Option<RoleSpec>,
3031    #[prost(message, repeated, tag = "3")]
3032    pub schema_elts: ::prost::alloc::vec::Vec<Node>,
3033    #[prost(bool, tag = "4")]
3034    pub if_not_exists: bool,
3035}
3036#[derive(serde::Serialize)]
3037#[derive(Clone, PartialEq, ::prost::Message)]
3038pub struct AlterTableStmt {
3039    #[prost(message, optional, tag = "1")]
3040    pub relation: ::core::option::Option<RangeVar>,
3041    #[prost(message, repeated, tag = "2")]
3042    pub cmds: ::prost::alloc::vec::Vec<Node>,
3043    #[prost(enumeration = "ObjectType", tag = "3")]
3044    pub objtype: i32,
3045    #[prost(bool, tag = "4")]
3046    pub missing_ok: bool,
3047}
3048#[derive(serde::Serialize)]
3049#[derive(Clone, PartialEq, ::prost::Message)]
3050pub struct AlterTableCmd {
3051    #[prost(enumeration = "AlterTableType", tag = "1")]
3052    pub subtype: i32,
3053    #[prost(string, tag = "2")]
3054    pub name: ::prost::alloc::string::String,
3055    #[prost(int32, tag = "3")]
3056    pub num: i32,
3057    #[prost(message, optional, tag = "4")]
3058    pub newowner: ::core::option::Option<RoleSpec>,
3059    #[prost(message, optional, boxed, tag = "5")]
3060    pub def: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3061    #[prost(enumeration = "DropBehavior", tag = "6")]
3062    pub behavior: i32,
3063    #[prost(bool, tag = "7")]
3064    pub missing_ok: bool,
3065    #[prost(bool, tag = "8")]
3066    pub recurse: bool,
3067}
3068#[derive(serde::Serialize)]
3069#[derive(Clone, PartialEq, ::prost::Message)]
3070pub struct AtAlterConstraint {
3071    #[prost(string, tag = "1")]
3072    pub conname: ::prost::alloc::string::String,
3073    #[prost(bool, tag = "2")]
3074    pub alter_enforceability: bool,
3075    #[prost(bool, tag = "3")]
3076    pub is_enforced: bool,
3077    #[prost(bool, tag = "4")]
3078    pub alter_deferrability: bool,
3079    #[prost(bool, tag = "5")]
3080    pub deferrable: bool,
3081    #[prost(bool, tag = "6")]
3082    pub initdeferred: bool,
3083    #[prost(bool, tag = "7")]
3084    pub alter_inheritability: bool,
3085    #[prost(bool, tag = "8")]
3086    pub noinherit: bool,
3087}
3088#[derive(serde::Serialize)]
3089#[derive(Clone, PartialEq, ::prost::Message)]
3090pub struct ReplicaIdentityStmt {
3091    #[prost(string, tag = "1")]
3092    pub identity_type: ::prost::alloc::string::String,
3093    #[prost(string, tag = "2")]
3094    pub name: ::prost::alloc::string::String,
3095}
3096#[derive(serde::Serialize)]
3097#[derive(Clone, PartialEq, ::prost::Message)]
3098pub struct AlterCollationStmt {
3099    #[prost(message, repeated, tag = "1")]
3100    pub collname: ::prost::alloc::vec::Vec<Node>,
3101}
3102#[derive(serde::Serialize)]
3103#[derive(Clone, PartialEq, ::prost::Message)]
3104pub struct AlterDomainStmt {
3105    #[prost(string, tag = "1")]
3106    pub subtype: ::prost::alloc::string::String,
3107    #[prost(message, repeated, tag = "2")]
3108    pub type_name: ::prost::alloc::vec::Vec<Node>,
3109    #[prost(string, tag = "3")]
3110    pub name: ::prost::alloc::string::String,
3111    #[prost(message, optional, boxed, tag = "4")]
3112    pub def: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3113    #[prost(enumeration = "DropBehavior", tag = "5")]
3114    pub behavior: i32,
3115    #[prost(bool, tag = "6")]
3116    pub missing_ok: bool,
3117}
3118#[derive(serde::Serialize)]
3119#[derive(Clone, PartialEq, ::prost::Message)]
3120pub struct GrantStmt {
3121    #[prost(bool, tag = "1")]
3122    pub is_grant: bool,
3123    #[prost(enumeration = "GrantTargetType", tag = "2")]
3124    pub targtype: i32,
3125    #[prost(enumeration = "ObjectType", tag = "3")]
3126    pub objtype: i32,
3127    #[prost(message, repeated, tag = "4")]
3128    pub objects: ::prost::alloc::vec::Vec<Node>,
3129    #[prost(message, repeated, tag = "5")]
3130    pub privileges: ::prost::alloc::vec::Vec<Node>,
3131    #[prost(message, repeated, tag = "6")]
3132    pub grantees: ::prost::alloc::vec::Vec<Node>,
3133    #[prost(bool, tag = "7")]
3134    pub grant_option: bool,
3135    #[prost(message, optional, tag = "8")]
3136    pub grantor: ::core::option::Option<RoleSpec>,
3137    #[prost(enumeration = "DropBehavior", tag = "9")]
3138    pub behavior: i32,
3139}
3140#[derive(serde::Serialize)]
3141#[derive(Clone, PartialEq, ::prost::Message)]
3142pub struct ObjectWithArgs {
3143    #[prost(message, repeated, tag = "1")]
3144    pub objname: ::prost::alloc::vec::Vec<Node>,
3145    #[prost(message, repeated, tag = "2")]
3146    pub objargs: ::prost::alloc::vec::Vec<Node>,
3147    #[prost(message, repeated, tag = "3")]
3148    pub objfuncargs: ::prost::alloc::vec::Vec<Node>,
3149    #[prost(bool, tag = "4")]
3150    pub args_unspecified: bool,
3151}
3152#[derive(serde::Serialize)]
3153#[derive(Clone, PartialEq, ::prost::Message)]
3154pub struct AccessPriv {
3155    #[prost(string, tag = "1")]
3156    pub priv_name: ::prost::alloc::string::String,
3157    #[prost(message, repeated, tag = "2")]
3158    pub cols: ::prost::alloc::vec::Vec<Node>,
3159}
3160#[derive(serde::Serialize)]
3161#[derive(Clone, PartialEq, ::prost::Message)]
3162pub struct GrantRoleStmt {
3163    #[prost(message, repeated, tag = "1")]
3164    pub granted_roles: ::prost::alloc::vec::Vec<Node>,
3165    #[prost(message, repeated, tag = "2")]
3166    pub grantee_roles: ::prost::alloc::vec::Vec<Node>,
3167    #[prost(bool, tag = "3")]
3168    pub is_grant: bool,
3169    #[prost(message, repeated, tag = "4")]
3170    pub opt: ::prost::alloc::vec::Vec<Node>,
3171    #[prost(message, optional, tag = "5")]
3172    pub grantor: ::core::option::Option<RoleSpec>,
3173    #[prost(enumeration = "DropBehavior", tag = "6")]
3174    pub behavior: i32,
3175}
3176#[derive(serde::Serialize)]
3177#[derive(Clone, PartialEq, ::prost::Message)]
3178pub struct AlterDefaultPrivilegesStmt {
3179    #[prost(message, repeated, tag = "1")]
3180    pub options: ::prost::alloc::vec::Vec<Node>,
3181    #[prost(message, optional, tag = "2")]
3182    pub action: ::core::option::Option<GrantStmt>,
3183}
3184#[derive(serde::Serialize)]
3185#[derive(Clone, PartialEq, ::prost::Message)]
3186pub struct CopyStmt {
3187    #[prost(message, optional, tag = "1")]
3188    pub relation: ::core::option::Option<RangeVar>,
3189    #[prost(message, optional, boxed, tag = "2")]
3190    pub query: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3191    #[prost(message, repeated, tag = "3")]
3192    pub attlist: ::prost::alloc::vec::Vec<Node>,
3193    #[prost(bool, tag = "4")]
3194    pub is_from: bool,
3195    #[prost(bool, tag = "5")]
3196    pub is_program: bool,
3197    #[prost(string, tag = "6")]
3198    pub filename: ::prost::alloc::string::String,
3199    #[prost(message, repeated, tag = "7")]
3200    pub options: ::prost::alloc::vec::Vec<Node>,
3201    #[prost(message, optional, boxed, tag = "8")]
3202    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3203}
3204#[derive(serde::Serialize)]
3205#[derive(Clone, PartialEq, ::prost::Message)]
3206pub struct VariableSetStmt {
3207    #[prost(enumeration = "VariableSetKind", tag = "1")]
3208    pub kind: i32,
3209    #[prost(string, tag = "2")]
3210    pub name: ::prost::alloc::string::String,
3211    #[prost(message, repeated, tag = "3")]
3212    pub args: ::prost::alloc::vec::Vec<Node>,
3213    #[prost(bool, tag = "4")]
3214    pub jumble_args: bool,
3215    #[prost(bool, tag = "5")]
3216    pub is_local: bool,
3217    #[prost(int32, tag = "6")]
3218    pub location: i32,
3219}
3220#[derive(serde::Serialize)]
3221#[derive(Clone, PartialEq, ::prost::Message)]
3222pub struct VariableShowStmt {
3223    #[prost(string, tag = "1")]
3224    pub name: ::prost::alloc::string::String,
3225}
3226#[derive(serde::Serialize)]
3227#[derive(Clone, PartialEq, ::prost::Message)]
3228pub struct CreateStmt {
3229    #[prost(message, optional, tag = "1")]
3230    pub relation: ::core::option::Option<RangeVar>,
3231    #[prost(message, repeated, tag = "2")]
3232    pub table_elts: ::prost::alloc::vec::Vec<Node>,
3233    #[prost(message, repeated, tag = "3")]
3234    pub inh_relations: ::prost::alloc::vec::Vec<Node>,
3235    #[prost(message, optional, tag = "4")]
3236    pub partbound: ::core::option::Option<PartitionBoundSpec>,
3237    #[prost(message, optional, tag = "5")]
3238    pub partspec: ::core::option::Option<PartitionSpec>,
3239    #[prost(message, optional, tag = "6")]
3240    pub of_typename: ::core::option::Option<TypeName>,
3241    #[prost(message, repeated, tag = "7")]
3242    pub constraints: ::prost::alloc::vec::Vec<Node>,
3243    #[prost(message, repeated, tag = "8")]
3244    pub nnconstraints: ::prost::alloc::vec::Vec<Node>,
3245    #[prost(message, repeated, tag = "9")]
3246    pub options: ::prost::alloc::vec::Vec<Node>,
3247    #[prost(enumeration = "OnCommitAction", tag = "10")]
3248    pub oncommit: i32,
3249    #[prost(string, tag = "11")]
3250    pub tablespacename: ::prost::alloc::string::String,
3251    #[prost(string, tag = "12")]
3252    pub access_method: ::prost::alloc::string::String,
3253    #[prost(bool, tag = "13")]
3254    pub if_not_exists: bool,
3255}
3256#[derive(serde::Serialize)]
3257#[derive(Clone, PartialEq, ::prost::Message)]
3258pub struct Constraint {
3259    #[prost(enumeration = "ConstrType", tag = "1")]
3260    pub contype: i32,
3261    #[prost(string, tag = "2")]
3262    pub conname: ::prost::alloc::string::String,
3263    #[prost(bool, tag = "3")]
3264    pub deferrable: bool,
3265    #[prost(bool, tag = "4")]
3266    pub initdeferred: bool,
3267    #[prost(bool, tag = "5")]
3268    pub is_enforced: bool,
3269    #[prost(bool, tag = "6")]
3270    pub skip_validation: bool,
3271    #[prost(bool, tag = "7")]
3272    pub initially_valid: bool,
3273    #[prost(bool, tag = "8")]
3274    pub is_no_inherit: bool,
3275    #[prost(message, optional, boxed, tag = "9")]
3276    pub raw_expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3277    #[prost(string, tag = "10")]
3278    pub cooked_expr: ::prost::alloc::string::String,
3279    #[prost(string, tag = "11")]
3280    pub generated_when: ::prost::alloc::string::String,
3281    #[prost(string, tag = "12")]
3282    pub generated_kind: ::prost::alloc::string::String,
3283    #[prost(bool, tag = "13")]
3284    pub nulls_not_distinct: bool,
3285    #[prost(message, repeated, tag = "14")]
3286    pub keys: ::prost::alloc::vec::Vec<Node>,
3287    #[prost(bool, tag = "15")]
3288    pub without_overlaps: bool,
3289    #[prost(message, repeated, tag = "16")]
3290    pub including: ::prost::alloc::vec::Vec<Node>,
3291    #[prost(message, repeated, tag = "17")]
3292    pub exclusions: ::prost::alloc::vec::Vec<Node>,
3293    #[prost(message, repeated, tag = "18")]
3294    pub options: ::prost::alloc::vec::Vec<Node>,
3295    #[prost(string, tag = "19")]
3296    pub indexname: ::prost::alloc::string::String,
3297    #[prost(string, tag = "20")]
3298    pub indexspace: ::prost::alloc::string::String,
3299    #[prost(bool, tag = "21")]
3300    pub reset_default_tblspc: bool,
3301    #[prost(string, tag = "22")]
3302    pub access_method: ::prost::alloc::string::String,
3303    #[prost(message, optional, boxed, tag = "23")]
3304    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3305    #[prost(message, optional, tag = "24")]
3306    pub pktable: ::core::option::Option<RangeVar>,
3307    #[prost(message, repeated, tag = "25")]
3308    pub fk_attrs: ::prost::alloc::vec::Vec<Node>,
3309    #[prost(message, repeated, tag = "26")]
3310    pub pk_attrs: ::prost::alloc::vec::Vec<Node>,
3311    #[prost(bool, tag = "27")]
3312    pub fk_with_period: bool,
3313    #[prost(bool, tag = "28")]
3314    pub pk_with_period: bool,
3315    #[prost(string, tag = "29")]
3316    pub fk_matchtype: ::prost::alloc::string::String,
3317    #[prost(string, tag = "30")]
3318    pub fk_upd_action: ::prost::alloc::string::String,
3319    #[prost(string, tag = "31")]
3320    pub fk_del_action: ::prost::alloc::string::String,
3321    #[prost(message, repeated, tag = "32")]
3322    pub fk_del_set_cols: ::prost::alloc::vec::Vec<Node>,
3323    #[prost(message, repeated, tag = "33")]
3324    pub old_conpfeqop: ::prost::alloc::vec::Vec<Node>,
3325    #[prost(uint32, tag = "34")]
3326    pub old_pktable_oid: u32,
3327    #[prost(int32, tag = "35")]
3328    pub location: i32,
3329}
3330#[derive(serde::Serialize)]
3331#[derive(Clone, PartialEq, ::prost::Message)]
3332pub struct CreateTableSpaceStmt {
3333    #[prost(string, tag = "1")]
3334    pub tablespacename: ::prost::alloc::string::String,
3335    #[prost(message, optional, tag = "2")]
3336    pub owner: ::core::option::Option<RoleSpec>,
3337    #[prost(string, tag = "3")]
3338    pub location: ::prost::alloc::string::String,
3339    #[prost(message, repeated, tag = "4")]
3340    pub options: ::prost::alloc::vec::Vec<Node>,
3341}
3342#[derive(serde::Serialize)]
3343#[derive(Clone, PartialEq, ::prost::Message)]
3344pub struct DropTableSpaceStmt {
3345    #[prost(string, tag = "1")]
3346    pub tablespacename: ::prost::alloc::string::String,
3347    #[prost(bool, tag = "2")]
3348    pub missing_ok: bool,
3349}
3350#[derive(serde::Serialize)]
3351#[derive(Clone, PartialEq, ::prost::Message)]
3352pub struct AlterTableSpaceOptionsStmt {
3353    #[prost(string, tag = "1")]
3354    pub tablespacename: ::prost::alloc::string::String,
3355    #[prost(message, repeated, tag = "2")]
3356    pub options: ::prost::alloc::vec::Vec<Node>,
3357    #[prost(bool, tag = "3")]
3358    pub is_reset: bool,
3359}
3360#[derive(serde::Serialize)]
3361#[derive(Clone, PartialEq, ::prost::Message)]
3362pub struct AlterTableMoveAllStmt {
3363    #[prost(string, tag = "1")]
3364    pub orig_tablespacename: ::prost::alloc::string::String,
3365    #[prost(enumeration = "ObjectType", tag = "2")]
3366    pub objtype: i32,
3367    #[prost(message, repeated, tag = "3")]
3368    pub roles: ::prost::alloc::vec::Vec<Node>,
3369    #[prost(string, tag = "4")]
3370    pub new_tablespacename: ::prost::alloc::string::String,
3371    #[prost(bool, tag = "5")]
3372    pub nowait: bool,
3373}
3374#[derive(serde::Serialize)]
3375#[derive(Clone, PartialEq, ::prost::Message)]
3376pub struct CreateExtensionStmt {
3377    #[prost(string, tag = "1")]
3378    pub extname: ::prost::alloc::string::String,
3379    #[prost(bool, tag = "2")]
3380    pub if_not_exists: bool,
3381    #[prost(message, repeated, tag = "3")]
3382    pub options: ::prost::alloc::vec::Vec<Node>,
3383}
3384#[derive(serde::Serialize)]
3385#[derive(Clone, PartialEq, ::prost::Message)]
3386pub struct AlterExtensionStmt {
3387    #[prost(string, tag = "1")]
3388    pub extname: ::prost::alloc::string::String,
3389    #[prost(message, repeated, tag = "2")]
3390    pub options: ::prost::alloc::vec::Vec<Node>,
3391}
3392#[derive(serde::Serialize)]
3393#[derive(Clone, PartialEq, ::prost::Message)]
3394pub struct AlterExtensionContentsStmt {
3395    #[prost(string, tag = "1")]
3396    pub extname: ::prost::alloc::string::String,
3397    #[prost(int32, tag = "2")]
3398    pub action: i32,
3399    #[prost(enumeration = "ObjectType", tag = "3")]
3400    pub objtype: i32,
3401    #[prost(message, optional, boxed, tag = "4")]
3402    pub object: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3403}
3404#[derive(serde::Serialize)]
3405#[derive(Clone, PartialEq, ::prost::Message)]
3406pub struct CreateFdwStmt {
3407    #[prost(string, tag = "1")]
3408    pub fdwname: ::prost::alloc::string::String,
3409    #[prost(message, repeated, tag = "2")]
3410    pub func_options: ::prost::alloc::vec::Vec<Node>,
3411    #[prost(message, repeated, tag = "3")]
3412    pub options: ::prost::alloc::vec::Vec<Node>,
3413}
3414#[derive(serde::Serialize)]
3415#[derive(Clone, PartialEq, ::prost::Message)]
3416pub struct AlterFdwStmt {
3417    #[prost(string, tag = "1")]
3418    pub fdwname: ::prost::alloc::string::String,
3419    #[prost(message, repeated, tag = "2")]
3420    pub func_options: ::prost::alloc::vec::Vec<Node>,
3421    #[prost(message, repeated, tag = "3")]
3422    pub options: ::prost::alloc::vec::Vec<Node>,
3423}
3424#[derive(serde::Serialize)]
3425#[derive(Clone, PartialEq, ::prost::Message)]
3426pub struct CreateForeignServerStmt {
3427    #[prost(string, tag = "1")]
3428    pub servername: ::prost::alloc::string::String,
3429    #[prost(string, tag = "2")]
3430    pub servertype: ::prost::alloc::string::String,
3431    #[prost(string, tag = "3")]
3432    pub version: ::prost::alloc::string::String,
3433    #[prost(string, tag = "4")]
3434    pub fdwname: ::prost::alloc::string::String,
3435    #[prost(bool, tag = "5")]
3436    pub if_not_exists: bool,
3437    #[prost(message, repeated, tag = "6")]
3438    pub options: ::prost::alloc::vec::Vec<Node>,
3439}
3440#[derive(serde::Serialize)]
3441#[derive(Clone, PartialEq, ::prost::Message)]
3442pub struct AlterForeignServerStmt {
3443    #[prost(string, tag = "1")]
3444    pub servername: ::prost::alloc::string::String,
3445    #[prost(string, tag = "2")]
3446    pub version: ::prost::alloc::string::String,
3447    #[prost(message, repeated, tag = "3")]
3448    pub options: ::prost::alloc::vec::Vec<Node>,
3449    #[prost(bool, tag = "4")]
3450    pub has_version: bool,
3451}
3452#[derive(serde::Serialize)]
3453#[derive(Clone, PartialEq, ::prost::Message)]
3454pub struct CreateForeignTableStmt {
3455    #[prost(message, optional, tag = "1")]
3456    pub base_stmt: ::core::option::Option<CreateStmt>,
3457    #[prost(string, tag = "2")]
3458    pub servername: ::prost::alloc::string::String,
3459    #[prost(message, repeated, tag = "3")]
3460    pub options: ::prost::alloc::vec::Vec<Node>,
3461}
3462#[derive(serde::Serialize)]
3463#[derive(Clone, PartialEq, ::prost::Message)]
3464pub struct CreateUserMappingStmt {
3465    #[prost(message, optional, tag = "1")]
3466    pub user: ::core::option::Option<RoleSpec>,
3467    #[prost(string, tag = "2")]
3468    pub servername: ::prost::alloc::string::String,
3469    #[prost(bool, tag = "3")]
3470    pub if_not_exists: bool,
3471    #[prost(message, repeated, tag = "4")]
3472    pub options: ::prost::alloc::vec::Vec<Node>,
3473}
3474#[derive(serde::Serialize)]
3475#[derive(Clone, PartialEq, ::prost::Message)]
3476pub struct AlterUserMappingStmt {
3477    #[prost(message, optional, tag = "1")]
3478    pub user: ::core::option::Option<RoleSpec>,
3479    #[prost(string, tag = "2")]
3480    pub servername: ::prost::alloc::string::String,
3481    #[prost(message, repeated, tag = "3")]
3482    pub options: ::prost::alloc::vec::Vec<Node>,
3483}
3484#[derive(serde::Serialize)]
3485#[derive(Clone, PartialEq, ::prost::Message)]
3486pub struct DropUserMappingStmt {
3487    #[prost(message, optional, tag = "1")]
3488    pub user: ::core::option::Option<RoleSpec>,
3489    #[prost(string, tag = "2")]
3490    pub servername: ::prost::alloc::string::String,
3491    #[prost(bool, tag = "3")]
3492    pub missing_ok: bool,
3493}
3494#[derive(serde::Serialize)]
3495#[derive(Clone, PartialEq, ::prost::Message)]
3496pub struct ImportForeignSchemaStmt {
3497    #[prost(string, tag = "1")]
3498    pub server_name: ::prost::alloc::string::String,
3499    #[prost(string, tag = "2")]
3500    pub remote_schema: ::prost::alloc::string::String,
3501    #[prost(string, tag = "3")]
3502    pub local_schema: ::prost::alloc::string::String,
3503    #[prost(enumeration = "ImportForeignSchemaType", tag = "4")]
3504    pub list_type: i32,
3505    #[prost(message, repeated, tag = "5")]
3506    pub table_list: ::prost::alloc::vec::Vec<Node>,
3507    #[prost(message, repeated, tag = "6")]
3508    pub options: ::prost::alloc::vec::Vec<Node>,
3509}
3510#[derive(serde::Serialize)]
3511#[derive(Clone, PartialEq, ::prost::Message)]
3512pub struct CreatePolicyStmt {
3513    #[prost(string, tag = "1")]
3514    pub policy_name: ::prost::alloc::string::String,
3515    #[prost(message, optional, tag = "2")]
3516    pub table: ::core::option::Option<RangeVar>,
3517    #[prost(string, tag = "3")]
3518    pub cmd_name: ::prost::alloc::string::String,
3519    #[prost(bool, tag = "4")]
3520    pub permissive: bool,
3521    #[prost(message, repeated, tag = "5")]
3522    pub roles: ::prost::alloc::vec::Vec<Node>,
3523    #[prost(message, optional, boxed, tag = "6")]
3524    pub qual: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3525    #[prost(message, optional, boxed, tag = "7")]
3526    pub with_check: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3527}
3528#[derive(serde::Serialize)]
3529#[derive(Clone, PartialEq, ::prost::Message)]
3530pub struct AlterPolicyStmt {
3531    #[prost(string, tag = "1")]
3532    pub policy_name: ::prost::alloc::string::String,
3533    #[prost(message, optional, tag = "2")]
3534    pub table: ::core::option::Option<RangeVar>,
3535    #[prost(message, repeated, tag = "3")]
3536    pub roles: ::prost::alloc::vec::Vec<Node>,
3537    #[prost(message, optional, boxed, tag = "4")]
3538    pub qual: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3539    #[prost(message, optional, boxed, tag = "5")]
3540    pub with_check: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3541}
3542#[derive(serde::Serialize)]
3543#[derive(Clone, PartialEq, ::prost::Message)]
3544pub struct CreateAmStmt {
3545    #[prost(string, tag = "1")]
3546    pub amname: ::prost::alloc::string::String,
3547    #[prost(message, repeated, tag = "2")]
3548    pub handler_name: ::prost::alloc::vec::Vec<Node>,
3549    #[prost(string, tag = "3")]
3550    pub amtype: ::prost::alloc::string::String,
3551}
3552#[derive(serde::Serialize)]
3553#[derive(Clone, PartialEq, ::prost::Message)]
3554pub struct CreateTrigStmt {
3555    #[prost(bool, tag = "1")]
3556    pub replace: bool,
3557    #[prost(bool, tag = "2")]
3558    pub isconstraint: bool,
3559    #[prost(string, tag = "3")]
3560    pub trigname: ::prost::alloc::string::String,
3561    #[prost(message, optional, tag = "4")]
3562    pub relation: ::core::option::Option<RangeVar>,
3563    #[prost(message, repeated, tag = "5")]
3564    pub funcname: ::prost::alloc::vec::Vec<Node>,
3565    #[prost(message, repeated, tag = "6")]
3566    pub args: ::prost::alloc::vec::Vec<Node>,
3567    #[prost(bool, tag = "7")]
3568    pub row: bool,
3569    #[prost(int32, tag = "8")]
3570    pub timing: i32,
3571    #[prost(int32, tag = "9")]
3572    pub events: i32,
3573    #[prost(message, repeated, tag = "10")]
3574    pub columns: ::prost::alloc::vec::Vec<Node>,
3575    #[prost(message, optional, boxed, tag = "11")]
3576    pub when_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3577    #[prost(message, repeated, tag = "12")]
3578    pub transition_rels: ::prost::alloc::vec::Vec<Node>,
3579    #[prost(bool, tag = "13")]
3580    pub deferrable: bool,
3581    #[prost(bool, tag = "14")]
3582    pub initdeferred: bool,
3583    #[prost(message, optional, tag = "15")]
3584    pub constrrel: ::core::option::Option<RangeVar>,
3585}
3586#[derive(serde::Serialize)]
3587#[derive(Clone, PartialEq, ::prost::Message)]
3588pub struct CreateEventTrigStmt {
3589    #[prost(string, tag = "1")]
3590    pub trigname: ::prost::alloc::string::String,
3591    #[prost(string, tag = "2")]
3592    pub eventname: ::prost::alloc::string::String,
3593    #[prost(message, repeated, tag = "3")]
3594    pub whenclause: ::prost::alloc::vec::Vec<Node>,
3595    #[prost(message, repeated, tag = "4")]
3596    pub funcname: ::prost::alloc::vec::Vec<Node>,
3597}
3598#[derive(serde::Serialize)]
3599#[derive(Clone, PartialEq, ::prost::Message)]
3600pub struct AlterEventTrigStmt {
3601    #[prost(string, tag = "1")]
3602    pub trigname: ::prost::alloc::string::String,
3603    #[prost(string, tag = "2")]
3604    pub tgenabled: ::prost::alloc::string::String,
3605}
3606#[derive(serde::Serialize)]
3607#[derive(Clone, PartialEq, ::prost::Message)]
3608pub struct CreatePLangStmt {
3609    #[prost(bool, tag = "1")]
3610    pub replace: bool,
3611    #[prost(string, tag = "2")]
3612    pub plname: ::prost::alloc::string::String,
3613    #[prost(message, repeated, tag = "3")]
3614    pub plhandler: ::prost::alloc::vec::Vec<Node>,
3615    #[prost(message, repeated, tag = "4")]
3616    pub plinline: ::prost::alloc::vec::Vec<Node>,
3617    #[prost(message, repeated, tag = "5")]
3618    pub plvalidator: ::prost::alloc::vec::Vec<Node>,
3619    #[prost(bool, tag = "6")]
3620    pub pltrusted: bool,
3621}
3622#[derive(serde::Serialize)]
3623#[derive(Clone, PartialEq, ::prost::Message)]
3624pub struct CreateRoleStmt {
3625    #[prost(enumeration = "RoleStmtType", tag = "1")]
3626    pub stmt_type: i32,
3627    #[prost(string, tag = "2")]
3628    pub role: ::prost::alloc::string::String,
3629    #[prost(message, repeated, tag = "3")]
3630    pub options: ::prost::alloc::vec::Vec<Node>,
3631}
3632#[derive(serde::Serialize)]
3633#[derive(Clone, PartialEq, ::prost::Message)]
3634pub struct AlterRoleStmt {
3635    #[prost(message, optional, tag = "1")]
3636    pub role: ::core::option::Option<RoleSpec>,
3637    #[prost(message, repeated, tag = "2")]
3638    pub options: ::prost::alloc::vec::Vec<Node>,
3639    #[prost(int32, tag = "3")]
3640    pub action: i32,
3641}
3642#[derive(serde::Serialize)]
3643#[derive(Clone, PartialEq, ::prost::Message)]
3644pub struct AlterRoleSetStmt {
3645    #[prost(message, optional, tag = "1")]
3646    pub role: ::core::option::Option<RoleSpec>,
3647    #[prost(string, tag = "2")]
3648    pub database: ::prost::alloc::string::String,
3649    #[prost(message, optional, tag = "3")]
3650    pub setstmt: ::core::option::Option<VariableSetStmt>,
3651}
3652#[derive(serde::Serialize)]
3653#[derive(Clone, PartialEq, ::prost::Message)]
3654pub struct DropRoleStmt {
3655    #[prost(message, repeated, tag = "1")]
3656    pub roles: ::prost::alloc::vec::Vec<Node>,
3657    #[prost(bool, tag = "2")]
3658    pub missing_ok: bool,
3659}
3660#[derive(serde::Serialize)]
3661#[derive(Clone, PartialEq, ::prost::Message)]
3662pub struct CreateSeqStmt {
3663    #[prost(message, optional, tag = "1")]
3664    pub sequence: ::core::option::Option<RangeVar>,
3665    #[prost(message, repeated, tag = "2")]
3666    pub options: ::prost::alloc::vec::Vec<Node>,
3667    #[prost(uint32, tag = "3")]
3668    pub owner_id: u32,
3669    #[prost(bool, tag = "4")]
3670    pub for_identity: bool,
3671    #[prost(bool, tag = "5")]
3672    pub if_not_exists: bool,
3673}
3674#[derive(serde::Serialize)]
3675#[derive(Clone, PartialEq, ::prost::Message)]
3676pub struct AlterSeqStmt {
3677    #[prost(message, optional, tag = "1")]
3678    pub sequence: ::core::option::Option<RangeVar>,
3679    #[prost(message, repeated, tag = "2")]
3680    pub options: ::prost::alloc::vec::Vec<Node>,
3681    #[prost(bool, tag = "3")]
3682    pub for_identity: bool,
3683    #[prost(bool, tag = "4")]
3684    pub missing_ok: bool,
3685}
3686#[derive(serde::Serialize)]
3687#[derive(Clone, PartialEq, ::prost::Message)]
3688pub struct DefineStmt {
3689    #[prost(enumeration = "ObjectType", tag = "1")]
3690    pub kind: i32,
3691    #[prost(bool, tag = "2")]
3692    pub oldstyle: bool,
3693    #[prost(message, repeated, tag = "3")]
3694    pub defnames: ::prost::alloc::vec::Vec<Node>,
3695    #[prost(message, repeated, tag = "4")]
3696    pub args: ::prost::alloc::vec::Vec<Node>,
3697    #[prost(message, repeated, tag = "5")]
3698    pub definition: ::prost::alloc::vec::Vec<Node>,
3699    #[prost(bool, tag = "6")]
3700    pub if_not_exists: bool,
3701    #[prost(bool, tag = "7")]
3702    pub replace: bool,
3703}
3704#[derive(serde::Serialize)]
3705#[derive(Clone, PartialEq, ::prost::Message)]
3706pub struct CreateDomainStmt {
3707    #[prost(message, repeated, tag = "1")]
3708    pub domainname: ::prost::alloc::vec::Vec<Node>,
3709    #[prost(message, optional, tag = "2")]
3710    pub type_name: ::core::option::Option<TypeName>,
3711    #[prost(message, optional, boxed, tag = "3")]
3712    pub coll_clause: ::core::option::Option<::prost::alloc::boxed::Box<CollateClause>>,
3713    #[prost(message, repeated, tag = "4")]
3714    pub constraints: ::prost::alloc::vec::Vec<Node>,
3715}
3716#[derive(serde::Serialize)]
3717#[derive(Clone, PartialEq, ::prost::Message)]
3718pub struct CreateOpClassStmt {
3719    #[prost(message, repeated, tag = "1")]
3720    pub opclassname: ::prost::alloc::vec::Vec<Node>,
3721    #[prost(message, repeated, tag = "2")]
3722    pub opfamilyname: ::prost::alloc::vec::Vec<Node>,
3723    #[prost(string, tag = "3")]
3724    pub amname: ::prost::alloc::string::String,
3725    #[prost(message, optional, tag = "4")]
3726    pub datatype: ::core::option::Option<TypeName>,
3727    #[prost(message, repeated, tag = "5")]
3728    pub items: ::prost::alloc::vec::Vec<Node>,
3729    #[prost(bool, tag = "6")]
3730    pub is_default: bool,
3731}
3732#[derive(serde::Serialize)]
3733#[derive(Clone, PartialEq, ::prost::Message)]
3734pub struct CreateOpClassItem {
3735    #[prost(int32, tag = "1")]
3736    pub itemtype: i32,
3737    #[prost(message, optional, tag = "2")]
3738    pub name: ::core::option::Option<ObjectWithArgs>,
3739    #[prost(int32, tag = "3")]
3740    pub number: i32,
3741    #[prost(message, repeated, tag = "4")]
3742    pub order_family: ::prost::alloc::vec::Vec<Node>,
3743    #[prost(message, repeated, tag = "5")]
3744    pub class_args: ::prost::alloc::vec::Vec<Node>,
3745    #[prost(message, optional, tag = "6")]
3746    pub storedtype: ::core::option::Option<TypeName>,
3747}
3748#[derive(serde::Serialize)]
3749#[derive(Clone, PartialEq, ::prost::Message)]
3750pub struct CreateOpFamilyStmt {
3751    #[prost(message, repeated, tag = "1")]
3752    pub opfamilyname: ::prost::alloc::vec::Vec<Node>,
3753    #[prost(string, tag = "2")]
3754    pub amname: ::prost::alloc::string::String,
3755}
3756#[derive(serde::Serialize)]
3757#[derive(Clone, PartialEq, ::prost::Message)]
3758pub struct AlterOpFamilyStmt {
3759    #[prost(message, repeated, tag = "1")]
3760    pub opfamilyname: ::prost::alloc::vec::Vec<Node>,
3761    #[prost(string, tag = "2")]
3762    pub amname: ::prost::alloc::string::String,
3763    #[prost(bool, tag = "3")]
3764    pub is_drop: bool,
3765    #[prost(message, repeated, tag = "4")]
3766    pub items: ::prost::alloc::vec::Vec<Node>,
3767}
3768#[derive(serde::Serialize)]
3769#[derive(Clone, PartialEq, ::prost::Message)]
3770pub struct DropStmt {
3771    #[prost(message, repeated, tag = "1")]
3772    pub objects: ::prost::alloc::vec::Vec<Node>,
3773    #[prost(enumeration = "ObjectType", tag = "2")]
3774    pub remove_type: i32,
3775    #[prost(enumeration = "DropBehavior", tag = "3")]
3776    pub behavior: i32,
3777    #[prost(bool, tag = "4")]
3778    pub missing_ok: bool,
3779    #[prost(bool, tag = "5")]
3780    pub concurrent: bool,
3781}
3782#[derive(serde::Serialize)]
3783#[derive(Clone, PartialEq, ::prost::Message)]
3784pub struct TruncateStmt {
3785    #[prost(message, repeated, tag = "1")]
3786    pub relations: ::prost::alloc::vec::Vec<Node>,
3787    #[prost(bool, tag = "2")]
3788    pub restart_seqs: bool,
3789    #[prost(enumeration = "DropBehavior", tag = "3")]
3790    pub behavior: i32,
3791}
3792#[derive(serde::Serialize)]
3793#[derive(Clone, PartialEq, ::prost::Message)]
3794pub struct CommentStmt {
3795    #[prost(enumeration = "ObjectType", tag = "1")]
3796    pub objtype: i32,
3797    #[prost(message, optional, boxed, tag = "2")]
3798    pub object: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3799    #[prost(string, tag = "3")]
3800    pub comment: ::prost::alloc::string::String,
3801}
3802#[derive(serde::Serialize)]
3803#[derive(Clone, PartialEq, ::prost::Message)]
3804pub struct SecLabelStmt {
3805    #[prost(enumeration = "ObjectType", tag = "1")]
3806    pub objtype: i32,
3807    #[prost(message, optional, boxed, tag = "2")]
3808    pub object: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3809    #[prost(string, tag = "3")]
3810    pub provider: ::prost::alloc::string::String,
3811    #[prost(string, tag = "4")]
3812    pub label: ::prost::alloc::string::String,
3813}
3814#[derive(serde::Serialize)]
3815#[derive(Clone, PartialEq, ::prost::Message)]
3816pub struct DeclareCursorStmt {
3817    #[prost(string, tag = "1")]
3818    pub portalname: ::prost::alloc::string::String,
3819    #[prost(int32, tag = "2")]
3820    pub options: i32,
3821    #[prost(message, optional, boxed, tag = "3")]
3822    pub query: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3823}
3824#[derive(serde::Serialize)]
3825#[derive(Clone, PartialEq, ::prost::Message)]
3826pub struct ClosePortalStmt {
3827    #[prost(string, tag = "1")]
3828    pub portalname: ::prost::alloc::string::String,
3829}
3830#[derive(serde::Serialize)]
3831#[derive(Clone, PartialEq, ::prost::Message)]
3832pub struct FetchStmt {
3833    #[prost(enumeration = "FetchDirection", tag = "1")]
3834    pub direction: i32,
3835    #[prost(int64, tag = "2")]
3836    pub how_many: i64,
3837    #[prost(string, tag = "3")]
3838    pub portalname: ::prost::alloc::string::String,
3839    #[prost(bool, tag = "4")]
3840    pub ismove: bool,
3841}
3842#[derive(serde::Serialize)]
3843#[derive(Clone, PartialEq, ::prost::Message)]
3844pub struct IndexStmt {
3845    #[prost(string, tag = "1")]
3846    pub idxname: ::prost::alloc::string::String,
3847    #[prost(message, optional, tag = "2")]
3848    pub relation: ::core::option::Option<RangeVar>,
3849    #[prost(string, tag = "3")]
3850    pub access_method: ::prost::alloc::string::String,
3851    #[prost(string, tag = "4")]
3852    pub table_space: ::prost::alloc::string::String,
3853    #[prost(message, repeated, tag = "5")]
3854    pub index_params: ::prost::alloc::vec::Vec<Node>,
3855    #[prost(message, repeated, tag = "6")]
3856    pub index_including_params: ::prost::alloc::vec::Vec<Node>,
3857    #[prost(message, repeated, tag = "7")]
3858    pub options: ::prost::alloc::vec::Vec<Node>,
3859    #[prost(message, optional, boxed, tag = "8")]
3860    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3861    #[prost(message, repeated, tag = "9")]
3862    pub exclude_op_names: ::prost::alloc::vec::Vec<Node>,
3863    #[prost(string, tag = "10")]
3864    pub idxcomment: ::prost::alloc::string::String,
3865    #[prost(uint32, tag = "11")]
3866    pub index_oid: u32,
3867    #[prost(uint32, tag = "12")]
3868    pub old_number: u32,
3869    #[prost(uint32, tag = "13")]
3870    pub old_create_subid: u32,
3871    #[prost(uint32, tag = "14")]
3872    pub old_first_relfilelocator_subid: u32,
3873    #[prost(bool, tag = "15")]
3874    pub unique: bool,
3875    #[prost(bool, tag = "16")]
3876    pub nulls_not_distinct: bool,
3877    #[prost(bool, tag = "17")]
3878    pub primary: bool,
3879    #[prost(bool, tag = "18")]
3880    pub isconstraint: bool,
3881    #[prost(bool, tag = "19")]
3882    pub iswithoutoverlaps: bool,
3883    #[prost(bool, tag = "20")]
3884    pub deferrable: bool,
3885    #[prost(bool, tag = "21")]
3886    pub initdeferred: bool,
3887    #[prost(bool, tag = "22")]
3888    pub transformed: bool,
3889    #[prost(bool, tag = "23")]
3890    pub concurrent: bool,
3891    #[prost(bool, tag = "24")]
3892    pub if_not_exists: bool,
3893    #[prost(bool, tag = "25")]
3894    pub reset_default_tblspc: bool,
3895}
3896#[derive(serde::Serialize)]
3897#[derive(Clone, PartialEq, ::prost::Message)]
3898pub struct CreateStatsStmt {
3899    #[prost(message, repeated, tag = "1")]
3900    pub defnames: ::prost::alloc::vec::Vec<Node>,
3901    #[prost(message, repeated, tag = "2")]
3902    pub stat_types: ::prost::alloc::vec::Vec<Node>,
3903    #[prost(message, repeated, tag = "3")]
3904    pub exprs: ::prost::alloc::vec::Vec<Node>,
3905    #[prost(message, repeated, tag = "4")]
3906    pub relations: ::prost::alloc::vec::Vec<Node>,
3907    #[prost(string, tag = "5")]
3908    pub stxcomment: ::prost::alloc::string::String,
3909    #[prost(bool, tag = "6")]
3910    pub transformed: bool,
3911    #[prost(bool, tag = "7")]
3912    pub if_not_exists: bool,
3913}
3914#[derive(serde::Serialize)]
3915#[derive(Clone, PartialEq, ::prost::Message)]
3916pub struct StatsElem {
3917    #[prost(string, tag = "1")]
3918    pub name: ::prost::alloc::string::String,
3919    #[prost(message, optional, boxed, tag = "2")]
3920    pub expr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3921}
3922#[derive(serde::Serialize)]
3923#[derive(Clone, PartialEq, ::prost::Message)]
3924pub struct AlterStatsStmt {
3925    #[prost(message, repeated, tag = "1")]
3926    pub defnames: ::prost::alloc::vec::Vec<Node>,
3927    #[prost(message, optional, boxed, tag = "2")]
3928    pub stxstattarget: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3929    #[prost(bool, tag = "3")]
3930    pub missing_ok: bool,
3931}
3932#[derive(serde::Serialize)]
3933#[derive(Clone, PartialEq, ::prost::Message)]
3934pub struct CreateFunctionStmt {
3935    #[prost(bool, tag = "1")]
3936    pub is_procedure: bool,
3937    #[prost(bool, tag = "2")]
3938    pub replace: bool,
3939    #[prost(message, repeated, tag = "3")]
3940    pub funcname: ::prost::alloc::vec::Vec<Node>,
3941    #[prost(message, repeated, tag = "4")]
3942    pub parameters: ::prost::alloc::vec::Vec<Node>,
3943    #[prost(message, optional, tag = "5")]
3944    pub return_type: ::core::option::Option<TypeName>,
3945    #[prost(message, repeated, tag = "6")]
3946    pub options: ::prost::alloc::vec::Vec<Node>,
3947    #[prost(message, optional, boxed, tag = "7")]
3948    pub sql_body: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3949}
3950#[derive(serde::Serialize)]
3951#[derive(Clone, PartialEq, ::prost::Message)]
3952pub struct FunctionParameter {
3953    #[prost(string, tag = "1")]
3954    pub name: ::prost::alloc::string::String,
3955    #[prost(message, optional, tag = "2")]
3956    pub arg_type: ::core::option::Option<TypeName>,
3957    #[prost(enumeration = "FunctionParameterMode", tag = "3")]
3958    pub mode: i32,
3959    #[prost(message, optional, boxed, tag = "4")]
3960    pub defexpr: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
3961    #[prost(int32, tag = "5")]
3962    pub location: i32,
3963}
3964#[derive(serde::Serialize)]
3965#[derive(Clone, PartialEq, ::prost::Message)]
3966pub struct AlterFunctionStmt {
3967    #[prost(enumeration = "ObjectType", tag = "1")]
3968    pub objtype: i32,
3969    #[prost(message, optional, tag = "2")]
3970    pub func: ::core::option::Option<ObjectWithArgs>,
3971    #[prost(message, repeated, tag = "3")]
3972    pub actions: ::prost::alloc::vec::Vec<Node>,
3973}
3974#[derive(serde::Serialize)]
3975#[derive(Clone, PartialEq, ::prost::Message)]
3976pub struct DoStmt {
3977    #[prost(message, repeated, tag = "1")]
3978    pub args: ::prost::alloc::vec::Vec<Node>,
3979}
3980#[derive(serde::Serialize)]
3981#[derive(Clone, PartialEq, ::prost::Message)]
3982pub struct InlineCodeBlock {
3983    #[prost(string, tag = "1")]
3984    pub source_text: ::prost::alloc::string::String,
3985    #[prost(uint32, tag = "2")]
3986    pub lang_oid: u32,
3987    #[prost(bool, tag = "3")]
3988    pub lang_is_trusted: bool,
3989    #[prost(bool, tag = "4")]
3990    pub atomic: bool,
3991}
3992#[derive(serde::Serialize)]
3993#[derive(Clone, PartialEq, ::prost::Message)]
3994pub struct CallStmt {
3995    #[prost(message, optional, boxed, tag = "1")]
3996    pub funccall: ::core::option::Option<::prost::alloc::boxed::Box<FuncCall>>,
3997    #[prost(message, optional, boxed, tag = "2")]
3998    pub funcexpr: ::core::option::Option<::prost::alloc::boxed::Box<FuncExpr>>,
3999    #[prost(message, repeated, tag = "3")]
4000    pub outargs: ::prost::alloc::vec::Vec<Node>,
4001}
4002#[derive(serde::Serialize)]
4003#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4004pub struct CallContext {
4005    #[prost(bool, tag = "1")]
4006    pub atomic: bool,
4007}
4008#[derive(serde::Serialize)]
4009#[derive(Clone, PartialEq, ::prost::Message)]
4010pub struct RenameStmt {
4011    #[prost(enumeration = "ObjectType", tag = "1")]
4012    pub rename_type: i32,
4013    #[prost(enumeration = "ObjectType", tag = "2")]
4014    pub relation_type: i32,
4015    #[prost(message, optional, tag = "3")]
4016    pub relation: ::core::option::Option<RangeVar>,
4017    #[prost(message, optional, boxed, tag = "4")]
4018    pub object: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4019    #[prost(string, tag = "5")]
4020    pub subname: ::prost::alloc::string::String,
4021    #[prost(string, tag = "6")]
4022    pub newname: ::prost::alloc::string::String,
4023    #[prost(enumeration = "DropBehavior", tag = "7")]
4024    pub behavior: i32,
4025    #[prost(bool, tag = "8")]
4026    pub missing_ok: bool,
4027}
4028#[derive(serde::Serialize)]
4029#[derive(Clone, PartialEq, ::prost::Message)]
4030pub struct AlterObjectDependsStmt {
4031    #[prost(enumeration = "ObjectType", tag = "1")]
4032    pub object_type: i32,
4033    #[prost(message, optional, tag = "2")]
4034    pub relation: ::core::option::Option<RangeVar>,
4035    #[prost(message, optional, boxed, tag = "3")]
4036    pub object: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4037    #[prost(message, optional, tag = "4")]
4038    pub extname: ::core::option::Option<String>,
4039    #[prost(bool, tag = "5")]
4040    pub remove: bool,
4041}
4042#[derive(serde::Serialize)]
4043#[derive(Clone, PartialEq, ::prost::Message)]
4044pub struct AlterObjectSchemaStmt {
4045    #[prost(enumeration = "ObjectType", tag = "1")]
4046    pub object_type: i32,
4047    #[prost(message, optional, tag = "2")]
4048    pub relation: ::core::option::Option<RangeVar>,
4049    #[prost(message, optional, boxed, tag = "3")]
4050    pub object: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4051    #[prost(string, tag = "4")]
4052    pub newschema: ::prost::alloc::string::String,
4053    #[prost(bool, tag = "5")]
4054    pub missing_ok: bool,
4055}
4056#[derive(serde::Serialize)]
4057#[derive(Clone, PartialEq, ::prost::Message)]
4058pub struct AlterOwnerStmt {
4059    #[prost(enumeration = "ObjectType", tag = "1")]
4060    pub object_type: i32,
4061    #[prost(message, optional, tag = "2")]
4062    pub relation: ::core::option::Option<RangeVar>,
4063    #[prost(message, optional, boxed, tag = "3")]
4064    pub object: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4065    #[prost(message, optional, tag = "4")]
4066    pub newowner: ::core::option::Option<RoleSpec>,
4067}
4068#[derive(serde::Serialize)]
4069#[derive(Clone, PartialEq, ::prost::Message)]
4070pub struct AlterOperatorStmt {
4071    #[prost(message, optional, tag = "1")]
4072    pub opername: ::core::option::Option<ObjectWithArgs>,
4073    #[prost(message, repeated, tag = "2")]
4074    pub options: ::prost::alloc::vec::Vec<Node>,
4075}
4076#[derive(serde::Serialize)]
4077#[derive(Clone, PartialEq, ::prost::Message)]
4078pub struct AlterTypeStmt {
4079    #[prost(message, repeated, tag = "1")]
4080    pub type_name: ::prost::alloc::vec::Vec<Node>,
4081    #[prost(message, repeated, tag = "2")]
4082    pub options: ::prost::alloc::vec::Vec<Node>,
4083}
4084#[derive(serde::Serialize)]
4085#[derive(Clone, PartialEq, ::prost::Message)]
4086pub struct RuleStmt {
4087    #[prost(message, optional, tag = "1")]
4088    pub relation: ::core::option::Option<RangeVar>,
4089    #[prost(string, tag = "2")]
4090    pub rulename: ::prost::alloc::string::String,
4091    #[prost(message, optional, boxed, tag = "3")]
4092    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4093    #[prost(enumeration = "CmdType", tag = "4")]
4094    pub event: i32,
4095    #[prost(bool, tag = "5")]
4096    pub instead: bool,
4097    #[prost(message, repeated, tag = "6")]
4098    pub actions: ::prost::alloc::vec::Vec<Node>,
4099    #[prost(bool, tag = "7")]
4100    pub replace: bool,
4101}
4102#[derive(serde::Serialize)]
4103#[derive(Clone, PartialEq, ::prost::Message)]
4104pub struct NotifyStmt {
4105    #[prost(string, tag = "1")]
4106    pub conditionname: ::prost::alloc::string::String,
4107    #[prost(string, tag = "2")]
4108    pub payload: ::prost::alloc::string::String,
4109}
4110#[derive(serde::Serialize)]
4111#[derive(Clone, PartialEq, ::prost::Message)]
4112pub struct ListenStmt {
4113    #[prost(string, tag = "1")]
4114    pub conditionname: ::prost::alloc::string::String,
4115}
4116#[derive(serde::Serialize)]
4117#[derive(Clone, PartialEq, ::prost::Message)]
4118pub struct UnlistenStmt {
4119    #[prost(string, tag = "1")]
4120    pub conditionname: ::prost::alloc::string::String,
4121}
4122#[derive(serde::Serialize)]
4123#[derive(Clone, PartialEq, ::prost::Message)]
4124pub struct TransactionStmt {
4125    #[prost(enumeration = "TransactionStmtKind", tag = "1")]
4126    pub kind: i32,
4127    #[prost(message, repeated, tag = "2")]
4128    pub options: ::prost::alloc::vec::Vec<Node>,
4129    #[prost(string, tag = "3")]
4130    pub savepoint_name: ::prost::alloc::string::String,
4131    #[prost(string, tag = "4")]
4132    pub gid: ::prost::alloc::string::String,
4133    #[prost(bool, tag = "5")]
4134    pub chain: bool,
4135    #[prost(int32, tag = "6")]
4136    pub location: i32,
4137}
4138#[derive(serde::Serialize)]
4139#[derive(Clone, PartialEq, ::prost::Message)]
4140pub struct CompositeTypeStmt {
4141    #[prost(message, optional, tag = "1")]
4142    pub typevar: ::core::option::Option<RangeVar>,
4143    #[prost(message, repeated, tag = "2")]
4144    pub coldeflist: ::prost::alloc::vec::Vec<Node>,
4145}
4146#[derive(serde::Serialize)]
4147#[derive(Clone, PartialEq, ::prost::Message)]
4148pub struct CreateEnumStmt {
4149    #[prost(message, repeated, tag = "1")]
4150    pub type_name: ::prost::alloc::vec::Vec<Node>,
4151    #[prost(message, repeated, tag = "2")]
4152    pub vals: ::prost::alloc::vec::Vec<Node>,
4153}
4154#[derive(serde::Serialize)]
4155#[derive(Clone, PartialEq, ::prost::Message)]
4156pub struct CreateRangeStmt {
4157    #[prost(message, repeated, tag = "1")]
4158    pub type_name: ::prost::alloc::vec::Vec<Node>,
4159    #[prost(message, repeated, tag = "2")]
4160    pub params: ::prost::alloc::vec::Vec<Node>,
4161}
4162#[derive(serde::Serialize)]
4163#[derive(Clone, PartialEq, ::prost::Message)]
4164pub struct AlterEnumStmt {
4165    #[prost(message, repeated, tag = "1")]
4166    pub type_name: ::prost::alloc::vec::Vec<Node>,
4167    #[prost(string, tag = "2")]
4168    pub old_val: ::prost::alloc::string::String,
4169    #[prost(string, tag = "3")]
4170    pub new_val: ::prost::alloc::string::String,
4171    #[prost(string, tag = "4")]
4172    pub new_val_neighbor: ::prost::alloc::string::String,
4173    #[prost(bool, tag = "5")]
4174    pub new_val_is_after: bool,
4175    #[prost(bool, tag = "6")]
4176    pub skip_if_new_val_exists: bool,
4177}
4178#[derive(serde::Serialize)]
4179#[derive(Clone, PartialEq, ::prost::Message)]
4180pub struct ViewStmt {
4181    #[prost(message, optional, tag = "1")]
4182    pub view: ::core::option::Option<RangeVar>,
4183    #[prost(message, repeated, tag = "2")]
4184    pub aliases: ::prost::alloc::vec::Vec<Node>,
4185    #[prost(message, optional, boxed, tag = "3")]
4186    pub query: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4187    #[prost(bool, tag = "4")]
4188    pub replace: bool,
4189    #[prost(message, repeated, tag = "5")]
4190    pub options: ::prost::alloc::vec::Vec<Node>,
4191    #[prost(enumeration = "ViewCheckOption", tag = "6")]
4192    pub with_check_option: i32,
4193}
4194#[derive(serde::Serialize)]
4195#[derive(Clone, PartialEq, ::prost::Message)]
4196pub struct LoadStmt {
4197    #[prost(string, tag = "1")]
4198    pub filename: ::prost::alloc::string::String,
4199}
4200#[derive(serde::Serialize)]
4201#[derive(Clone, PartialEq, ::prost::Message)]
4202pub struct CreatedbStmt {
4203    #[prost(string, tag = "1")]
4204    pub dbname: ::prost::alloc::string::String,
4205    #[prost(message, repeated, tag = "2")]
4206    pub options: ::prost::alloc::vec::Vec<Node>,
4207}
4208#[derive(serde::Serialize)]
4209#[derive(Clone, PartialEq, ::prost::Message)]
4210pub struct AlterDatabaseStmt {
4211    #[prost(string, tag = "1")]
4212    pub dbname: ::prost::alloc::string::String,
4213    #[prost(message, repeated, tag = "2")]
4214    pub options: ::prost::alloc::vec::Vec<Node>,
4215}
4216#[derive(serde::Serialize)]
4217#[derive(Clone, PartialEq, ::prost::Message)]
4218pub struct AlterDatabaseRefreshCollStmt {
4219    #[prost(string, tag = "1")]
4220    pub dbname: ::prost::alloc::string::String,
4221}
4222#[derive(serde::Serialize)]
4223#[derive(Clone, PartialEq, ::prost::Message)]
4224pub struct AlterDatabaseSetStmt {
4225    #[prost(string, tag = "1")]
4226    pub dbname: ::prost::alloc::string::String,
4227    #[prost(message, optional, tag = "2")]
4228    pub setstmt: ::core::option::Option<VariableSetStmt>,
4229}
4230#[derive(serde::Serialize)]
4231#[derive(Clone, PartialEq, ::prost::Message)]
4232pub struct DropdbStmt {
4233    #[prost(string, tag = "1")]
4234    pub dbname: ::prost::alloc::string::String,
4235    #[prost(bool, tag = "2")]
4236    pub missing_ok: bool,
4237    #[prost(message, repeated, tag = "3")]
4238    pub options: ::prost::alloc::vec::Vec<Node>,
4239}
4240#[derive(serde::Serialize)]
4241#[derive(Clone, PartialEq, ::prost::Message)]
4242pub struct AlterSystemStmt {
4243    #[prost(message, optional, tag = "1")]
4244    pub setstmt: ::core::option::Option<VariableSetStmt>,
4245}
4246#[derive(serde::Serialize)]
4247#[derive(Clone, PartialEq, ::prost::Message)]
4248pub struct ClusterStmt {
4249    #[prost(message, optional, tag = "1")]
4250    pub relation: ::core::option::Option<RangeVar>,
4251    #[prost(string, tag = "2")]
4252    pub indexname: ::prost::alloc::string::String,
4253    #[prost(message, repeated, tag = "3")]
4254    pub params: ::prost::alloc::vec::Vec<Node>,
4255}
4256#[derive(serde::Serialize)]
4257#[derive(Clone, PartialEq, ::prost::Message)]
4258pub struct VacuumStmt {
4259    #[prost(message, repeated, tag = "1")]
4260    pub options: ::prost::alloc::vec::Vec<Node>,
4261    #[prost(message, repeated, tag = "2")]
4262    pub rels: ::prost::alloc::vec::Vec<Node>,
4263    #[prost(bool, tag = "3")]
4264    pub is_vacuumcmd: bool,
4265}
4266#[derive(serde::Serialize)]
4267#[derive(Clone, PartialEq, ::prost::Message)]
4268pub struct VacuumRelation {
4269    #[prost(message, optional, tag = "1")]
4270    pub relation: ::core::option::Option<RangeVar>,
4271    #[prost(uint32, tag = "2")]
4272    pub oid: u32,
4273    #[prost(message, repeated, tag = "3")]
4274    pub va_cols: ::prost::alloc::vec::Vec<Node>,
4275}
4276#[derive(serde::Serialize)]
4277#[derive(Clone, PartialEq, ::prost::Message)]
4278pub struct ExplainStmt {
4279    #[prost(message, optional, boxed, tag = "1")]
4280    pub query: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4281    #[prost(message, repeated, tag = "2")]
4282    pub options: ::prost::alloc::vec::Vec<Node>,
4283}
4284#[derive(serde::Serialize)]
4285#[derive(Clone, PartialEq, ::prost::Message)]
4286pub struct CreateTableAsStmt {
4287    #[prost(message, optional, boxed, tag = "1")]
4288    pub query: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4289    #[prost(message, optional, boxed, tag = "2")]
4290    pub into: ::core::option::Option<::prost::alloc::boxed::Box<IntoClause>>,
4291    #[prost(enumeration = "ObjectType", tag = "3")]
4292    pub objtype: i32,
4293    #[prost(bool, tag = "4")]
4294    pub is_select_into: bool,
4295    #[prost(bool, tag = "5")]
4296    pub if_not_exists: bool,
4297}
4298#[derive(serde::Serialize)]
4299#[derive(Clone, PartialEq, ::prost::Message)]
4300pub struct RefreshMatViewStmt {
4301    #[prost(bool, tag = "1")]
4302    pub concurrent: bool,
4303    #[prost(bool, tag = "2")]
4304    pub skip_data: bool,
4305    #[prost(message, optional, tag = "3")]
4306    pub relation: ::core::option::Option<RangeVar>,
4307}
4308#[derive(serde::Serialize)]
4309#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4310pub struct CheckPointStmt {}
4311#[derive(serde::Serialize)]
4312#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4313pub struct DiscardStmt {
4314    #[prost(enumeration = "DiscardMode", tag = "1")]
4315    pub target: i32,
4316}
4317#[derive(serde::Serialize)]
4318#[derive(Clone, PartialEq, ::prost::Message)]
4319pub struct LockStmt {
4320    #[prost(message, repeated, tag = "1")]
4321    pub relations: ::prost::alloc::vec::Vec<Node>,
4322    #[prost(int32, tag = "2")]
4323    pub mode: i32,
4324    #[prost(bool, tag = "3")]
4325    pub nowait: bool,
4326}
4327#[derive(serde::Serialize)]
4328#[derive(Clone, PartialEq, ::prost::Message)]
4329pub struct ConstraintsSetStmt {
4330    #[prost(message, repeated, tag = "1")]
4331    pub constraints: ::prost::alloc::vec::Vec<Node>,
4332    #[prost(bool, tag = "2")]
4333    pub deferred: bool,
4334}
4335#[derive(serde::Serialize)]
4336#[derive(Clone, PartialEq, ::prost::Message)]
4337pub struct ReindexStmt {
4338    #[prost(enumeration = "ReindexObjectType", tag = "1")]
4339    pub kind: i32,
4340    #[prost(message, optional, tag = "2")]
4341    pub relation: ::core::option::Option<RangeVar>,
4342    #[prost(string, tag = "3")]
4343    pub name: ::prost::alloc::string::String,
4344    #[prost(message, repeated, tag = "4")]
4345    pub params: ::prost::alloc::vec::Vec<Node>,
4346}
4347#[derive(serde::Serialize)]
4348#[derive(Clone, PartialEq, ::prost::Message)]
4349pub struct CreateConversionStmt {
4350    #[prost(message, repeated, tag = "1")]
4351    pub conversion_name: ::prost::alloc::vec::Vec<Node>,
4352    #[prost(string, tag = "2")]
4353    pub for_encoding_name: ::prost::alloc::string::String,
4354    #[prost(string, tag = "3")]
4355    pub to_encoding_name: ::prost::alloc::string::String,
4356    #[prost(message, repeated, tag = "4")]
4357    pub func_name: ::prost::alloc::vec::Vec<Node>,
4358    #[prost(bool, tag = "5")]
4359    pub def: bool,
4360}
4361#[derive(serde::Serialize)]
4362#[derive(Clone, PartialEq, ::prost::Message)]
4363pub struct CreateCastStmt {
4364    #[prost(message, optional, tag = "1")]
4365    pub sourcetype: ::core::option::Option<TypeName>,
4366    #[prost(message, optional, tag = "2")]
4367    pub targettype: ::core::option::Option<TypeName>,
4368    #[prost(message, optional, tag = "3")]
4369    pub func: ::core::option::Option<ObjectWithArgs>,
4370    #[prost(enumeration = "CoercionContext", tag = "4")]
4371    pub context: i32,
4372    #[prost(bool, tag = "5")]
4373    pub inout: bool,
4374}
4375#[derive(serde::Serialize)]
4376#[derive(Clone, PartialEq, ::prost::Message)]
4377pub struct CreateTransformStmt {
4378    #[prost(bool, tag = "1")]
4379    pub replace: bool,
4380    #[prost(message, optional, tag = "2")]
4381    pub type_name: ::core::option::Option<TypeName>,
4382    #[prost(string, tag = "3")]
4383    pub lang: ::prost::alloc::string::String,
4384    #[prost(message, optional, tag = "4")]
4385    pub fromsql: ::core::option::Option<ObjectWithArgs>,
4386    #[prost(message, optional, tag = "5")]
4387    pub tosql: ::core::option::Option<ObjectWithArgs>,
4388}
4389#[derive(serde::Serialize)]
4390#[derive(Clone, PartialEq, ::prost::Message)]
4391pub struct PrepareStmt {
4392    #[prost(string, tag = "1")]
4393    pub name: ::prost::alloc::string::String,
4394    #[prost(message, repeated, tag = "2")]
4395    pub argtypes: ::prost::alloc::vec::Vec<Node>,
4396    #[prost(message, optional, boxed, tag = "3")]
4397    pub query: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4398}
4399#[derive(serde::Serialize)]
4400#[derive(Clone, PartialEq, ::prost::Message)]
4401pub struct ExecuteStmt {
4402    #[prost(string, tag = "1")]
4403    pub name: ::prost::alloc::string::String,
4404    #[prost(message, repeated, tag = "2")]
4405    pub params: ::prost::alloc::vec::Vec<Node>,
4406}
4407#[derive(serde::Serialize)]
4408#[derive(Clone, PartialEq, ::prost::Message)]
4409pub struct DeallocateStmt {
4410    #[prost(string, tag = "1")]
4411    pub name: ::prost::alloc::string::String,
4412    #[prost(bool, tag = "2")]
4413    pub isall: bool,
4414    #[prost(int32, tag = "3")]
4415    pub location: i32,
4416}
4417#[derive(serde::Serialize)]
4418#[derive(Clone, PartialEq, ::prost::Message)]
4419pub struct DropOwnedStmt {
4420    #[prost(message, repeated, tag = "1")]
4421    pub roles: ::prost::alloc::vec::Vec<Node>,
4422    #[prost(enumeration = "DropBehavior", tag = "2")]
4423    pub behavior: i32,
4424}
4425#[derive(serde::Serialize)]
4426#[derive(Clone, PartialEq, ::prost::Message)]
4427pub struct ReassignOwnedStmt {
4428    #[prost(message, repeated, tag = "1")]
4429    pub roles: ::prost::alloc::vec::Vec<Node>,
4430    #[prost(message, optional, tag = "2")]
4431    pub newrole: ::core::option::Option<RoleSpec>,
4432}
4433#[derive(serde::Serialize)]
4434#[derive(Clone, PartialEq, ::prost::Message)]
4435pub struct AlterTsDictionaryStmt {
4436    #[prost(message, repeated, tag = "1")]
4437    pub dictname: ::prost::alloc::vec::Vec<Node>,
4438    #[prost(message, repeated, tag = "2")]
4439    pub options: ::prost::alloc::vec::Vec<Node>,
4440}
4441#[derive(serde::Serialize)]
4442#[derive(Clone, PartialEq, ::prost::Message)]
4443pub struct AlterTsConfigurationStmt {
4444    #[prost(enumeration = "AlterTsConfigType", tag = "1")]
4445    pub kind: i32,
4446    #[prost(message, repeated, tag = "2")]
4447    pub cfgname: ::prost::alloc::vec::Vec<Node>,
4448    #[prost(message, repeated, tag = "3")]
4449    pub tokentype: ::prost::alloc::vec::Vec<Node>,
4450    #[prost(message, repeated, tag = "4")]
4451    pub dicts: ::prost::alloc::vec::Vec<Node>,
4452    #[prost(bool, tag = "5")]
4453    pub r#override: bool,
4454    #[prost(bool, tag = "6")]
4455    pub replace: bool,
4456    #[prost(bool, tag = "7")]
4457    pub missing_ok: bool,
4458}
4459#[derive(serde::Serialize)]
4460#[derive(Clone, PartialEq, ::prost::Message)]
4461pub struct PublicationTable {
4462    #[prost(message, optional, tag = "1")]
4463    pub relation: ::core::option::Option<RangeVar>,
4464    #[prost(message, optional, boxed, tag = "2")]
4465    pub where_clause: ::core::option::Option<::prost::alloc::boxed::Box<Node>>,
4466    #[prost(message, repeated, tag = "3")]
4467    pub columns: ::prost::alloc::vec::Vec<Node>,
4468}
4469#[derive(serde::Serialize)]
4470#[derive(Clone, PartialEq, ::prost::Message)]
4471pub struct PublicationObjSpec {
4472    #[prost(enumeration = "PublicationObjSpecType", tag = "1")]
4473    pub pubobjtype: i32,
4474    #[prost(string, tag = "2")]
4475    pub name: ::prost::alloc::string::String,
4476    #[prost(message, optional, boxed, tag = "3")]
4477    pub pubtable: ::core::option::Option<::prost::alloc::boxed::Box<PublicationTable>>,
4478    #[prost(int32, tag = "4")]
4479    pub location: i32,
4480}
4481#[derive(serde::Serialize)]
4482#[derive(Clone, PartialEq, ::prost::Message)]
4483pub struct CreatePublicationStmt {
4484    #[prost(string, tag = "1")]
4485    pub pubname: ::prost::alloc::string::String,
4486    #[prost(message, repeated, tag = "2")]
4487    pub options: ::prost::alloc::vec::Vec<Node>,
4488    #[prost(message, repeated, tag = "3")]
4489    pub pubobjects: ::prost::alloc::vec::Vec<Node>,
4490    #[prost(bool, tag = "4")]
4491    pub for_all_tables: bool,
4492}
4493#[derive(serde::Serialize)]
4494#[derive(Clone, PartialEq, ::prost::Message)]
4495pub struct AlterPublicationStmt {
4496    #[prost(string, tag = "1")]
4497    pub pubname: ::prost::alloc::string::String,
4498    #[prost(message, repeated, tag = "2")]
4499    pub options: ::prost::alloc::vec::Vec<Node>,
4500    #[prost(message, repeated, tag = "3")]
4501    pub pubobjects: ::prost::alloc::vec::Vec<Node>,
4502    #[prost(bool, tag = "4")]
4503    pub for_all_tables: bool,
4504    #[prost(enumeration = "AlterPublicationAction", tag = "5")]
4505    pub action: i32,
4506}
4507#[derive(serde::Serialize)]
4508#[derive(Clone, PartialEq, ::prost::Message)]
4509pub struct CreateSubscriptionStmt {
4510    #[prost(string, tag = "1")]
4511    pub subname: ::prost::alloc::string::String,
4512    #[prost(string, tag = "2")]
4513    pub conninfo: ::prost::alloc::string::String,
4514    #[prost(message, repeated, tag = "3")]
4515    pub publication: ::prost::alloc::vec::Vec<Node>,
4516    #[prost(message, repeated, tag = "4")]
4517    pub options: ::prost::alloc::vec::Vec<Node>,
4518}
4519#[derive(serde::Serialize)]
4520#[derive(Clone, PartialEq, ::prost::Message)]
4521pub struct AlterSubscriptionStmt {
4522    #[prost(enumeration = "AlterSubscriptionType", tag = "1")]
4523    pub kind: i32,
4524    #[prost(string, tag = "2")]
4525    pub subname: ::prost::alloc::string::String,
4526    #[prost(string, tag = "3")]
4527    pub conninfo: ::prost::alloc::string::String,
4528    #[prost(message, repeated, tag = "4")]
4529    pub publication: ::prost::alloc::vec::Vec<Node>,
4530    #[prost(message, repeated, tag = "5")]
4531    pub options: ::prost::alloc::vec::Vec<Node>,
4532}
4533#[derive(serde::Serialize)]
4534#[derive(Clone, PartialEq, ::prost::Message)]
4535pub struct DropSubscriptionStmt {
4536    #[prost(string, tag = "1")]
4537    pub subname: ::prost::alloc::string::String,
4538    #[prost(bool, tag = "2")]
4539    pub missing_ok: bool,
4540    #[prost(enumeration = "DropBehavior", tag = "3")]
4541    pub behavior: i32,
4542}
4543#[derive(serde::Serialize)]
4544#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4545pub struct ScanToken {
4546    #[prost(int32, tag = "1")]
4547    pub start: i32,
4548    #[prost(int32, tag = "2")]
4549    pub end: i32,
4550    #[prost(enumeration = "Token", tag = "4")]
4551    pub token: i32,
4552    #[prost(enumeration = "KeywordKind", tag = "5")]
4553    pub keyword_kind: i32,
4554}
4555/// protobuf-c doesn't support optional fields, so any optional strings
4556/// are just an empty string if it should be the equivalent of None/nil.
4557///
4558/// These fields have `// optional` at the end of the line.
4559///
4560/// Upstream issue: <https://github.com/protobuf-c/protobuf-c/issues/476>
4561#[derive(serde::Serialize)]
4562#[derive(Clone, PartialEq, ::prost::Message)]
4563pub struct SummaryResult {
4564    #[prost(message, repeated, tag = "1")]
4565    pub tables: ::prost::alloc::vec::Vec<summary_result::Table>,
4566    /// The value here is the table name (i.e. schema.table or just table).
4567    #[prost(map = "string, string", tag = "2")]
4568    pub aliases: ::std::collections::HashMap<
4569        ::prost::alloc::string::String,
4570        ::prost::alloc::string::String,
4571    >,
4572    #[prost(string, repeated, tag = "3")]
4573    pub cte_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4574    #[prost(message, repeated, tag = "4")]
4575    pub functions: ::prost::alloc::vec::Vec<summary_result::Function>,
4576    #[prost(message, repeated, tag = "5")]
4577    pub filter_columns: ::prost::alloc::vec::Vec<summary_result::FilterColumn>,
4578    #[prost(string, repeated, tag = "6")]
4579    pub statement_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4580    /// optional, empty if truncation limit is -1
4581    #[prost(string, tag = "7")]
4582    pub truncated_query: ::prost::alloc::string::String,
4583}
4584/// Nested message and enum types in `SummaryResult`.
4585pub mod summary_result {
4586    #[derive(serde::Serialize)]
4587    #[derive(Clone, PartialEq, ::prost::Message)]
4588    pub struct Table {
4589        #[prost(string, tag = "1")]
4590        pub name: ::prost::alloc::string::String,
4591        #[prost(string, tag = "2")]
4592        pub schema_name: ::prost::alloc::string::String,
4593        #[prost(string, tag = "3")]
4594        pub table_name: ::prost::alloc::string::String,
4595        #[prost(enumeration = "Context", tag = "4")]
4596        pub context: i32,
4597    }
4598    #[derive(serde::Serialize)]
4599    #[derive(Clone, PartialEq, ::prost::Message)]
4600    pub struct Function {
4601        #[prost(string, tag = "1")]
4602        pub name: ::prost::alloc::string::String,
4603        #[prost(string, tag = "2")]
4604        pub function_name: ::prost::alloc::string::String,
4605        /// optional
4606        #[prost(string, tag = "3")]
4607        pub schema_name: ::prost::alloc::string::String,
4608        #[prost(enumeration = "Context", tag = "4")]
4609        pub context: i32,
4610    }
4611    #[derive(serde::Serialize)]
4612    #[derive(Clone, PartialEq, ::prost::Message)]
4613    pub struct FilterColumn {
4614        /// optional
4615        #[prost(string, tag = "1")]
4616        pub schema_name: ::prost::alloc::string::String,
4617        /// optional
4618        #[prost(string, tag = "2")]
4619        pub table_name: ::prost::alloc::string::String,
4620        #[prost(string, tag = "3")]
4621        pub column: ::prost::alloc::string::String,
4622    }
4623    #[derive(serde::Serialize)]
4624    #[derive(
4625        Clone,
4626        Copy,
4627        Debug,
4628        PartialEq,
4629        Eq,
4630        Hash,
4631        PartialOrd,
4632        Ord,
4633        ::prost::Enumeration
4634    )]
4635    #[repr(i32)]
4636    pub enum Context {
4637        None = 0,
4638        Select = 1,
4639        Dml = 2,
4640        Ddl = 3,
4641        Call = 4,
4642    }
4643    impl Context {
4644        /// String value of the enum field names used in the ProtoBuf definition.
4645        ///
4646        /// The values are not transformed in any way and thus are considered stable
4647        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4648        pub fn as_str_name(&self) -> &'static str {
4649            match self {
4650                Self::None => "None",
4651                Self::Select => "Select",
4652                Self::Dml => "DML",
4653                Self::Ddl => "DDL",
4654                Self::Call => "Call",
4655            }
4656        }
4657        /// Creates an enum from field names used in the ProtoBuf definition.
4658        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4659            match value {
4660                "None" => Some(Self::None),
4661                "Select" => Some(Self::Select),
4662                "DML" => Some(Self::Dml),
4663                "DDL" => Some(Self::Ddl),
4664                "Call" => Some(Self::Call),
4665                _ => None,
4666            }
4667        }
4668    }
4669}
4670#[derive(serde::Serialize)]
4671#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4672#[repr(i32)]
4673pub enum QuerySource {
4674    Undefined = 0,
4675    QsrcOriginal = 1,
4676    QsrcParser = 2,
4677    QsrcInsteadRule = 3,
4678    QsrcQualInsteadRule = 4,
4679    QsrcNonInsteadRule = 5,
4680}
4681impl QuerySource {
4682    /// String value of the enum field names used in the ProtoBuf definition.
4683    ///
4684    /// The values are not transformed in any way and thus are considered stable
4685    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4686    pub fn as_str_name(&self) -> &'static str {
4687        match self {
4688            Self::Undefined => "QUERY_SOURCE_UNDEFINED",
4689            Self::QsrcOriginal => "QSRC_ORIGINAL",
4690            Self::QsrcParser => "QSRC_PARSER",
4691            Self::QsrcInsteadRule => "QSRC_INSTEAD_RULE",
4692            Self::QsrcQualInsteadRule => "QSRC_QUAL_INSTEAD_RULE",
4693            Self::QsrcNonInsteadRule => "QSRC_NON_INSTEAD_RULE",
4694        }
4695    }
4696    /// Creates an enum from field names used in the ProtoBuf definition.
4697    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4698        match value {
4699            "QUERY_SOURCE_UNDEFINED" => Some(Self::Undefined),
4700            "QSRC_ORIGINAL" => Some(Self::QsrcOriginal),
4701            "QSRC_PARSER" => Some(Self::QsrcParser),
4702            "QSRC_INSTEAD_RULE" => Some(Self::QsrcInsteadRule),
4703            "QSRC_QUAL_INSTEAD_RULE" => Some(Self::QsrcQualInsteadRule),
4704            "QSRC_NON_INSTEAD_RULE" => Some(Self::QsrcNonInsteadRule),
4705            _ => None,
4706        }
4707    }
4708}
4709#[derive(serde::Serialize)]
4710#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4711#[repr(i32)]
4712pub enum SortByDir {
4713    Undefined = 0,
4714    SortbyDefault = 1,
4715    SortbyAsc = 2,
4716    SortbyDesc = 3,
4717    SortbyUsing = 4,
4718}
4719impl SortByDir {
4720    /// String value of the enum field names used in the ProtoBuf definition.
4721    ///
4722    /// The values are not transformed in any way and thus are considered stable
4723    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4724    pub fn as_str_name(&self) -> &'static str {
4725        match self {
4726            Self::Undefined => "SORT_BY_DIR_UNDEFINED",
4727            Self::SortbyDefault => "SORTBY_DEFAULT",
4728            Self::SortbyAsc => "SORTBY_ASC",
4729            Self::SortbyDesc => "SORTBY_DESC",
4730            Self::SortbyUsing => "SORTBY_USING",
4731        }
4732    }
4733    /// Creates an enum from field names used in the ProtoBuf definition.
4734    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4735        match value {
4736            "SORT_BY_DIR_UNDEFINED" => Some(Self::Undefined),
4737            "SORTBY_DEFAULT" => Some(Self::SortbyDefault),
4738            "SORTBY_ASC" => Some(Self::SortbyAsc),
4739            "SORTBY_DESC" => Some(Self::SortbyDesc),
4740            "SORTBY_USING" => Some(Self::SortbyUsing),
4741            _ => None,
4742        }
4743    }
4744}
4745#[derive(serde::Serialize)]
4746#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4747#[repr(i32)]
4748pub enum SortByNulls {
4749    Undefined = 0,
4750    SortbyNullsDefault = 1,
4751    SortbyNullsFirst = 2,
4752    SortbyNullsLast = 3,
4753}
4754impl SortByNulls {
4755    /// String value of the enum field names used in the ProtoBuf definition.
4756    ///
4757    /// The values are not transformed in any way and thus are considered stable
4758    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4759    pub fn as_str_name(&self) -> &'static str {
4760        match self {
4761            Self::Undefined => "SORT_BY_NULLS_UNDEFINED",
4762            Self::SortbyNullsDefault => "SORTBY_NULLS_DEFAULT",
4763            Self::SortbyNullsFirst => "SORTBY_NULLS_FIRST",
4764            Self::SortbyNullsLast => "SORTBY_NULLS_LAST",
4765        }
4766    }
4767    /// Creates an enum from field names used in the ProtoBuf definition.
4768    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4769        match value {
4770            "SORT_BY_NULLS_UNDEFINED" => Some(Self::Undefined),
4771            "SORTBY_NULLS_DEFAULT" => Some(Self::SortbyNullsDefault),
4772            "SORTBY_NULLS_FIRST" => Some(Self::SortbyNullsFirst),
4773            "SORTBY_NULLS_LAST" => Some(Self::SortbyNullsLast),
4774            _ => None,
4775        }
4776    }
4777}
4778#[derive(serde::Serialize)]
4779#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4780#[repr(i32)]
4781pub enum SetQuantifier {
4782    Undefined = 0,
4783    Default = 1,
4784    All = 2,
4785    Distinct = 3,
4786}
4787impl SetQuantifier {
4788    /// String value of the enum field names used in the ProtoBuf definition.
4789    ///
4790    /// The values are not transformed in any way and thus are considered stable
4791    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4792    pub fn as_str_name(&self) -> &'static str {
4793        match self {
4794            Self::Undefined => "SET_QUANTIFIER_UNDEFINED",
4795            Self::Default => "SET_QUANTIFIER_DEFAULT",
4796            Self::All => "SET_QUANTIFIER_ALL",
4797            Self::Distinct => "SET_QUANTIFIER_DISTINCT",
4798        }
4799    }
4800    /// Creates an enum from field names used in the ProtoBuf definition.
4801    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4802        match value {
4803            "SET_QUANTIFIER_UNDEFINED" => Some(Self::Undefined),
4804            "SET_QUANTIFIER_DEFAULT" => Some(Self::Default),
4805            "SET_QUANTIFIER_ALL" => Some(Self::All),
4806            "SET_QUANTIFIER_DISTINCT" => Some(Self::Distinct),
4807            _ => None,
4808        }
4809    }
4810}
4811#[derive(serde::Serialize)]
4812#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4813#[repr(i32)]
4814pub enum AExprKind {
4815    Undefined = 0,
4816    AexprOp = 1,
4817    AexprOpAny = 2,
4818    AexprOpAll = 3,
4819    AexprDistinct = 4,
4820    AexprNotDistinct = 5,
4821    AexprNullif = 6,
4822    AexprIn = 7,
4823    AexprLike = 8,
4824    AexprIlike = 9,
4825    AexprSimilar = 10,
4826    AexprBetween = 11,
4827    AexprNotBetween = 12,
4828    AexprBetweenSym = 13,
4829    AexprNotBetweenSym = 14,
4830}
4831impl AExprKind {
4832    /// String value of the enum field names used in the ProtoBuf definition.
4833    ///
4834    /// The values are not transformed in any way and thus are considered stable
4835    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4836    pub fn as_str_name(&self) -> &'static str {
4837        match self {
4838            Self::Undefined => "A_EXPR_KIND_UNDEFINED",
4839            Self::AexprOp => "AEXPR_OP",
4840            Self::AexprOpAny => "AEXPR_OP_ANY",
4841            Self::AexprOpAll => "AEXPR_OP_ALL",
4842            Self::AexprDistinct => "AEXPR_DISTINCT",
4843            Self::AexprNotDistinct => "AEXPR_NOT_DISTINCT",
4844            Self::AexprNullif => "AEXPR_NULLIF",
4845            Self::AexprIn => "AEXPR_IN",
4846            Self::AexprLike => "AEXPR_LIKE",
4847            Self::AexprIlike => "AEXPR_ILIKE",
4848            Self::AexprSimilar => "AEXPR_SIMILAR",
4849            Self::AexprBetween => "AEXPR_BETWEEN",
4850            Self::AexprNotBetween => "AEXPR_NOT_BETWEEN",
4851            Self::AexprBetweenSym => "AEXPR_BETWEEN_SYM",
4852            Self::AexprNotBetweenSym => "AEXPR_NOT_BETWEEN_SYM",
4853        }
4854    }
4855    /// Creates an enum from field names used in the ProtoBuf definition.
4856    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4857        match value {
4858            "A_EXPR_KIND_UNDEFINED" => Some(Self::Undefined),
4859            "AEXPR_OP" => Some(Self::AexprOp),
4860            "AEXPR_OP_ANY" => Some(Self::AexprOpAny),
4861            "AEXPR_OP_ALL" => Some(Self::AexprOpAll),
4862            "AEXPR_DISTINCT" => Some(Self::AexprDistinct),
4863            "AEXPR_NOT_DISTINCT" => Some(Self::AexprNotDistinct),
4864            "AEXPR_NULLIF" => Some(Self::AexprNullif),
4865            "AEXPR_IN" => Some(Self::AexprIn),
4866            "AEXPR_LIKE" => Some(Self::AexprLike),
4867            "AEXPR_ILIKE" => Some(Self::AexprIlike),
4868            "AEXPR_SIMILAR" => Some(Self::AexprSimilar),
4869            "AEXPR_BETWEEN" => Some(Self::AexprBetween),
4870            "AEXPR_NOT_BETWEEN" => Some(Self::AexprNotBetween),
4871            "AEXPR_BETWEEN_SYM" => Some(Self::AexprBetweenSym),
4872            "AEXPR_NOT_BETWEEN_SYM" => Some(Self::AexprNotBetweenSym),
4873            _ => None,
4874        }
4875    }
4876}
4877#[derive(serde::Serialize)]
4878#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4879#[repr(i32)]
4880pub enum RoleSpecType {
4881    Undefined = 0,
4882    RolespecCstring = 1,
4883    RolespecCurrentRole = 2,
4884    RolespecCurrentUser = 3,
4885    RolespecSessionUser = 4,
4886    RolespecPublic = 5,
4887}
4888impl RoleSpecType {
4889    /// String value of the enum field names used in the ProtoBuf definition.
4890    ///
4891    /// The values are not transformed in any way and thus are considered stable
4892    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4893    pub fn as_str_name(&self) -> &'static str {
4894        match self {
4895            Self::Undefined => "ROLE_SPEC_TYPE_UNDEFINED",
4896            Self::RolespecCstring => "ROLESPEC_CSTRING",
4897            Self::RolespecCurrentRole => "ROLESPEC_CURRENT_ROLE",
4898            Self::RolespecCurrentUser => "ROLESPEC_CURRENT_USER",
4899            Self::RolespecSessionUser => "ROLESPEC_SESSION_USER",
4900            Self::RolespecPublic => "ROLESPEC_PUBLIC",
4901        }
4902    }
4903    /// Creates an enum from field names used in the ProtoBuf definition.
4904    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4905        match value {
4906            "ROLE_SPEC_TYPE_UNDEFINED" => Some(Self::Undefined),
4907            "ROLESPEC_CSTRING" => Some(Self::RolespecCstring),
4908            "ROLESPEC_CURRENT_ROLE" => Some(Self::RolespecCurrentRole),
4909            "ROLESPEC_CURRENT_USER" => Some(Self::RolespecCurrentUser),
4910            "ROLESPEC_SESSION_USER" => Some(Self::RolespecSessionUser),
4911            "ROLESPEC_PUBLIC" => Some(Self::RolespecPublic),
4912            _ => None,
4913        }
4914    }
4915}
4916#[derive(serde::Serialize)]
4917#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4918#[repr(i32)]
4919pub enum TableLikeOption {
4920    Undefined = 0,
4921    CreateTableLikeComments = 1,
4922    CreateTableLikeCompression = 2,
4923    CreateTableLikeConstraints = 3,
4924    CreateTableLikeDefaults = 4,
4925    CreateTableLikeGenerated = 5,
4926    CreateTableLikeIdentity = 6,
4927    CreateTableLikeIndexes = 7,
4928    CreateTableLikeStatistics = 8,
4929    CreateTableLikeStorage = 9,
4930    CreateTableLikeAll = 10,
4931}
4932impl TableLikeOption {
4933    /// String value of the enum field names used in the ProtoBuf definition.
4934    ///
4935    /// The values are not transformed in any way and thus are considered stable
4936    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4937    pub fn as_str_name(&self) -> &'static str {
4938        match self {
4939            Self::Undefined => "TABLE_LIKE_OPTION_UNDEFINED",
4940            Self::CreateTableLikeComments => "CREATE_TABLE_LIKE_COMMENTS",
4941            Self::CreateTableLikeCompression => "CREATE_TABLE_LIKE_COMPRESSION",
4942            Self::CreateTableLikeConstraints => "CREATE_TABLE_LIKE_CONSTRAINTS",
4943            Self::CreateTableLikeDefaults => "CREATE_TABLE_LIKE_DEFAULTS",
4944            Self::CreateTableLikeGenerated => "CREATE_TABLE_LIKE_GENERATED",
4945            Self::CreateTableLikeIdentity => "CREATE_TABLE_LIKE_IDENTITY",
4946            Self::CreateTableLikeIndexes => "CREATE_TABLE_LIKE_INDEXES",
4947            Self::CreateTableLikeStatistics => "CREATE_TABLE_LIKE_STATISTICS",
4948            Self::CreateTableLikeStorage => "CREATE_TABLE_LIKE_STORAGE",
4949            Self::CreateTableLikeAll => "CREATE_TABLE_LIKE_ALL",
4950        }
4951    }
4952    /// Creates an enum from field names used in the ProtoBuf definition.
4953    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4954        match value {
4955            "TABLE_LIKE_OPTION_UNDEFINED" => Some(Self::Undefined),
4956            "CREATE_TABLE_LIKE_COMMENTS" => Some(Self::CreateTableLikeComments),
4957            "CREATE_TABLE_LIKE_COMPRESSION" => Some(Self::CreateTableLikeCompression),
4958            "CREATE_TABLE_LIKE_CONSTRAINTS" => Some(Self::CreateTableLikeConstraints),
4959            "CREATE_TABLE_LIKE_DEFAULTS" => Some(Self::CreateTableLikeDefaults),
4960            "CREATE_TABLE_LIKE_GENERATED" => Some(Self::CreateTableLikeGenerated),
4961            "CREATE_TABLE_LIKE_IDENTITY" => Some(Self::CreateTableLikeIdentity),
4962            "CREATE_TABLE_LIKE_INDEXES" => Some(Self::CreateTableLikeIndexes),
4963            "CREATE_TABLE_LIKE_STATISTICS" => Some(Self::CreateTableLikeStatistics),
4964            "CREATE_TABLE_LIKE_STORAGE" => Some(Self::CreateTableLikeStorage),
4965            "CREATE_TABLE_LIKE_ALL" => Some(Self::CreateTableLikeAll),
4966            _ => None,
4967        }
4968    }
4969}
4970#[derive(serde::Serialize)]
4971#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4972#[repr(i32)]
4973pub enum DefElemAction {
4974    Undefined = 0,
4975    DefelemUnspec = 1,
4976    DefelemSet = 2,
4977    DefelemAdd = 3,
4978    DefelemDrop = 4,
4979}
4980impl DefElemAction {
4981    /// String value of the enum field names used in the ProtoBuf definition.
4982    ///
4983    /// The values are not transformed in any way and thus are considered stable
4984    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
4985    pub fn as_str_name(&self) -> &'static str {
4986        match self {
4987            Self::Undefined => "DEF_ELEM_ACTION_UNDEFINED",
4988            Self::DefelemUnspec => "DEFELEM_UNSPEC",
4989            Self::DefelemSet => "DEFELEM_SET",
4990            Self::DefelemAdd => "DEFELEM_ADD",
4991            Self::DefelemDrop => "DEFELEM_DROP",
4992        }
4993    }
4994    /// Creates an enum from field names used in the ProtoBuf definition.
4995    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
4996        match value {
4997            "DEF_ELEM_ACTION_UNDEFINED" => Some(Self::Undefined),
4998            "DEFELEM_UNSPEC" => Some(Self::DefelemUnspec),
4999            "DEFELEM_SET" => Some(Self::DefelemSet),
5000            "DEFELEM_ADD" => Some(Self::DefelemAdd),
5001            "DEFELEM_DROP" => Some(Self::DefelemDrop),
5002            _ => None,
5003        }
5004    }
5005}
5006#[derive(serde::Serialize)]
5007#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5008#[repr(i32)]
5009pub enum PartitionStrategy {
5010    Undefined = 0,
5011    List = 1,
5012    Range = 2,
5013    Hash = 3,
5014}
5015impl PartitionStrategy {
5016    /// String value of the enum field names used in the ProtoBuf definition.
5017    ///
5018    /// The values are not transformed in any way and thus are considered stable
5019    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5020    pub fn as_str_name(&self) -> &'static str {
5021        match self {
5022            Self::Undefined => "PARTITION_STRATEGY_UNDEFINED",
5023            Self::List => "PARTITION_STRATEGY_LIST",
5024            Self::Range => "PARTITION_STRATEGY_RANGE",
5025            Self::Hash => "PARTITION_STRATEGY_HASH",
5026        }
5027    }
5028    /// Creates an enum from field names used in the ProtoBuf definition.
5029    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5030        match value {
5031            "PARTITION_STRATEGY_UNDEFINED" => Some(Self::Undefined),
5032            "PARTITION_STRATEGY_LIST" => Some(Self::List),
5033            "PARTITION_STRATEGY_RANGE" => Some(Self::Range),
5034            "PARTITION_STRATEGY_HASH" => Some(Self::Hash),
5035            _ => None,
5036        }
5037    }
5038}
5039#[derive(serde::Serialize)]
5040#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5041#[repr(i32)]
5042pub enum PartitionRangeDatumKind {
5043    Undefined = 0,
5044    PartitionRangeDatumMinvalue = 1,
5045    PartitionRangeDatumValue = 2,
5046    PartitionRangeDatumMaxvalue = 3,
5047}
5048impl PartitionRangeDatumKind {
5049    /// String value of the enum field names used in the ProtoBuf definition.
5050    ///
5051    /// The values are not transformed in any way and thus are considered stable
5052    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5053    pub fn as_str_name(&self) -> &'static str {
5054        match self {
5055            Self::Undefined => "PARTITION_RANGE_DATUM_KIND_UNDEFINED",
5056            Self::PartitionRangeDatumMinvalue => "PARTITION_RANGE_DATUM_MINVALUE",
5057            Self::PartitionRangeDatumValue => "PARTITION_RANGE_DATUM_VALUE",
5058            Self::PartitionRangeDatumMaxvalue => "PARTITION_RANGE_DATUM_MAXVALUE",
5059        }
5060    }
5061    /// Creates an enum from field names used in the ProtoBuf definition.
5062    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5063        match value {
5064            "PARTITION_RANGE_DATUM_KIND_UNDEFINED" => Some(Self::Undefined),
5065            "PARTITION_RANGE_DATUM_MINVALUE" => Some(Self::PartitionRangeDatumMinvalue),
5066            "PARTITION_RANGE_DATUM_VALUE" => Some(Self::PartitionRangeDatumValue),
5067            "PARTITION_RANGE_DATUM_MAXVALUE" => Some(Self::PartitionRangeDatumMaxvalue),
5068            _ => None,
5069        }
5070    }
5071}
5072#[derive(serde::Serialize)]
5073#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5074#[repr(i32)]
5075pub enum RteKind {
5076    RtekindUndefined = 0,
5077    RteRelation = 1,
5078    RteSubquery = 2,
5079    RteJoin = 3,
5080    RteFunction = 4,
5081    RteTablefunc = 5,
5082    RteValues = 6,
5083    RteCte = 7,
5084    RteNamedtuplestore = 8,
5085    RteResult = 9,
5086    RteGroup = 10,
5087}
5088impl RteKind {
5089    /// String value of the enum field names used in the ProtoBuf definition.
5090    ///
5091    /// The values are not transformed in any way and thus are considered stable
5092    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5093    pub fn as_str_name(&self) -> &'static str {
5094        match self {
5095            Self::RtekindUndefined => "RTEKIND_UNDEFINED",
5096            Self::RteRelation => "RTE_RELATION",
5097            Self::RteSubquery => "RTE_SUBQUERY",
5098            Self::RteJoin => "RTE_JOIN",
5099            Self::RteFunction => "RTE_FUNCTION",
5100            Self::RteTablefunc => "RTE_TABLEFUNC",
5101            Self::RteValues => "RTE_VALUES",
5102            Self::RteCte => "RTE_CTE",
5103            Self::RteNamedtuplestore => "RTE_NAMEDTUPLESTORE",
5104            Self::RteResult => "RTE_RESULT",
5105            Self::RteGroup => "RTE_GROUP",
5106        }
5107    }
5108    /// Creates an enum from field names used in the ProtoBuf definition.
5109    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5110        match value {
5111            "RTEKIND_UNDEFINED" => Some(Self::RtekindUndefined),
5112            "RTE_RELATION" => Some(Self::RteRelation),
5113            "RTE_SUBQUERY" => Some(Self::RteSubquery),
5114            "RTE_JOIN" => Some(Self::RteJoin),
5115            "RTE_FUNCTION" => Some(Self::RteFunction),
5116            "RTE_TABLEFUNC" => Some(Self::RteTablefunc),
5117            "RTE_VALUES" => Some(Self::RteValues),
5118            "RTE_CTE" => Some(Self::RteCte),
5119            "RTE_NAMEDTUPLESTORE" => Some(Self::RteNamedtuplestore),
5120            "RTE_RESULT" => Some(Self::RteResult),
5121            "RTE_GROUP" => Some(Self::RteGroup),
5122            _ => None,
5123        }
5124    }
5125}
5126#[derive(serde::Serialize)]
5127#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5128#[repr(i32)]
5129pub enum WcoKind {
5130    WcokindUndefined = 0,
5131    WcoViewCheck = 1,
5132    WcoRlsInsertCheck = 2,
5133    WcoRlsUpdateCheck = 3,
5134    WcoRlsConflictCheck = 4,
5135    WcoRlsMergeUpdateCheck = 5,
5136    WcoRlsMergeDeleteCheck = 6,
5137}
5138impl WcoKind {
5139    /// String value of the enum field names used in the ProtoBuf definition.
5140    ///
5141    /// The values are not transformed in any way and thus are considered stable
5142    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5143    pub fn as_str_name(&self) -> &'static str {
5144        match self {
5145            Self::WcokindUndefined => "WCOKIND_UNDEFINED",
5146            Self::WcoViewCheck => "WCO_VIEW_CHECK",
5147            Self::WcoRlsInsertCheck => "WCO_RLS_INSERT_CHECK",
5148            Self::WcoRlsUpdateCheck => "WCO_RLS_UPDATE_CHECK",
5149            Self::WcoRlsConflictCheck => "WCO_RLS_CONFLICT_CHECK",
5150            Self::WcoRlsMergeUpdateCheck => "WCO_RLS_MERGE_UPDATE_CHECK",
5151            Self::WcoRlsMergeDeleteCheck => "WCO_RLS_MERGE_DELETE_CHECK",
5152        }
5153    }
5154    /// Creates an enum from field names used in the ProtoBuf definition.
5155    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5156        match value {
5157            "WCOKIND_UNDEFINED" => Some(Self::WcokindUndefined),
5158            "WCO_VIEW_CHECK" => Some(Self::WcoViewCheck),
5159            "WCO_RLS_INSERT_CHECK" => Some(Self::WcoRlsInsertCheck),
5160            "WCO_RLS_UPDATE_CHECK" => Some(Self::WcoRlsUpdateCheck),
5161            "WCO_RLS_CONFLICT_CHECK" => Some(Self::WcoRlsConflictCheck),
5162            "WCO_RLS_MERGE_UPDATE_CHECK" => Some(Self::WcoRlsMergeUpdateCheck),
5163            "WCO_RLS_MERGE_DELETE_CHECK" => Some(Self::WcoRlsMergeDeleteCheck),
5164            _ => None,
5165        }
5166    }
5167}
5168#[derive(serde::Serialize)]
5169#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5170#[repr(i32)]
5171pub enum GroupingSetKind {
5172    Undefined = 0,
5173    GroupingSetEmpty = 1,
5174    GroupingSetSimple = 2,
5175    GroupingSetRollup = 3,
5176    GroupingSetCube = 4,
5177    GroupingSetSets = 5,
5178}
5179impl GroupingSetKind {
5180    /// String value of the enum field names used in the ProtoBuf definition.
5181    ///
5182    /// The values are not transformed in any way and thus are considered stable
5183    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5184    pub fn as_str_name(&self) -> &'static str {
5185        match self {
5186            Self::Undefined => "GROUPING_SET_KIND_UNDEFINED",
5187            Self::GroupingSetEmpty => "GROUPING_SET_EMPTY",
5188            Self::GroupingSetSimple => "GROUPING_SET_SIMPLE",
5189            Self::GroupingSetRollup => "GROUPING_SET_ROLLUP",
5190            Self::GroupingSetCube => "GROUPING_SET_CUBE",
5191            Self::GroupingSetSets => "GROUPING_SET_SETS",
5192        }
5193    }
5194    /// Creates an enum from field names used in the ProtoBuf definition.
5195    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5196        match value {
5197            "GROUPING_SET_KIND_UNDEFINED" => Some(Self::Undefined),
5198            "GROUPING_SET_EMPTY" => Some(Self::GroupingSetEmpty),
5199            "GROUPING_SET_SIMPLE" => Some(Self::GroupingSetSimple),
5200            "GROUPING_SET_ROLLUP" => Some(Self::GroupingSetRollup),
5201            "GROUPING_SET_CUBE" => Some(Self::GroupingSetCube),
5202            "GROUPING_SET_SETS" => Some(Self::GroupingSetSets),
5203            _ => None,
5204        }
5205    }
5206}
5207#[derive(serde::Serialize)]
5208#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5209#[repr(i32)]
5210pub enum CteMaterialize {
5211    CtematerializeUndefined = 0,
5212    Default = 1,
5213    Always = 2,
5214    Never = 3,
5215}
5216impl CteMaterialize {
5217    /// String value of the enum field names used in the ProtoBuf definition.
5218    ///
5219    /// The values are not transformed in any way and thus are considered stable
5220    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5221    pub fn as_str_name(&self) -> &'static str {
5222        match self {
5223            Self::CtematerializeUndefined => "CTEMATERIALIZE_UNDEFINED",
5224            Self::Default => "CTEMaterializeDefault",
5225            Self::Always => "CTEMaterializeAlways",
5226            Self::Never => "CTEMaterializeNever",
5227        }
5228    }
5229    /// Creates an enum from field names used in the ProtoBuf definition.
5230    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5231        match value {
5232            "CTEMATERIALIZE_UNDEFINED" => Some(Self::CtematerializeUndefined),
5233            "CTEMaterializeDefault" => Some(Self::Default),
5234            "CTEMaterializeAlways" => Some(Self::Always),
5235            "CTEMaterializeNever" => Some(Self::Never),
5236            _ => None,
5237        }
5238    }
5239}
5240#[derive(serde::Serialize)]
5241#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5242#[repr(i32)]
5243pub enum ReturningOptionKind {
5244    Undefined = 0,
5245    ReturningOptionOld = 1,
5246    ReturningOptionNew = 2,
5247}
5248impl ReturningOptionKind {
5249    /// String value of the enum field names used in the ProtoBuf definition.
5250    ///
5251    /// The values are not transformed in any way and thus are considered stable
5252    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5253    pub fn as_str_name(&self) -> &'static str {
5254        match self {
5255            Self::Undefined => "RETURNING_OPTION_KIND_UNDEFINED",
5256            Self::ReturningOptionOld => "RETURNING_OPTION_OLD",
5257            Self::ReturningOptionNew => "RETURNING_OPTION_NEW",
5258        }
5259    }
5260    /// Creates an enum from field names used in the ProtoBuf definition.
5261    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5262        match value {
5263            "RETURNING_OPTION_KIND_UNDEFINED" => Some(Self::Undefined),
5264            "RETURNING_OPTION_OLD" => Some(Self::ReturningOptionOld),
5265            "RETURNING_OPTION_NEW" => Some(Self::ReturningOptionNew),
5266            _ => None,
5267        }
5268    }
5269}
5270#[derive(serde::Serialize)]
5271#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5272#[repr(i32)]
5273pub enum JsonQuotes {
5274    Undefined = 0,
5275    JsQuotesUnspec = 1,
5276    JsQuotesKeep = 2,
5277    JsQuotesOmit = 3,
5278}
5279impl JsonQuotes {
5280    /// String value of the enum field names used in the ProtoBuf definition.
5281    ///
5282    /// The values are not transformed in any way and thus are considered stable
5283    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5284    pub fn as_str_name(&self) -> &'static str {
5285        match self {
5286            Self::Undefined => "JSON_QUOTES_UNDEFINED",
5287            Self::JsQuotesUnspec => "JS_QUOTES_UNSPEC",
5288            Self::JsQuotesKeep => "JS_QUOTES_KEEP",
5289            Self::JsQuotesOmit => "JS_QUOTES_OMIT",
5290        }
5291    }
5292    /// Creates an enum from field names used in the ProtoBuf definition.
5293    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5294        match value {
5295            "JSON_QUOTES_UNDEFINED" => Some(Self::Undefined),
5296            "JS_QUOTES_UNSPEC" => Some(Self::JsQuotesUnspec),
5297            "JS_QUOTES_KEEP" => Some(Self::JsQuotesKeep),
5298            "JS_QUOTES_OMIT" => Some(Self::JsQuotesOmit),
5299            _ => None,
5300        }
5301    }
5302}
5303#[derive(serde::Serialize)]
5304#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5305#[repr(i32)]
5306pub enum JsonTableColumnType {
5307    Undefined = 0,
5308    JtcForOrdinality = 1,
5309    JtcRegular = 2,
5310    JtcExists = 3,
5311    JtcFormatted = 4,
5312    JtcNested = 5,
5313}
5314impl JsonTableColumnType {
5315    /// String value of the enum field names used in the ProtoBuf definition.
5316    ///
5317    /// The values are not transformed in any way and thus are considered stable
5318    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5319    pub fn as_str_name(&self) -> &'static str {
5320        match self {
5321            Self::Undefined => "JSON_TABLE_COLUMN_TYPE_UNDEFINED",
5322            Self::JtcForOrdinality => "JTC_FOR_ORDINALITY",
5323            Self::JtcRegular => "JTC_REGULAR",
5324            Self::JtcExists => "JTC_EXISTS",
5325            Self::JtcFormatted => "JTC_FORMATTED",
5326            Self::JtcNested => "JTC_NESTED",
5327        }
5328    }
5329    /// Creates an enum from field names used in the ProtoBuf definition.
5330    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5331        match value {
5332            "JSON_TABLE_COLUMN_TYPE_UNDEFINED" => Some(Self::Undefined),
5333            "JTC_FOR_ORDINALITY" => Some(Self::JtcForOrdinality),
5334            "JTC_REGULAR" => Some(Self::JtcRegular),
5335            "JTC_EXISTS" => Some(Self::JtcExists),
5336            "JTC_FORMATTED" => Some(Self::JtcFormatted),
5337            "JTC_NESTED" => Some(Self::JtcNested),
5338            _ => None,
5339        }
5340    }
5341}
5342#[derive(serde::Serialize)]
5343#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5344#[repr(i32)]
5345pub enum SetOperation {
5346    Undefined = 0,
5347    SetopNone = 1,
5348    SetopUnion = 2,
5349    SetopIntersect = 3,
5350    SetopExcept = 4,
5351}
5352impl SetOperation {
5353    /// String value of the enum field names used in the ProtoBuf definition.
5354    ///
5355    /// The values are not transformed in any way and thus are considered stable
5356    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5357    pub fn as_str_name(&self) -> &'static str {
5358        match self {
5359            Self::Undefined => "SET_OPERATION_UNDEFINED",
5360            Self::SetopNone => "SETOP_NONE",
5361            Self::SetopUnion => "SETOP_UNION",
5362            Self::SetopIntersect => "SETOP_INTERSECT",
5363            Self::SetopExcept => "SETOP_EXCEPT",
5364        }
5365    }
5366    /// Creates an enum from field names used in the ProtoBuf definition.
5367    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5368        match value {
5369            "SET_OPERATION_UNDEFINED" => Some(Self::Undefined),
5370            "SETOP_NONE" => Some(Self::SetopNone),
5371            "SETOP_UNION" => Some(Self::SetopUnion),
5372            "SETOP_INTERSECT" => Some(Self::SetopIntersect),
5373            "SETOP_EXCEPT" => Some(Self::SetopExcept),
5374            _ => None,
5375        }
5376    }
5377}
5378#[derive(serde::Serialize)]
5379#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5380#[repr(i32)]
5381pub enum ObjectType {
5382    Undefined = 0,
5383    ObjectAccessMethod = 1,
5384    ObjectAggregate = 2,
5385    ObjectAmop = 3,
5386    ObjectAmproc = 4,
5387    ObjectAttribute = 5,
5388    ObjectCast = 6,
5389    ObjectColumn = 7,
5390    ObjectCollation = 8,
5391    ObjectConversion = 9,
5392    ObjectDatabase = 10,
5393    ObjectDefault = 11,
5394    ObjectDefacl = 12,
5395    ObjectDomain = 13,
5396    ObjectDomconstraint = 14,
5397    ObjectEventTrigger = 15,
5398    ObjectExtension = 16,
5399    ObjectFdw = 17,
5400    ObjectForeignServer = 18,
5401    ObjectForeignTable = 19,
5402    ObjectFunction = 20,
5403    ObjectIndex = 21,
5404    ObjectLanguage = 22,
5405    ObjectLargeobject = 23,
5406    ObjectMatview = 24,
5407    ObjectOpclass = 25,
5408    ObjectOperator = 26,
5409    ObjectOpfamily = 27,
5410    ObjectParameterAcl = 28,
5411    ObjectPolicy = 29,
5412    ObjectProcedure = 30,
5413    ObjectPublication = 31,
5414    ObjectPublicationNamespace = 32,
5415    ObjectPublicationRel = 33,
5416    ObjectRole = 34,
5417    ObjectRoutine = 35,
5418    ObjectRule = 36,
5419    ObjectSchema = 37,
5420    ObjectSequence = 38,
5421    ObjectSubscription = 39,
5422    ObjectStatisticExt = 40,
5423    ObjectTabconstraint = 41,
5424    ObjectTable = 42,
5425    ObjectTablespace = 43,
5426    ObjectTransform = 44,
5427    ObjectTrigger = 45,
5428    ObjectTsconfiguration = 46,
5429    ObjectTsdictionary = 47,
5430    ObjectTsparser = 48,
5431    ObjectTstemplate = 49,
5432    ObjectType = 50,
5433    ObjectUserMapping = 51,
5434    ObjectView = 52,
5435}
5436impl ObjectType {
5437    /// String value of the enum field names used in the ProtoBuf definition.
5438    ///
5439    /// The values are not transformed in any way and thus are considered stable
5440    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5441    pub fn as_str_name(&self) -> &'static str {
5442        match self {
5443            Self::Undefined => "OBJECT_TYPE_UNDEFINED",
5444            Self::ObjectAccessMethod => "OBJECT_ACCESS_METHOD",
5445            Self::ObjectAggregate => "OBJECT_AGGREGATE",
5446            Self::ObjectAmop => "OBJECT_AMOP",
5447            Self::ObjectAmproc => "OBJECT_AMPROC",
5448            Self::ObjectAttribute => "OBJECT_ATTRIBUTE",
5449            Self::ObjectCast => "OBJECT_CAST",
5450            Self::ObjectColumn => "OBJECT_COLUMN",
5451            Self::ObjectCollation => "OBJECT_COLLATION",
5452            Self::ObjectConversion => "OBJECT_CONVERSION",
5453            Self::ObjectDatabase => "OBJECT_DATABASE",
5454            Self::ObjectDefault => "OBJECT_DEFAULT",
5455            Self::ObjectDefacl => "OBJECT_DEFACL",
5456            Self::ObjectDomain => "OBJECT_DOMAIN",
5457            Self::ObjectDomconstraint => "OBJECT_DOMCONSTRAINT",
5458            Self::ObjectEventTrigger => "OBJECT_EVENT_TRIGGER",
5459            Self::ObjectExtension => "OBJECT_EXTENSION",
5460            Self::ObjectFdw => "OBJECT_FDW",
5461            Self::ObjectForeignServer => "OBJECT_FOREIGN_SERVER",
5462            Self::ObjectForeignTable => "OBJECT_FOREIGN_TABLE",
5463            Self::ObjectFunction => "OBJECT_FUNCTION",
5464            Self::ObjectIndex => "OBJECT_INDEX",
5465            Self::ObjectLanguage => "OBJECT_LANGUAGE",
5466            Self::ObjectLargeobject => "OBJECT_LARGEOBJECT",
5467            Self::ObjectMatview => "OBJECT_MATVIEW",
5468            Self::ObjectOpclass => "OBJECT_OPCLASS",
5469            Self::ObjectOperator => "OBJECT_OPERATOR",
5470            Self::ObjectOpfamily => "OBJECT_OPFAMILY",
5471            Self::ObjectParameterAcl => "OBJECT_PARAMETER_ACL",
5472            Self::ObjectPolicy => "OBJECT_POLICY",
5473            Self::ObjectProcedure => "OBJECT_PROCEDURE",
5474            Self::ObjectPublication => "OBJECT_PUBLICATION",
5475            Self::ObjectPublicationNamespace => "OBJECT_PUBLICATION_NAMESPACE",
5476            Self::ObjectPublicationRel => "OBJECT_PUBLICATION_REL",
5477            Self::ObjectRole => "OBJECT_ROLE",
5478            Self::ObjectRoutine => "OBJECT_ROUTINE",
5479            Self::ObjectRule => "OBJECT_RULE",
5480            Self::ObjectSchema => "OBJECT_SCHEMA",
5481            Self::ObjectSequence => "OBJECT_SEQUENCE",
5482            Self::ObjectSubscription => "OBJECT_SUBSCRIPTION",
5483            Self::ObjectStatisticExt => "OBJECT_STATISTIC_EXT",
5484            Self::ObjectTabconstraint => "OBJECT_TABCONSTRAINT",
5485            Self::ObjectTable => "OBJECT_TABLE",
5486            Self::ObjectTablespace => "OBJECT_TABLESPACE",
5487            Self::ObjectTransform => "OBJECT_TRANSFORM",
5488            Self::ObjectTrigger => "OBJECT_TRIGGER",
5489            Self::ObjectTsconfiguration => "OBJECT_TSCONFIGURATION",
5490            Self::ObjectTsdictionary => "OBJECT_TSDICTIONARY",
5491            Self::ObjectTsparser => "OBJECT_TSPARSER",
5492            Self::ObjectTstemplate => "OBJECT_TSTEMPLATE",
5493            Self::ObjectType => "OBJECT_TYPE",
5494            Self::ObjectUserMapping => "OBJECT_USER_MAPPING",
5495            Self::ObjectView => "OBJECT_VIEW",
5496        }
5497    }
5498    /// Creates an enum from field names used in the ProtoBuf definition.
5499    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5500        match value {
5501            "OBJECT_TYPE_UNDEFINED" => Some(Self::Undefined),
5502            "OBJECT_ACCESS_METHOD" => Some(Self::ObjectAccessMethod),
5503            "OBJECT_AGGREGATE" => Some(Self::ObjectAggregate),
5504            "OBJECT_AMOP" => Some(Self::ObjectAmop),
5505            "OBJECT_AMPROC" => Some(Self::ObjectAmproc),
5506            "OBJECT_ATTRIBUTE" => Some(Self::ObjectAttribute),
5507            "OBJECT_CAST" => Some(Self::ObjectCast),
5508            "OBJECT_COLUMN" => Some(Self::ObjectColumn),
5509            "OBJECT_COLLATION" => Some(Self::ObjectCollation),
5510            "OBJECT_CONVERSION" => Some(Self::ObjectConversion),
5511            "OBJECT_DATABASE" => Some(Self::ObjectDatabase),
5512            "OBJECT_DEFAULT" => Some(Self::ObjectDefault),
5513            "OBJECT_DEFACL" => Some(Self::ObjectDefacl),
5514            "OBJECT_DOMAIN" => Some(Self::ObjectDomain),
5515            "OBJECT_DOMCONSTRAINT" => Some(Self::ObjectDomconstraint),
5516            "OBJECT_EVENT_TRIGGER" => Some(Self::ObjectEventTrigger),
5517            "OBJECT_EXTENSION" => Some(Self::ObjectExtension),
5518            "OBJECT_FDW" => Some(Self::ObjectFdw),
5519            "OBJECT_FOREIGN_SERVER" => Some(Self::ObjectForeignServer),
5520            "OBJECT_FOREIGN_TABLE" => Some(Self::ObjectForeignTable),
5521            "OBJECT_FUNCTION" => Some(Self::ObjectFunction),
5522            "OBJECT_INDEX" => Some(Self::ObjectIndex),
5523            "OBJECT_LANGUAGE" => Some(Self::ObjectLanguage),
5524            "OBJECT_LARGEOBJECT" => Some(Self::ObjectLargeobject),
5525            "OBJECT_MATVIEW" => Some(Self::ObjectMatview),
5526            "OBJECT_OPCLASS" => Some(Self::ObjectOpclass),
5527            "OBJECT_OPERATOR" => Some(Self::ObjectOperator),
5528            "OBJECT_OPFAMILY" => Some(Self::ObjectOpfamily),
5529            "OBJECT_PARAMETER_ACL" => Some(Self::ObjectParameterAcl),
5530            "OBJECT_POLICY" => Some(Self::ObjectPolicy),
5531            "OBJECT_PROCEDURE" => Some(Self::ObjectProcedure),
5532            "OBJECT_PUBLICATION" => Some(Self::ObjectPublication),
5533            "OBJECT_PUBLICATION_NAMESPACE" => Some(Self::ObjectPublicationNamespace),
5534            "OBJECT_PUBLICATION_REL" => Some(Self::ObjectPublicationRel),
5535            "OBJECT_ROLE" => Some(Self::ObjectRole),
5536            "OBJECT_ROUTINE" => Some(Self::ObjectRoutine),
5537            "OBJECT_RULE" => Some(Self::ObjectRule),
5538            "OBJECT_SCHEMA" => Some(Self::ObjectSchema),
5539            "OBJECT_SEQUENCE" => Some(Self::ObjectSequence),
5540            "OBJECT_SUBSCRIPTION" => Some(Self::ObjectSubscription),
5541            "OBJECT_STATISTIC_EXT" => Some(Self::ObjectStatisticExt),
5542            "OBJECT_TABCONSTRAINT" => Some(Self::ObjectTabconstraint),
5543            "OBJECT_TABLE" => Some(Self::ObjectTable),
5544            "OBJECT_TABLESPACE" => Some(Self::ObjectTablespace),
5545            "OBJECT_TRANSFORM" => Some(Self::ObjectTransform),
5546            "OBJECT_TRIGGER" => Some(Self::ObjectTrigger),
5547            "OBJECT_TSCONFIGURATION" => Some(Self::ObjectTsconfiguration),
5548            "OBJECT_TSDICTIONARY" => Some(Self::ObjectTsdictionary),
5549            "OBJECT_TSPARSER" => Some(Self::ObjectTsparser),
5550            "OBJECT_TSTEMPLATE" => Some(Self::ObjectTstemplate),
5551            "OBJECT_TYPE" => Some(Self::ObjectType),
5552            "OBJECT_USER_MAPPING" => Some(Self::ObjectUserMapping),
5553            "OBJECT_VIEW" => Some(Self::ObjectView),
5554            _ => None,
5555        }
5556    }
5557}
5558#[derive(serde::Serialize)]
5559#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5560#[repr(i32)]
5561pub enum DropBehavior {
5562    Undefined = 0,
5563    DropRestrict = 1,
5564    DropCascade = 2,
5565}
5566impl DropBehavior {
5567    /// String value of the enum field names used in the ProtoBuf definition.
5568    ///
5569    /// The values are not transformed in any way and thus are considered stable
5570    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5571    pub fn as_str_name(&self) -> &'static str {
5572        match self {
5573            Self::Undefined => "DROP_BEHAVIOR_UNDEFINED",
5574            Self::DropRestrict => "DROP_RESTRICT",
5575            Self::DropCascade => "DROP_CASCADE",
5576        }
5577    }
5578    /// Creates an enum from field names used in the ProtoBuf definition.
5579    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5580        match value {
5581            "DROP_BEHAVIOR_UNDEFINED" => Some(Self::Undefined),
5582            "DROP_RESTRICT" => Some(Self::DropRestrict),
5583            "DROP_CASCADE" => Some(Self::DropCascade),
5584            _ => None,
5585        }
5586    }
5587}
5588#[derive(serde::Serialize)]
5589#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5590#[repr(i32)]
5591pub enum AlterTableType {
5592    Undefined = 0,
5593    AtAddColumn = 1,
5594    AtAddColumnToView = 2,
5595    AtColumnDefault = 3,
5596    AtCookedColumnDefault = 4,
5597    AtDropNotNull = 5,
5598    AtSetNotNull = 6,
5599    AtSetExpression = 7,
5600    AtDropExpression = 8,
5601    AtSetStatistics = 9,
5602    AtSetOptions = 10,
5603    AtResetOptions = 11,
5604    AtSetStorage = 12,
5605    AtSetCompression = 13,
5606    AtDropColumn = 14,
5607    AtAddIndex = 15,
5608    AtReAddIndex = 16,
5609    AtAddConstraint = 17,
5610    AtReAddConstraint = 18,
5611    AtReAddDomainConstraint = 19,
5612    AtAlterConstraint = 20,
5613    AtValidateConstraint = 21,
5614    AtAddIndexConstraint = 22,
5615    AtDropConstraint = 23,
5616    AtReAddComment = 24,
5617    AtAlterColumnType = 25,
5618    AtAlterColumnGenericOptions = 26,
5619    AtChangeOwner = 27,
5620    AtClusterOn = 28,
5621    AtDropCluster = 29,
5622    AtSetLogged = 30,
5623    AtSetUnLogged = 31,
5624    AtDropOids = 32,
5625    AtSetAccessMethod = 33,
5626    AtSetTableSpace = 34,
5627    AtSetRelOptions = 35,
5628    AtResetRelOptions = 36,
5629    AtReplaceRelOptions = 37,
5630    AtEnableTrig = 38,
5631    AtEnableAlwaysTrig = 39,
5632    AtEnableReplicaTrig = 40,
5633    AtDisableTrig = 41,
5634    AtEnableTrigAll = 42,
5635    AtDisableTrigAll = 43,
5636    AtEnableTrigUser = 44,
5637    AtDisableTrigUser = 45,
5638    AtEnableRule = 46,
5639    AtEnableAlwaysRule = 47,
5640    AtEnableReplicaRule = 48,
5641    AtDisableRule = 49,
5642    AtAddInherit = 50,
5643    AtDropInherit = 51,
5644    AtAddOf = 52,
5645    AtDropOf = 53,
5646    AtReplicaIdentity = 54,
5647    AtEnableRowSecurity = 55,
5648    AtDisableRowSecurity = 56,
5649    AtForceRowSecurity = 57,
5650    AtNoForceRowSecurity = 58,
5651    AtGenericOptions = 59,
5652    AtAttachPartition = 60,
5653    AtDetachPartition = 61,
5654    AtDetachPartitionFinalize = 62,
5655    AtAddIdentity = 63,
5656    AtSetIdentity = 64,
5657    AtDropIdentity = 65,
5658    AtReAddStatistics = 66,
5659}
5660impl AlterTableType {
5661    /// String value of the enum field names used in the ProtoBuf definition.
5662    ///
5663    /// The values are not transformed in any way and thus are considered stable
5664    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5665    pub fn as_str_name(&self) -> &'static str {
5666        match self {
5667            Self::Undefined => "ALTER_TABLE_TYPE_UNDEFINED",
5668            Self::AtAddColumn => "AT_AddColumn",
5669            Self::AtAddColumnToView => "AT_AddColumnToView",
5670            Self::AtColumnDefault => "AT_ColumnDefault",
5671            Self::AtCookedColumnDefault => "AT_CookedColumnDefault",
5672            Self::AtDropNotNull => "AT_DropNotNull",
5673            Self::AtSetNotNull => "AT_SetNotNull",
5674            Self::AtSetExpression => "AT_SetExpression",
5675            Self::AtDropExpression => "AT_DropExpression",
5676            Self::AtSetStatistics => "AT_SetStatistics",
5677            Self::AtSetOptions => "AT_SetOptions",
5678            Self::AtResetOptions => "AT_ResetOptions",
5679            Self::AtSetStorage => "AT_SetStorage",
5680            Self::AtSetCompression => "AT_SetCompression",
5681            Self::AtDropColumn => "AT_DropColumn",
5682            Self::AtAddIndex => "AT_AddIndex",
5683            Self::AtReAddIndex => "AT_ReAddIndex",
5684            Self::AtAddConstraint => "AT_AddConstraint",
5685            Self::AtReAddConstraint => "AT_ReAddConstraint",
5686            Self::AtReAddDomainConstraint => "AT_ReAddDomainConstraint",
5687            Self::AtAlterConstraint => "AT_AlterConstraint",
5688            Self::AtValidateConstraint => "AT_ValidateConstraint",
5689            Self::AtAddIndexConstraint => "AT_AddIndexConstraint",
5690            Self::AtDropConstraint => "AT_DropConstraint",
5691            Self::AtReAddComment => "AT_ReAddComment",
5692            Self::AtAlterColumnType => "AT_AlterColumnType",
5693            Self::AtAlterColumnGenericOptions => "AT_AlterColumnGenericOptions",
5694            Self::AtChangeOwner => "AT_ChangeOwner",
5695            Self::AtClusterOn => "AT_ClusterOn",
5696            Self::AtDropCluster => "AT_DropCluster",
5697            Self::AtSetLogged => "AT_SetLogged",
5698            Self::AtSetUnLogged => "AT_SetUnLogged",
5699            Self::AtDropOids => "AT_DropOids",
5700            Self::AtSetAccessMethod => "AT_SetAccessMethod",
5701            Self::AtSetTableSpace => "AT_SetTableSpace",
5702            Self::AtSetRelOptions => "AT_SetRelOptions",
5703            Self::AtResetRelOptions => "AT_ResetRelOptions",
5704            Self::AtReplaceRelOptions => "AT_ReplaceRelOptions",
5705            Self::AtEnableTrig => "AT_EnableTrig",
5706            Self::AtEnableAlwaysTrig => "AT_EnableAlwaysTrig",
5707            Self::AtEnableReplicaTrig => "AT_EnableReplicaTrig",
5708            Self::AtDisableTrig => "AT_DisableTrig",
5709            Self::AtEnableTrigAll => "AT_EnableTrigAll",
5710            Self::AtDisableTrigAll => "AT_DisableTrigAll",
5711            Self::AtEnableTrigUser => "AT_EnableTrigUser",
5712            Self::AtDisableTrigUser => "AT_DisableTrigUser",
5713            Self::AtEnableRule => "AT_EnableRule",
5714            Self::AtEnableAlwaysRule => "AT_EnableAlwaysRule",
5715            Self::AtEnableReplicaRule => "AT_EnableReplicaRule",
5716            Self::AtDisableRule => "AT_DisableRule",
5717            Self::AtAddInherit => "AT_AddInherit",
5718            Self::AtDropInherit => "AT_DropInherit",
5719            Self::AtAddOf => "AT_AddOf",
5720            Self::AtDropOf => "AT_DropOf",
5721            Self::AtReplicaIdentity => "AT_ReplicaIdentity",
5722            Self::AtEnableRowSecurity => "AT_EnableRowSecurity",
5723            Self::AtDisableRowSecurity => "AT_DisableRowSecurity",
5724            Self::AtForceRowSecurity => "AT_ForceRowSecurity",
5725            Self::AtNoForceRowSecurity => "AT_NoForceRowSecurity",
5726            Self::AtGenericOptions => "AT_GenericOptions",
5727            Self::AtAttachPartition => "AT_AttachPartition",
5728            Self::AtDetachPartition => "AT_DetachPartition",
5729            Self::AtDetachPartitionFinalize => "AT_DetachPartitionFinalize",
5730            Self::AtAddIdentity => "AT_AddIdentity",
5731            Self::AtSetIdentity => "AT_SetIdentity",
5732            Self::AtDropIdentity => "AT_DropIdentity",
5733            Self::AtReAddStatistics => "AT_ReAddStatistics",
5734        }
5735    }
5736    /// Creates an enum from field names used in the ProtoBuf definition.
5737    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5738        match value {
5739            "ALTER_TABLE_TYPE_UNDEFINED" => Some(Self::Undefined),
5740            "AT_AddColumn" => Some(Self::AtAddColumn),
5741            "AT_AddColumnToView" => Some(Self::AtAddColumnToView),
5742            "AT_ColumnDefault" => Some(Self::AtColumnDefault),
5743            "AT_CookedColumnDefault" => Some(Self::AtCookedColumnDefault),
5744            "AT_DropNotNull" => Some(Self::AtDropNotNull),
5745            "AT_SetNotNull" => Some(Self::AtSetNotNull),
5746            "AT_SetExpression" => Some(Self::AtSetExpression),
5747            "AT_DropExpression" => Some(Self::AtDropExpression),
5748            "AT_SetStatistics" => Some(Self::AtSetStatistics),
5749            "AT_SetOptions" => Some(Self::AtSetOptions),
5750            "AT_ResetOptions" => Some(Self::AtResetOptions),
5751            "AT_SetStorage" => Some(Self::AtSetStorage),
5752            "AT_SetCompression" => Some(Self::AtSetCompression),
5753            "AT_DropColumn" => Some(Self::AtDropColumn),
5754            "AT_AddIndex" => Some(Self::AtAddIndex),
5755            "AT_ReAddIndex" => Some(Self::AtReAddIndex),
5756            "AT_AddConstraint" => Some(Self::AtAddConstraint),
5757            "AT_ReAddConstraint" => Some(Self::AtReAddConstraint),
5758            "AT_ReAddDomainConstraint" => Some(Self::AtReAddDomainConstraint),
5759            "AT_AlterConstraint" => Some(Self::AtAlterConstraint),
5760            "AT_ValidateConstraint" => Some(Self::AtValidateConstraint),
5761            "AT_AddIndexConstraint" => Some(Self::AtAddIndexConstraint),
5762            "AT_DropConstraint" => Some(Self::AtDropConstraint),
5763            "AT_ReAddComment" => Some(Self::AtReAddComment),
5764            "AT_AlterColumnType" => Some(Self::AtAlterColumnType),
5765            "AT_AlterColumnGenericOptions" => Some(Self::AtAlterColumnGenericOptions),
5766            "AT_ChangeOwner" => Some(Self::AtChangeOwner),
5767            "AT_ClusterOn" => Some(Self::AtClusterOn),
5768            "AT_DropCluster" => Some(Self::AtDropCluster),
5769            "AT_SetLogged" => Some(Self::AtSetLogged),
5770            "AT_SetUnLogged" => Some(Self::AtSetUnLogged),
5771            "AT_DropOids" => Some(Self::AtDropOids),
5772            "AT_SetAccessMethod" => Some(Self::AtSetAccessMethod),
5773            "AT_SetTableSpace" => Some(Self::AtSetTableSpace),
5774            "AT_SetRelOptions" => Some(Self::AtSetRelOptions),
5775            "AT_ResetRelOptions" => Some(Self::AtResetRelOptions),
5776            "AT_ReplaceRelOptions" => Some(Self::AtReplaceRelOptions),
5777            "AT_EnableTrig" => Some(Self::AtEnableTrig),
5778            "AT_EnableAlwaysTrig" => Some(Self::AtEnableAlwaysTrig),
5779            "AT_EnableReplicaTrig" => Some(Self::AtEnableReplicaTrig),
5780            "AT_DisableTrig" => Some(Self::AtDisableTrig),
5781            "AT_EnableTrigAll" => Some(Self::AtEnableTrigAll),
5782            "AT_DisableTrigAll" => Some(Self::AtDisableTrigAll),
5783            "AT_EnableTrigUser" => Some(Self::AtEnableTrigUser),
5784            "AT_DisableTrigUser" => Some(Self::AtDisableTrigUser),
5785            "AT_EnableRule" => Some(Self::AtEnableRule),
5786            "AT_EnableAlwaysRule" => Some(Self::AtEnableAlwaysRule),
5787            "AT_EnableReplicaRule" => Some(Self::AtEnableReplicaRule),
5788            "AT_DisableRule" => Some(Self::AtDisableRule),
5789            "AT_AddInherit" => Some(Self::AtAddInherit),
5790            "AT_DropInherit" => Some(Self::AtDropInherit),
5791            "AT_AddOf" => Some(Self::AtAddOf),
5792            "AT_DropOf" => Some(Self::AtDropOf),
5793            "AT_ReplicaIdentity" => Some(Self::AtReplicaIdentity),
5794            "AT_EnableRowSecurity" => Some(Self::AtEnableRowSecurity),
5795            "AT_DisableRowSecurity" => Some(Self::AtDisableRowSecurity),
5796            "AT_ForceRowSecurity" => Some(Self::AtForceRowSecurity),
5797            "AT_NoForceRowSecurity" => Some(Self::AtNoForceRowSecurity),
5798            "AT_GenericOptions" => Some(Self::AtGenericOptions),
5799            "AT_AttachPartition" => Some(Self::AtAttachPartition),
5800            "AT_DetachPartition" => Some(Self::AtDetachPartition),
5801            "AT_DetachPartitionFinalize" => Some(Self::AtDetachPartitionFinalize),
5802            "AT_AddIdentity" => Some(Self::AtAddIdentity),
5803            "AT_SetIdentity" => Some(Self::AtSetIdentity),
5804            "AT_DropIdentity" => Some(Self::AtDropIdentity),
5805            "AT_ReAddStatistics" => Some(Self::AtReAddStatistics),
5806            _ => None,
5807        }
5808    }
5809}
5810#[derive(serde::Serialize)]
5811#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5812#[repr(i32)]
5813pub enum GrantTargetType {
5814    Undefined = 0,
5815    AclTargetObject = 1,
5816    AclTargetAllInSchema = 2,
5817    AclTargetDefaults = 3,
5818}
5819impl GrantTargetType {
5820    /// String value of the enum field names used in the ProtoBuf definition.
5821    ///
5822    /// The values are not transformed in any way and thus are considered stable
5823    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5824    pub fn as_str_name(&self) -> &'static str {
5825        match self {
5826            Self::Undefined => "GRANT_TARGET_TYPE_UNDEFINED",
5827            Self::AclTargetObject => "ACL_TARGET_OBJECT",
5828            Self::AclTargetAllInSchema => "ACL_TARGET_ALL_IN_SCHEMA",
5829            Self::AclTargetDefaults => "ACL_TARGET_DEFAULTS",
5830        }
5831    }
5832    /// Creates an enum from field names used in the ProtoBuf definition.
5833    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5834        match value {
5835            "GRANT_TARGET_TYPE_UNDEFINED" => Some(Self::Undefined),
5836            "ACL_TARGET_OBJECT" => Some(Self::AclTargetObject),
5837            "ACL_TARGET_ALL_IN_SCHEMA" => Some(Self::AclTargetAllInSchema),
5838            "ACL_TARGET_DEFAULTS" => Some(Self::AclTargetDefaults),
5839            _ => None,
5840        }
5841    }
5842}
5843#[derive(serde::Serialize)]
5844#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5845#[repr(i32)]
5846pub enum VariableSetKind {
5847    Undefined = 0,
5848    VarSetValue = 1,
5849    VarSetDefault = 2,
5850    VarSetCurrent = 3,
5851    VarSetMulti = 4,
5852    VarReset = 5,
5853    VarResetAll = 6,
5854}
5855impl VariableSetKind {
5856    /// String value of the enum field names used in the ProtoBuf definition.
5857    ///
5858    /// The values are not transformed in any way and thus are considered stable
5859    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5860    pub fn as_str_name(&self) -> &'static str {
5861        match self {
5862            Self::Undefined => "VARIABLE_SET_KIND_UNDEFINED",
5863            Self::VarSetValue => "VAR_SET_VALUE",
5864            Self::VarSetDefault => "VAR_SET_DEFAULT",
5865            Self::VarSetCurrent => "VAR_SET_CURRENT",
5866            Self::VarSetMulti => "VAR_SET_MULTI",
5867            Self::VarReset => "VAR_RESET",
5868            Self::VarResetAll => "VAR_RESET_ALL",
5869        }
5870    }
5871    /// Creates an enum from field names used in the ProtoBuf definition.
5872    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5873        match value {
5874            "VARIABLE_SET_KIND_UNDEFINED" => Some(Self::Undefined),
5875            "VAR_SET_VALUE" => Some(Self::VarSetValue),
5876            "VAR_SET_DEFAULT" => Some(Self::VarSetDefault),
5877            "VAR_SET_CURRENT" => Some(Self::VarSetCurrent),
5878            "VAR_SET_MULTI" => Some(Self::VarSetMulti),
5879            "VAR_RESET" => Some(Self::VarReset),
5880            "VAR_RESET_ALL" => Some(Self::VarResetAll),
5881            _ => None,
5882        }
5883    }
5884}
5885#[derive(serde::Serialize)]
5886#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5887#[repr(i32)]
5888pub enum ConstrType {
5889    Undefined = 0,
5890    ConstrNull = 1,
5891    ConstrNotnull = 2,
5892    ConstrDefault = 3,
5893    ConstrIdentity = 4,
5894    ConstrGenerated = 5,
5895    ConstrCheck = 6,
5896    ConstrPrimary = 7,
5897    ConstrUnique = 8,
5898    ConstrExclusion = 9,
5899    ConstrForeign = 10,
5900    ConstrAttrDeferrable = 11,
5901    ConstrAttrNotDeferrable = 12,
5902    ConstrAttrDeferred = 13,
5903    ConstrAttrImmediate = 14,
5904    ConstrAttrEnforced = 15,
5905    ConstrAttrNotEnforced = 16,
5906}
5907impl ConstrType {
5908    /// String value of the enum field names used in the ProtoBuf definition.
5909    ///
5910    /// The values are not transformed in any way and thus are considered stable
5911    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5912    pub fn as_str_name(&self) -> &'static str {
5913        match self {
5914            Self::Undefined => "CONSTR_TYPE_UNDEFINED",
5915            Self::ConstrNull => "CONSTR_NULL",
5916            Self::ConstrNotnull => "CONSTR_NOTNULL",
5917            Self::ConstrDefault => "CONSTR_DEFAULT",
5918            Self::ConstrIdentity => "CONSTR_IDENTITY",
5919            Self::ConstrGenerated => "CONSTR_GENERATED",
5920            Self::ConstrCheck => "CONSTR_CHECK",
5921            Self::ConstrPrimary => "CONSTR_PRIMARY",
5922            Self::ConstrUnique => "CONSTR_UNIQUE",
5923            Self::ConstrExclusion => "CONSTR_EXCLUSION",
5924            Self::ConstrForeign => "CONSTR_FOREIGN",
5925            Self::ConstrAttrDeferrable => "CONSTR_ATTR_DEFERRABLE",
5926            Self::ConstrAttrNotDeferrable => "CONSTR_ATTR_NOT_DEFERRABLE",
5927            Self::ConstrAttrDeferred => "CONSTR_ATTR_DEFERRED",
5928            Self::ConstrAttrImmediate => "CONSTR_ATTR_IMMEDIATE",
5929            Self::ConstrAttrEnforced => "CONSTR_ATTR_ENFORCED",
5930            Self::ConstrAttrNotEnforced => "CONSTR_ATTR_NOT_ENFORCED",
5931        }
5932    }
5933    /// Creates an enum from field names used in the ProtoBuf definition.
5934    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5935        match value {
5936            "CONSTR_TYPE_UNDEFINED" => Some(Self::Undefined),
5937            "CONSTR_NULL" => Some(Self::ConstrNull),
5938            "CONSTR_NOTNULL" => Some(Self::ConstrNotnull),
5939            "CONSTR_DEFAULT" => Some(Self::ConstrDefault),
5940            "CONSTR_IDENTITY" => Some(Self::ConstrIdentity),
5941            "CONSTR_GENERATED" => Some(Self::ConstrGenerated),
5942            "CONSTR_CHECK" => Some(Self::ConstrCheck),
5943            "CONSTR_PRIMARY" => Some(Self::ConstrPrimary),
5944            "CONSTR_UNIQUE" => Some(Self::ConstrUnique),
5945            "CONSTR_EXCLUSION" => Some(Self::ConstrExclusion),
5946            "CONSTR_FOREIGN" => Some(Self::ConstrForeign),
5947            "CONSTR_ATTR_DEFERRABLE" => Some(Self::ConstrAttrDeferrable),
5948            "CONSTR_ATTR_NOT_DEFERRABLE" => Some(Self::ConstrAttrNotDeferrable),
5949            "CONSTR_ATTR_DEFERRED" => Some(Self::ConstrAttrDeferred),
5950            "CONSTR_ATTR_IMMEDIATE" => Some(Self::ConstrAttrImmediate),
5951            "CONSTR_ATTR_ENFORCED" => Some(Self::ConstrAttrEnforced),
5952            "CONSTR_ATTR_NOT_ENFORCED" => Some(Self::ConstrAttrNotEnforced),
5953            _ => None,
5954        }
5955    }
5956}
5957#[derive(serde::Serialize)]
5958#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5959#[repr(i32)]
5960pub enum ImportForeignSchemaType {
5961    Undefined = 0,
5962    FdwImportSchemaAll = 1,
5963    FdwImportSchemaLimitTo = 2,
5964    FdwImportSchemaExcept = 3,
5965}
5966impl ImportForeignSchemaType {
5967    /// String value of the enum field names used in the ProtoBuf definition.
5968    ///
5969    /// The values are not transformed in any way and thus are considered stable
5970    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
5971    pub fn as_str_name(&self) -> &'static str {
5972        match self {
5973            Self::Undefined => "IMPORT_FOREIGN_SCHEMA_TYPE_UNDEFINED",
5974            Self::FdwImportSchemaAll => "FDW_IMPORT_SCHEMA_ALL",
5975            Self::FdwImportSchemaLimitTo => "FDW_IMPORT_SCHEMA_LIMIT_TO",
5976            Self::FdwImportSchemaExcept => "FDW_IMPORT_SCHEMA_EXCEPT",
5977        }
5978    }
5979    /// Creates an enum from field names used in the ProtoBuf definition.
5980    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
5981        match value {
5982            "IMPORT_FOREIGN_SCHEMA_TYPE_UNDEFINED" => Some(Self::Undefined),
5983            "FDW_IMPORT_SCHEMA_ALL" => Some(Self::FdwImportSchemaAll),
5984            "FDW_IMPORT_SCHEMA_LIMIT_TO" => Some(Self::FdwImportSchemaLimitTo),
5985            "FDW_IMPORT_SCHEMA_EXCEPT" => Some(Self::FdwImportSchemaExcept),
5986            _ => None,
5987        }
5988    }
5989}
5990#[derive(serde::Serialize)]
5991#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5992#[repr(i32)]
5993pub enum RoleStmtType {
5994    Undefined = 0,
5995    RolestmtRole = 1,
5996    RolestmtUser = 2,
5997    RolestmtGroup = 3,
5998}
5999impl RoleStmtType {
6000    /// String value of the enum field names used in the ProtoBuf definition.
6001    ///
6002    /// The values are not transformed in any way and thus are considered stable
6003    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6004    pub fn as_str_name(&self) -> &'static str {
6005        match self {
6006            Self::Undefined => "ROLE_STMT_TYPE_UNDEFINED",
6007            Self::RolestmtRole => "ROLESTMT_ROLE",
6008            Self::RolestmtUser => "ROLESTMT_USER",
6009            Self::RolestmtGroup => "ROLESTMT_GROUP",
6010        }
6011    }
6012    /// Creates an enum from field names used in the ProtoBuf definition.
6013    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6014        match value {
6015            "ROLE_STMT_TYPE_UNDEFINED" => Some(Self::Undefined),
6016            "ROLESTMT_ROLE" => Some(Self::RolestmtRole),
6017            "ROLESTMT_USER" => Some(Self::RolestmtUser),
6018            "ROLESTMT_GROUP" => Some(Self::RolestmtGroup),
6019            _ => None,
6020        }
6021    }
6022}
6023#[derive(serde::Serialize)]
6024#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6025#[repr(i32)]
6026pub enum FetchDirection {
6027    Undefined = 0,
6028    FetchForward = 1,
6029    FetchBackward = 2,
6030    FetchAbsolute = 3,
6031    FetchRelative = 4,
6032}
6033impl FetchDirection {
6034    /// String value of the enum field names used in the ProtoBuf definition.
6035    ///
6036    /// The values are not transformed in any way and thus are considered stable
6037    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6038    pub fn as_str_name(&self) -> &'static str {
6039        match self {
6040            Self::Undefined => "FETCH_DIRECTION_UNDEFINED",
6041            Self::FetchForward => "FETCH_FORWARD",
6042            Self::FetchBackward => "FETCH_BACKWARD",
6043            Self::FetchAbsolute => "FETCH_ABSOLUTE",
6044            Self::FetchRelative => "FETCH_RELATIVE",
6045        }
6046    }
6047    /// Creates an enum from field names used in the ProtoBuf definition.
6048    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6049        match value {
6050            "FETCH_DIRECTION_UNDEFINED" => Some(Self::Undefined),
6051            "FETCH_FORWARD" => Some(Self::FetchForward),
6052            "FETCH_BACKWARD" => Some(Self::FetchBackward),
6053            "FETCH_ABSOLUTE" => Some(Self::FetchAbsolute),
6054            "FETCH_RELATIVE" => Some(Self::FetchRelative),
6055            _ => None,
6056        }
6057    }
6058}
6059#[derive(serde::Serialize)]
6060#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6061#[repr(i32)]
6062pub enum FunctionParameterMode {
6063    Undefined = 0,
6064    FuncParamIn = 1,
6065    FuncParamOut = 2,
6066    FuncParamInout = 3,
6067    FuncParamVariadic = 4,
6068    FuncParamTable = 5,
6069    FuncParamDefault = 6,
6070}
6071impl FunctionParameterMode {
6072    /// String value of the enum field names used in the ProtoBuf definition.
6073    ///
6074    /// The values are not transformed in any way and thus are considered stable
6075    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6076    pub fn as_str_name(&self) -> &'static str {
6077        match self {
6078            Self::Undefined => "FUNCTION_PARAMETER_MODE_UNDEFINED",
6079            Self::FuncParamIn => "FUNC_PARAM_IN",
6080            Self::FuncParamOut => "FUNC_PARAM_OUT",
6081            Self::FuncParamInout => "FUNC_PARAM_INOUT",
6082            Self::FuncParamVariadic => "FUNC_PARAM_VARIADIC",
6083            Self::FuncParamTable => "FUNC_PARAM_TABLE",
6084            Self::FuncParamDefault => "FUNC_PARAM_DEFAULT",
6085        }
6086    }
6087    /// Creates an enum from field names used in the ProtoBuf definition.
6088    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6089        match value {
6090            "FUNCTION_PARAMETER_MODE_UNDEFINED" => Some(Self::Undefined),
6091            "FUNC_PARAM_IN" => Some(Self::FuncParamIn),
6092            "FUNC_PARAM_OUT" => Some(Self::FuncParamOut),
6093            "FUNC_PARAM_INOUT" => Some(Self::FuncParamInout),
6094            "FUNC_PARAM_VARIADIC" => Some(Self::FuncParamVariadic),
6095            "FUNC_PARAM_TABLE" => Some(Self::FuncParamTable),
6096            "FUNC_PARAM_DEFAULT" => Some(Self::FuncParamDefault),
6097            _ => None,
6098        }
6099    }
6100}
6101#[derive(serde::Serialize)]
6102#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6103#[repr(i32)]
6104pub enum TransactionStmtKind {
6105    Undefined = 0,
6106    TransStmtBegin = 1,
6107    TransStmtStart = 2,
6108    TransStmtCommit = 3,
6109    TransStmtRollback = 4,
6110    TransStmtSavepoint = 5,
6111    TransStmtRelease = 6,
6112    TransStmtRollbackTo = 7,
6113    TransStmtPrepare = 8,
6114    TransStmtCommitPrepared = 9,
6115    TransStmtRollbackPrepared = 10,
6116}
6117impl TransactionStmtKind {
6118    /// String value of the enum field names used in the ProtoBuf definition.
6119    ///
6120    /// The values are not transformed in any way and thus are considered stable
6121    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6122    pub fn as_str_name(&self) -> &'static str {
6123        match self {
6124            Self::Undefined => "TRANSACTION_STMT_KIND_UNDEFINED",
6125            Self::TransStmtBegin => "TRANS_STMT_BEGIN",
6126            Self::TransStmtStart => "TRANS_STMT_START",
6127            Self::TransStmtCommit => "TRANS_STMT_COMMIT",
6128            Self::TransStmtRollback => "TRANS_STMT_ROLLBACK",
6129            Self::TransStmtSavepoint => "TRANS_STMT_SAVEPOINT",
6130            Self::TransStmtRelease => "TRANS_STMT_RELEASE",
6131            Self::TransStmtRollbackTo => "TRANS_STMT_ROLLBACK_TO",
6132            Self::TransStmtPrepare => "TRANS_STMT_PREPARE",
6133            Self::TransStmtCommitPrepared => "TRANS_STMT_COMMIT_PREPARED",
6134            Self::TransStmtRollbackPrepared => "TRANS_STMT_ROLLBACK_PREPARED",
6135        }
6136    }
6137    /// Creates an enum from field names used in the ProtoBuf definition.
6138    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6139        match value {
6140            "TRANSACTION_STMT_KIND_UNDEFINED" => Some(Self::Undefined),
6141            "TRANS_STMT_BEGIN" => Some(Self::TransStmtBegin),
6142            "TRANS_STMT_START" => Some(Self::TransStmtStart),
6143            "TRANS_STMT_COMMIT" => Some(Self::TransStmtCommit),
6144            "TRANS_STMT_ROLLBACK" => Some(Self::TransStmtRollback),
6145            "TRANS_STMT_SAVEPOINT" => Some(Self::TransStmtSavepoint),
6146            "TRANS_STMT_RELEASE" => Some(Self::TransStmtRelease),
6147            "TRANS_STMT_ROLLBACK_TO" => Some(Self::TransStmtRollbackTo),
6148            "TRANS_STMT_PREPARE" => Some(Self::TransStmtPrepare),
6149            "TRANS_STMT_COMMIT_PREPARED" => Some(Self::TransStmtCommitPrepared),
6150            "TRANS_STMT_ROLLBACK_PREPARED" => Some(Self::TransStmtRollbackPrepared),
6151            _ => None,
6152        }
6153    }
6154}
6155#[derive(serde::Serialize)]
6156#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6157#[repr(i32)]
6158pub enum ViewCheckOption {
6159    Undefined = 0,
6160    NoCheckOption = 1,
6161    LocalCheckOption = 2,
6162    CascadedCheckOption = 3,
6163}
6164impl ViewCheckOption {
6165    /// String value of the enum field names used in the ProtoBuf definition.
6166    ///
6167    /// The values are not transformed in any way and thus are considered stable
6168    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6169    pub fn as_str_name(&self) -> &'static str {
6170        match self {
6171            Self::Undefined => "VIEW_CHECK_OPTION_UNDEFINED",
6172            Self::NoCheckOption => "NO_CHECK_OPTION",
6173            Self::LocalCheckOption => "LOCAL_CHECK_OPTION",
6174            Self::CascadedCheckOption => "CASCADED_CHECK_OPTION",
6175        }
6176    }
6177    /// Creates an enum from field names used in the ProtoBuf definition.
6178    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6179        match value {
6180            "VIEW_CHECK_OPTION_UNDEFINED" => Some(Self::Undefined),
6181            "NO_CHECK_OPTION" => Some(Self::NoCheckOption),
6182            "LOCAL_CHECK_OPTION" => Some(Self::LocalCheckOption),
6183            "CASCADED_CHECK_OPTION" => Some(Self::CascadedCheckOption),
6184            _ => None,
6185        }
6186    }
6187}
6188#[derive(serde::Serialize)]
6189#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6190#[repr(i32)]
6191pub enum DiscardMode {
6192    Undefined = 0,
6193    DiscardAll = 1,
6194    DiscardPlans = 2,
6195    DiscardSequences = 3,
6196    DiscardTemp = 4,
6197}
6198impl DiscardMode {
6199    /// String value of the enum field names used in the ProtoBuf definition.
6200    ///
6201    /// The values are not transformed in any way and thus are considered stable
6202    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6203    pub fn as_str_name(&self) -> &'static str {
6204        match self {
6205            Self::Undefined => "DISCARD_MODE_UNDEFINED",
6206            Self::DiscardAll => "DISCARD_ALL",
6207            Self::DiscardPlans => "DISCARD_PLANS",
6208            Self::DiscardSequences => "DISCARD_SEQUENCES",
6209            Self::DiscardTemp => "DISCARD_TEMP",
6210        }
6211    }
6212    /// Creates an enum from field names used in the ProtoBuf definition.
6213    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6214        match value {
6215            "DISCARD_MODE_UNDEFINED" => Some(Self::Undefined),
6216            "DISCARD_ALL" => Some(Self::DiscardAll),
6217            "DISCARD_PLANS" => Some(Self::DiscardPlans),
6218            "DISCARD_SEQUENCES" => Some(Self::DiscardSequences),
6219            "DISCARD_TEMP" => Some(Self::DiscardTemp),
6220            _ => None,
6221        }
6222    }
6223}
6224#[derive(serde::Serialize)]
6225#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6226#[repr(i32)]
6227pub enum ReindexObjectType {
6228    Undefined = 0,
6229    ReindexObjectIndex = 1,
6230    ReindexObjectTable = 2,
6231    ReindexObjectSchema = 3,
6232    ReindexObjectSystem = 4,
6233    ReindexObjectDatabase = 5,
6234}
6235impl ReindexObjectType {
6236    /// String value of the enum field names used in the ProtoBuf definition.
6237    ///
6238    /// The values are not transformed in any way and thus are considered stable
6239    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6240    pub fn as_str_name(&self) -> &'static str {
6241        match self {
6242            Self::Undefined => "REINDEX_OBJECT_TYPE_UNDEFINED",
6243            Self::ReindexObjectIndex => "REINDEX_OBJECT_INDEX",
6244            Self::ReindexObjectTable => "REINDEX_OBJECT_TABLE",
6245            Self::ReindexObjectSchema => "REINDEX_OBJECT_SCHEMA",
6246            Self::ReindexObjectSystem => "REINDEX_OBJECT_SYSTEM",
6247            Self::ReindexObjectDatabase => "REINDEX_OBJECT_DATABASE",
6248        }
6249    }
6250    /// Creates an enum from field names used in the ProtoBuf definition.
6251    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6252        match value {
6253            "REINDEX_OBJECT_TYPE_UNDEFINED" => Some(Self::Undefined),
6254            "REINDEX_OBJECT_INDEX" => Some(Self::ReindexObjectIndex),
6255            "REINDEX_OBJECT_TABLE" => Some(Self::ReindexObjectTable),
6256            "REINDEX_OBJECT_SCHEMA" => Some(Self::ReindexObjectSchema),
6257            "REINDEX_OBJECT_SYSTEM" => Some(Self::ReindexObjectSystem),
6258            "REINDEX_OBJECT_DATABASE" => Some(Self::ReindexObjectDatabase),
6259            _ => None,
6260        }
6261    }
6262}
6263#[derive(serde::Serialize)]
6264#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6265#[repr(i32)]
6266pub enum AlterTsConfigType {
6267    AlterTsconfigTypeUndefined = 0,
6268    AlterTsconfigAddMapping = 1,
6269    AlterTsconfigAlterMappingForToken = 2,
6270    AlterTsconfigReplaceDict = 3,
6271    AlterTsconfigReplaceDictForToken = 4,
6272    AlterTsconfigDropMapping = 5,
6273}
6274impl AlterTsConfigType {
6275    /// String value of the enum field names used in the ProtoBuf definition.
6276    ///
6277    /// The values are not transformed in any way and thus are considered stable
6278    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6279    pub fn as_str_name(&self) -> &'static str {
6280        match self {
6281            Self::AlterTsconfigTypeUndefined => "ALTER_TSCONFIG_TYPE_UNDEFINED",
6282            Self::AlterTsconfigAddMapping => "ALTER_TSCONFIG_ADD_MAPPING",
6283            Self::AlterTsconfigAlterMappingForToken => {
6284                "ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN"
6285            }
6286            Self::AlterTsconfigReplaceDict => "ALTER_TSCONFIG_REPLACE_DICT",
6287            Self::AlterTsconfigReplaceDictForToken => {
6288                "ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN"
6289            }
6290            Self::AlterTsconfigDropMapping => "ALTER_TSCONFIG_DROP_MAPPING",
6291        }
6292    }
6293    /// Creates an enum from field names used in the ProtoBuf definition.
6294    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6295        match value {
6296            "ALTER_TSCONFIG_TYPE_UNDEFINED" => Some(Self::AlterTsconfigTypeUndefined),
6297            "ALTER_TSCONFIG_ADD_MAPPING" => Some(Self::AlterTsconfigAddMapping),
6298            "ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN" => {
6299                Some(Self::AlterTsconfigAlterMappingForToken)
6300            }
6301            "ALTER_TSCONFIG_REPLACE_DICT" => Some(Self::AlterTsconfigReplaceDict),
6302            "ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN" => {
6303                Some(Self::AlterTsconfigReplaceDictForToken)
6304            }
6305            "ALTER_TSCONFIG_DROP_MAPPING" => Some(Self::AlterTsconfigDropMapping),
6306            _ => None,
6307        }
6308    }
6309}
6310#[derive(serde::Serialize)]
6311#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6312#[repr(i32)]
6313pub enum PublicationObjSpecType {
6314    Undefined = 0,
6315    PublicationobjTable = 1,
6316    PublicationobjTablesInSchema = 2,
6317    PublicationobjTablesInCurSchema = 3,
6318    PublicationobjContinuation = 4,
6319}
6320impl PublicationObjSpecType {
6321    /// String value of the enum field names used in the ProtoBuf definition.
6322    ///
6323    /// The values are not transformed in any way and thus are considered stable
6324    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6325    pub fn as_str_name(&self) -> &'static str {
6326        match self {
6327            Self::Undefined => "PUBLICATION_OBJ_SPEC_TYPE_UNDEFINED",
6328            Self::PublicationobjTable => "PUBLICATIONOBJ_TABLE",
6329            Self::PublicationobjTablesInSchema => "PUBLICATIONOBJ_TABLES_IN_SCHEMA",
6330            Self::PublicationobjTablesInCurSchema => {
6331                "PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA"
6332            }
6333            Self::PublicationobjContinuation => "PUBLICATIONOBJ_CONTINUATION",
6334        }
6335    }
6336    /// Creates an enum from field names used in the ProtoBuf definition.
6337    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6338        match value {
6339            "PUBLICATION_OBJ_SPEC_TYPE_UNDEFINED" => Some(Self::Undefined),
6340            "PUBLICATIONOBJ_TABLE" => Some(Self::PublicationobjTable),
6341            "PUBLICATIONOBJ_TABLES_IN_SCHEMA" => Some(Self::PublicationobjTablesInSchema),
6342            "PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA" => {
6343                Some(Self::PublicationobjTablesInCurSchema)
6344            }
6345            "PUBLICATIONOBJ_CONTINUATION" => Some(Self::PublicationobjContinuation),
6346            _ => None,
6347        }
6348    }
6349}
6350#[derive(serde::Serialize)]
6351#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6352#[repr(i32)]
6353pub enum AlterPublicationAction {
6354    Undefined = 0,
6355    ApAddObjects = 1,
6356    ApDropObjects = 2,
6357    ApSetObjects = 3,
6358}
6359impl AlterPublicationAction {
6360    /// String value of the enum field names used in the ProtoBuf definition.
6361    ///
6362    /// The values are not transformed in any way and thus are considered stable
6363    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6364    pub fn as_str_name(&self) -> &'static str {
6365        match self {
6366            Self::Undefined => "ALTER_PUBLICATION_ACTION_UNDEFINED",
6367            Self::ApAddObjects => "AP_AddObjects",
6368            Self::ApDropObjects => "AP_DropObjects",
6369            Self::ApSetObjects => "AP_SetObjects",
6370        }
6371    }
6372    /// Creates an enum from field names used in the ProtoBuf definition.
6373    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6374        match value {
6375            "ALTER_PUBLICATION_ACTION_UNDEFINED" => Some(Self::Undefined),
6376            "AP_AddObjects" => Some(Self::ApAddObjects),
6377            "AP_DropObjects" => Some(Self::ApDropObjects),
6378            "AP_SetObjects" => Some(Self::ApSetObjects),
6379            _ => None,
6380        }
6381    }
6382}
6383#[derive(serde::Serialize)]
6384#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6385#[repr(i32)]
6386pub enum AlterSubscriptionType {
6387    Undefined = 0,
6388    AlterSubscriptionOptions = 1,
6389    AlterSubscriptionConnection = 2,
6390    AlterSubscriptionSetPublication = 3,
6391    AlterSubscriptionAddPublication = 4,
6392    AlterSubscriptionDropPublication = 5,
6393    AlterSubscriptionRefresh = 6,
6394    AlterSubscriptionEnabled = 7,
6395    AlterSubscriptionSkip = 8,
6396}
6397impl AlterSubscriptionType {
6398    /// String value of the enum field names used in the ProtoBuf definition.
6399    ///
6400    /// The values are not transformed in any way and thus are considered stable
6401    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6402    pub fn as_str_name(&self) -> &'static str {
6403        match self {
6404            Self::Undefined => "ALTER_SUBSCRIPTION_TYPE_UNDEFINED",
6405            Self::AlterSubscriptionOptions => "ALTER_SUBSCRIPTION_OPTIONS",
6406            Self::AlterSubscriptionConnection => "ALTER_SUBSCRIPTION_CONNECTION",
6407            Self::AlterSubscriptionSetPublication => "ALTER_SUBSCRIPTION_SET_PUBLICATION",
6408            Self::AlterSubscriptionAddPublication => "ALTER_SUBSCRIPTION_ADD_PUBLICATION",
6409            Self::AlterSubscriptionDropPublication => {
6410                "ALTER_SUBSCRIPTION_DROP_PUBLICATION"
6411            }
6412            Self::AlterSubscriptionRefresh => "ALTER_SUBSCRIPTION_REFRESH",
6413            Self::AlterSubscriptionEnabled => "ALTER_SUBSCRIPTION_ENABLED",
6414            Self::AlterSubscriptionSkip => "ALTER_SUBSCRIPTION_SKIP",
6415        }
6416    }
6417    /// Creates an enum from field names used in the ProtoBuf definition.
6418    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6419        match value {
6420            "ALTER_SUBSCRIPTION_TYPE_UNDEFINED" => Some(Self::Undefined),
6421            "ALTER_SUBSCRIPTION_OPTIONS" => Some(Self::AlterSubscriptionOptions),
6422            "ALTER_SUBSCRIPTION_CONNECTION" => Some(Self::AlterSubscriptionConnection),
6423            "ALTER_SUBSCRIPTION_SET_PUBLICATION" => {
6424                Some(Self::AlterSubscriptionSetPublication)
6425            }
6426            "ALTER_SUBSCRIPTION_ADD_PUBLICATION" => {
6427                Some(Self::AlterSubscriptionAddPublication)
6428            }
6429            "ALTER_SUBSCRIPTION_DROP_PUBLICATION" => {
6430                Some(Self::AlterSubscriptionDropPublication)
6431            }
6432            "ALTER_SUBSCRIPTION_REFRESH" => Some(Self::AlterSubscriptionRefresh),
6433            "ALTER_SUBSCRIPTION_ENABLED" => Some(Self::AlterSubscriptionEnabled),
6434            "ALTER_SUBSCRIPTION_SKIP" => Some(Self::AlterSubscriptionSkip),
6435            _ => None,
6436        }
6437    }
6438}
6439#[derive(serde::Serialize)]
6440#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6441#[repr(i32)]
6442pub enum OverridingKind {
6443    Undefined = 0,
6444    OverridingNotSet = 1,
6445    OverridingUserValue = 2,
6446    OverridingSystemValue = 3,
6447}
6448impl OverridingKind {
6449    /// String value of the enum field names used in the ProtoBuf definition.
6450    ///
6451    /// The values are not transformed in any way and thus are considered stable
6452    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6453    pub fn as_str_name(&self) -> &'static str {
6454        match self {
6455            Self::Undefined => "OVERRIDING_KIND_UNDEFINED",
6456            Self::OverridingNotSet => "OVERRIDING_NOT_SET",
6457            Self::OverridingUserValue => "OVERRIDING_USER_VALUE",
6458            Self::OverridingSystemValue => "OVERRIDING_SYSTEM_VALUE",
6459        }
6460    }
6461    /// Creates an enum from field names used in the ProtoBuf definition.
6462    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6463        match value {
6464            "OVERRIDING_KIND_UNDEFINED" => Some(Self::Undefined),
6465            "OVERRIDING_NOT_SET" => Some(Self::OverridingNotSet),
6466            "OVERRIDING_USER_VALUE" => Some(Self::OverridingUserValue),
6467            "OVERRIDING_SYSTEM_VALUE" => Some(Self::OverridingSystemValue),
6468            _ => None,
6469        }
6470    }
6471}
6472#[derive(serde::Serialize)]
6473#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6474#[repr(i32)]
6475pub enum OnCommitAction {
6476    Undefined = 0,
6477    OncommitNoop = 1,
6478    OncommitPreserveRows = 2,
6479    OncommitDeleteRows = 3,
6480    OncommitDrop = 4,
6481}
6482impl OnCommitAction {
6483    /// String value of the enum field names used in the ProtoBuf definition.
6484    ///
6485    /// The values are not transformed in any way and thus are considered stable
6486    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6487    pub fn as_str_name(&self) -> &'static str {
6488        match self {
6489            Self::Undefined => "ON_COMMIT_ACTION_UNDEFINED",
6490            Self::OncommitNoop => "ONCOMMIT_NOOP",
6491            Self::OncommitPreserveRows => "ONCOMMIT_PRESERVE_ROWS",
6492            Self::OncommitDeleteRows => "ONCOMMIT_DELETE_ROWS",
6493            Self::OncommitDrop => "ONCOMMIT_DROP",
6494        }
6495    }
6496    /// Creates an enum from field names used in the ProtoBuf definition.
6497    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6498        match value {
6499            "ON_COMMIT_ACTION_UNDEFINED" => Some(Self::Undefined),
6500            "ONCOMMIT_NOOP" => Some(Self::OncommitNoop),
6501            "ONCOMMIT_PRESERVE_ROWS" => Some(Self::OncommitPreserveRows),
6502            "ONCOMMIT_DELETE_ROWS" => Some(Self::OncommitDeleteRows),
6503            "ONCOMMIT_DROP" => Some(Self::OncommitDrop),
6504            _ => None,
6505        }
6506    }
6507}
6508#[derive(serde::Serialize)]
6509#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6510#[repr(i32)]
6511pub enum TableFuncType {
6512    Undefined = 0,
6513    TftXmltable = 1,
6514    TftJsonTable = 2,
6515}
6516impl TableFuncType {
6517    /// String value of the enum field names used in the ProtoBuf definition.
6518    ///
6519    /// The values are not transformed in any way and thus are considered stable
6520    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6521    pub fn as_str_name(&self) -> &'static str {
6522        match self {
6523            Self::Undefined => "TABLE_FUNC_TYPE_UNDEFINED",
6524            Self::TftXmltable => "TFT_XMLTABLE",
6525            Self::TftJsonTable => "TFT_JSON_TABLE",
6526        }
6527    }
6528    /// Creates an enum from field names used in the ProtoBuf definition.
6529    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6530        match value {
6531            "TABLE_FUNC_TYPE_UNDEFINED" => Some(Self::Undefined),
6532            "TFT_XMLTABLE" => Some(Self::TftXmltable),
6533            "TFT_JSON_TABLE" => Some(Self::TftJsonTable),
6534            _ => None,
6535        }
6536    }
6537}
6538#[derive(serde::Serialize)]
6539#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6540#[repr(i32)]
6541pub enum VarReturningType {
6542    Undefined = 0,
6543    VarReturningDefault = 1,
6544    VarReturningOld = 2,
6545    VarReturningNew = 3,
6546}
6547impl VarReturningType {
6548    /// String value of the enum field names used in the ProtoBuf definition.
6549    ///
6550    /// The values are not transformed in any way and thus are considered stable
6551    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6552    pub fn as_str_name(&self) -> &'static str {
6553        match self {
6554            Self::Undefined => "VAR_RETURNING_TYPE_UNDEFINED",
6555            Self::VarReturningDefault => "VAR_RETURNING_DEFAULT",
6556            Self::VarReturningOld => "VAR_RETURNING_OLD",
6557            Self::VarReturningNew => "VAR_RETURNING_NEW",
6558        }
6559    }
6560    /// Creates an enum from field names used in the ProtoBuf definition.
6561    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6562        match value {
6563            "VAR_RETURNING_TYPE_UNDEFINED" => Some(Self::Undefined),
6564            "VAR_RETURNING_DEFAULT" => Some(Self::VarReturningDefault),
6565            "VAR_RETURNING_OLD" => Some(Self::VarReturningOld),
6566            "VAR_RETURNING_NEW" => Some(Self::VarReturningNew),
6567            _ => None,
6568        }
6569    }
6570}
6571#[derive(serde::Serialize)]
6572#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6573#[repr(i32)]
6574pub enum ParamKind {
6575    Undefined = 0,
6576    ParamExtern = 1,
6577    ParamExec = 2,
6578    ParamSublink = 3,
6579    ParamMultiexpr = 4,
6580}
6581impl ParamKind {
6582    /// String value of the enum field names used in the ProtoBuf definition.
6583    ///
6584    /// The values are not transformed in any way and thus are considered stable
6585    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6586    pub fn as_str_name(&self) -> &'static str {
6587        match self {
6588            Self::Undefined => "PARAM_KIND_UNDEFINED",
6589            Self::ParamExtern => "PARAM_EXTERN",
6590            Self::ParamExec => "PARAM_EXEC",
6591            Self::ParamSublink => "PARAM_SUBLINK",
6592            Self::ParamMultiexpr => "PARAM_MULTIEXPR",
6593        }
6594    }
6595    /// Creates an enum from field names used in the ProtoBuf definition.
6596    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6597        match value {
6598            "PARAM_KIND_UNDEFINED" => Some(Self::Undefined),
6599            "PARAM_EXTERN" => Some(Self::ParamExtern),
6600            "PARAM_EXEC" => Some(Self::ParamExec),
6601            "PARAM_SUBLINK" => Some(Self::ParamSublink),
6602            "PARAM_MULTIEXPR" => Some(Self::ParamMultiexpr),
6603            _ => None,
6604        }
6605    }
6606}
6607#[derive(serde::Serialize)]
6608#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6609#[repr(i32)]
6610pub enum CoercionContext {
6611    Undefined = 0,
6612    CoercionImplicit = 1,
6613    CoercionAssignment = 2,
6614    CoercionPlpgsql = 3,
6615    CoercionExplicit = 4,
6616}
6617impl CoercionContext {
6618    /// String value of the enum field names used in the ProtoBuf definition.
6619    ///
6620    /// The values are not transformed in any way and thus are considered stable
6621    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6622    pub fn as_str_name(&self) -> &'static str {
6623        match self {
6624            Self::Undefined => "COERCION_CONTEXT_UNDEFINED",
6625            Self::CoercionImplicit => "COERCION_IMPLICIT",
6626            Self::CoercionAssignment => "COERCION_ASSIGNMENT",
6627            Self::CoercionPlpgsql => "COERCION_PLPGSQL",
6628            Self::CoercionExplicit => "COERCION_EXPLICIT",
6629        }
6630    }
6631    /// Creates an enum from field names used in the ProtoBuf definition.
6632    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6633        match value {
6634            "COERCION_CONTEXT_UNDEFINED" => Some(Self::Undefined),
6635            "COERCION_IMPLICIT" => Some(Self::CoercionImplicit),
6636            "COERCION_ASSIGNMENT" => Some(Self::CoercionAssignment),
6637            "COERCION_PLPGSQL" => Some(Self::CoercionPlpgsql),
6638            "COERCION_EXPLICIT" => Some(Self::CoercionExplicit),
6639            _ => None,
6640        }
6641    }
6642}
6643#[derive(serde::Serialize)]
6644#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6645#[repr(i32)]
6646pub enum CoercionForm {
6647    Undefined = 0,
6648    CoerceExplicitCall = 1,
6649    CoerceExplicitCast = 2,
6650    CoerceImplicitCast = 3,
6651    CoerceSqlSyntax = 4,
6652}
6653impl CoercionForm {
6654    /// String value of the enum field names used in the ProtoBuf definition.
6655    ///
6656    /// The values are not transformed in any way and thus are considered stable
6657    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6658    pub fn as_str_name(&self) -> &'static str {
6659        match self {
6660            Self::Undefined => "COERCION_FORM_UNDEFINED",
6661            Self::CoerceExplicitCall => "COERCE_EXPLICIT_CALL",
6662            Self::CoerceExplicitCast => "COERCE_EXPLICIT_CAST",
6663            Self::CoerceImplicitCast => "COERCE_IMPLICIT_CAST",
6664            Self::CoerceSqlSyntax => "COERCE_SQL_SYNTAX",
6665        }
6666    }
6667    /// Creates an enum from field names used in the ProtoBuf definition.
6668    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6669        match value {
6670            "COERCION_FORM_UNDEFINED" => Some(Self::Undefined),
6671            "COERCE_EXPLICIT_CALL" => Some(Self::CoerceExplicitCall),
6672            "COERCE_EXPLICIT_CAST" => Some(Self::CoerceExplicitCast),
6673            "COERCE_IMPLICIT_CAST" => Some(Self::CoerceImplicitCast),
6674            "COERCE_SQL_SYNTAX" => Some(Self::CoerceSqlSyntax),
6675            _ => None,
6676        }
6677    }
6678}
6679#[derive(serde::Serialize)]
6680#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6681#[repr(i32)]
6682pub enum BoolExprType {
6683    Undefined = 0,
6684    AndExpr = 1,
6685    OrExpr = 2,
6686    NotExpr = 3,
6687}
6688impl BoolExprType {
6689    /// String value of the enum field names used in the ProtoBuf definition.
6690    ///
6691    /// The values are not transformed in any way and thus are considered stable
6692    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6693    pub fn as_str_name(&self) -> &'static str {
6694        match self {
6695            Self::Undefined => "BOOL_EXPR_TYPE_UNDEFINED",
6696            Self::AndExpr => "AND_EXPR",
6697            Self::OrExpr => "OR_EXPR",
6698            Self::NotExpr => "NOT_EXPR",
6699        }
6700    }
6701    /// Creates an enum from field names used in the ProtoBuf definition.
6702    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6703        match value {
6704            "BOOL_EXPR_TYPE_UNDEFINED" => Some(Self::Undefined),
6705            "AND_EXPR" => Some(Self::AndExpr),
6706            "OR_EXPR" => Some(Self::OrExpr),
6707            "NOT_EXPR" => Some(Self::NotExpr),
6708            _ => None,
6709        }
6710    }
6711}
6712#[derive(serde::Serialize)]
6713#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6714#[repr(i32)]
6715pub enum SubLinkType {
6716    Undefined = 0,
6717    ExistsSublink = 1,
6718    AllSublink = 2,
6719    AnySublink = 3,
6720    RowcompareSublink = 4,
6721    ExprSublink = 5,
6722    MultiexprSublink = 6,
6723    ArraySublink = 7,
6724    CteSublink = 8,
6725}
6726impl SubLinkType {
6727    /// String value of the enum field names used in the ProtoBuf definition.
6728    ///
6729    /// The values are not transformed in any way and thus are considered stable
6730    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6731    pub fn as_str_name(&self) -> &'static str {
6732        match self {
6733            Self::Undefined => "SUB_LINK_TYPE_UNDEFINED",
6734            Self::ExistsSublink => "EXISTS_SUBLINK",
6735            Self::AllSublink => "ALL_SUBLINK",
6736            Self::AnySublink => "ANY_SUBLINK",
6737            Self::RowcompareSublink => "ROWCOMPARE_SUBLINK",
6738            Self::ExprSublink => "EXPR_SUBLINK",
6739            Self::MultiexprSublink => "MULTIEXPR_SUBLINK",
6740            Self::ArraySublink => "ARRAY_SUBLINK",
6741            Self::CteSublink => "CTE_SUBLINK",
6742        }
6743    }
6744    /// Creates an enum from field names used in the ProtoBuf definition.
6745    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6746        match value {
6747            "SUB_LINK_TYPE_UNDEFINED" => Some(Self::Undefined),
6748            "EXISTS_SUBLINK" => Some(Self::ExistsSublink),
6749            "ALL_SUBLINK" => Some(Self::AllSublink),
6750            "ANY_SUBLINK" => Some(Self::AnySublink),
6751            "ROWCOMPARE_SUBLINK" => Some(Self::RowcompareSublink),
6752            "EXPR_SUBLINK" => Some(Self::ExprSublink),
6753            "MULTIEXPR_SUBLINK" => Some(Self::MultiexprSublink),
6754            "ARRAY_SUBLINK" => Some(Self::ArraySublink),
6755            "CTE_SUBLINK" => Some(Self::CteSublink),
6756            _ => None,
6757        }
6758    }
6759}
6760#[derive(serde::Serialize)]
6761#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6762#[repr(i32)]
6763pub enum MinMaxOp {
6764    Undefined = 0,
6765    IsGreatest = 1,
6766    IsLeast = 2,
6767}
6768impl MinMaxOp {
6769    /// String value of the enum field names used in the ProtoBuf definition.
6770    ///
6771    /// The values are not transformed in any way and thus are considered stable
6772    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6773    pub fn as_str_name(&self) -> &'static str {
6774        match self {
6775            Self::Undefined => "MIN_MAX_OP_UNDEFINED",
6776            Self::IsGreatest => "IS_GREATEST",
6777            Self::IsLeast => "IS_LEAST",
6778        }
6779    }
6780    /// Creates an enum from field names used in the ProtoBuf definition.
6781    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6782        match value {
6783            "MIN_MAX_OP_UNDEFINED" => Some(Self::Undefined),
6784            "IS_GREATEST" => Some(Self::IsGreatest),
6785            "IS_LEAST" => Some(Self::IsLeast),
6786            _ => None,
6787        }
6788    }
6789}
6790#[derive(serde::Serialize)]
6791#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6792#[repr(i32)]
6793pub enum SqlValueFunctionOp {
6794    SqlvalueFunctionOpUndefined = 0,
6795    SvfopCurrentDate = 1,
6796    SvfopCurrentTime = 2,
6797    SvfopCurrentTimeN = 3,
6798    SvfopCurrentTimestamp = 4,
6799    SvfopCurrentTimestampN = 5,
6800    SvfopLocaltime = 6,
6801    SvfopLocaltimeN = 7,
6802    SvfopLocaltimestamp = 8,
6803    SvfopLocaltimestampN = 9,
6804    SvfopCurrentRole = 10,
6805    SvfopCurrentUser = 11,
6806    SvfopUser = 12,
6807    SvfopSessionUser = 13,
6808    SvfopCurrentCatalog = 14,
6809    SvfopCurrentSchema = 15,
6810}
6811impl SqlValueFunctionOp {
6812    /// String value of the enum field names used in the ProtoBuf definition.
6813    ///
6814    /// The values are not transformed in any way and thus are considered stable
6815    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6816    pub fn as_str_name(&self) -> &'static str {
6817        match self {
6818            Self::SqlvalueFunctionOpUndefined => "SQLVALUE_FUNCTION_OP_UNDEFINED",
6819            Self::SvfopCurrentDate => "SVFOP_CURRENT_DATE",
6820            Self::SvfopCurrentTime => "SVFOP_CURRENT_TIME",
6821            Self::SvfopCurrentTimeN => "SVFOP_CURRENT_TIME_N",
6822            Self::SvfopCurrentTimestamp => "SVFOP_CURRENT_TIMESTAMP",
6823            Self::SvfopCurrentTimestampN => "SVFOP_CURRENT_TIMESTAMP_N",
6824            Self::SvfopLocaltime => "SVFOP_LOCALTIME",
6825            Self::SvfopLocaltimeN => "SVFOP_LOCALTIME_N",
6826            Self::SvfopLocaltimestamp => "SVFOP_LOCALTIMESTAMP",
6827            Self::SvfopLocaltimestampN => "SVFOP_LOCALTIMESTAMP_N",
6828            Self::SvfopCurrentRole => "SVFOP_CURRENT_ROLE",
6829            Self::SvfopCurrentUser => "SVFOP_CURRENT_USER",
6830            Self::SvfopUser => "SVFOP_USER",
6831            Self::SvfopSessionUser => "SVFOP_SESSION_USER",
6832            Self::SvfopCurrentCatalog => "SVFOP_CURRENT_CATALOG",
6833            Self::SvfopCurrentSchema => "SVFOP_CURRENT_SCHEMA",
6834        }
6835    }
6836    /// Creates an enum from field names used in the ProtoBuf definition.
6837    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6838        match value {
6839            "SQLVALUE_FUNCTION_OP_UNDEFINED" => Some(Self::SqlvalueFunctionOpUndefined),
6840            "SVFOP_CURRENT_DATE" => Some(Self::SvfopCurrentDate),
6841            "SVFOP_CURRENT_TIME" => Some(Self::SvfopCurrentTime),
6842            "SVFOP_CURRENT_TIME_N" => Some(Self::SvfopCurrentTimeN),
6843            "SVFOP_CURRENT_TIMESTAMP" => Some(Self::SvfopCurrentTimestamp),
6844            "SVFOP_CURRENT_TIMESTAMP_N" => Some(Self::SvfopCurrentTimestampN),
6845            "SVFOP_LOCALTIME" => Some(Self::SvfopLocaltime),
6846            "SVFOP_LOCALTIME_N" => Some(Self::SvfopLocaltimeN),
6847            "SVFOP_LOCALTIMESTAMP" => Some(Self::SvfopLocaltimestamp),
6848            "SVFOP_LOCALTIMESTAMP_N" => Some(Self::SvfopLocaltimestampN),
6849            "SVFOP_CURRENT_ROLE" => Some(Self::SvfopCurrentRole),
6850            "SVFOP_CURRENT_USER" => Some(Self::SvfopCurrentUser),
6851            "SVFOP_USER" => Some(Self::SvfopUser),
6852            "SVFOP_SESSION_USER" => Some(Self::SvfopSessionUser),
6853            "SVFOP_CURRENT_CATALOG" => Some(Self::SvfopCurrentCatalog),
6854            "SVFOP_CURRENT_SCHEMA" => Some(Self::SvfopCurrentSchema),
6855            _ => None,
6856        }
6857    }
6858}
6859#[derive(serde::Serialize)]
6860#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6861#[repr(i32)]
6862pub enum XmlExprOp {
6863    Undefined = 0,
6864    IsXmlconcat = 1,
6865    IsXmlelement = 2,
6866    IsXmlforest = 3,
6867    IsXmlparse = 4,
6868    IsXmlpi = 5,
6869    IsXmlroot = 6,
6870    IsXmlserialize = 7,
6871    IsDocument = 8,
6872}
6873impl XmlExprOp {
6874    /// String value of the enum field names used in the ProtoBuf definition.
6875    ///
6876    /// The values are not transformed in any way and thus are considered stable
6877    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6878    pub fn as_str_name(&self) -> &'static str {
6879        match self {
6880            Self::Undefined => "XML_EXPR_OP_UNDEFINED",
6881            Self::IsXmlconcat => "IS_XMLCONCAT",
6882            Self::IsXmlelement => "IS_XMLELEMENT",
6883            Self::IsXmlforest => "IS_XMLFOREST",
6884            Self::IsXmlparse => "IS_XMLPARSE",
6885            Self::IsXmlpi => "IS_XMLPI",
6886            Self::IsXmlroot => "IS_XMLROOT",
6887            Self::IsXmlserialize => "IS_XMLSERIALIZE",
6888            Self::IsDocument => "IS_DOCUMENT",
6889        }
6890    }
6891    /// Creates an enum from field names used in the ProtoBuf definition.
6892    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6893        match value {
6894            "XML_EXPR_OP_UNDEFINED" => Some(Self::Undefined),
6895            "IS_XMLCONCAT" => Some(Self::IsXmlconcat),
6896            "IS_XMLELEMENT" => Some(Self::IsXmlelement),
6897            "IS_XMLFOREST" => Some(Self::IsXmlforest),
6898            "IS_XMLPARSE" => Some(Self::IsXmlparse),
6899            "IS_XMLPI" => Some(Self::IsXmlpi),
6900            "IS_XMLROOT" => Some(Self::IsXmlroot),
6901            "IS_XMLSERIALIZE" => Some(Self::IsXmlserialize),
6902            "IS_DOCUMENT" => Some(Self::IsDocument),
6903            _ => None,
6904        }
6905    }
6906}
6907#[derive(serde::Serialize)]
6908#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6909#[repr(i32)]
6910pub enum XmlOptionType {
6911    Undefined = 0,
6912    XmloptionDocument = 1,
6913    XmloptionContent = 2,
6914}
6915impl XmlOptionType {
6916    /// String value of the enum field names used in the ProtoBuf definition.
6917    ///
6918    /// The values are not transformed in any way and thus are considered stable
6919    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6920    pub fn as_str_name(&self) -> &'static str {
6921        match self {
6922            Self::Undefined => "XML_OPTION_TYPE_UNDEFINED",
6923            Self::XmloptionDocument => "XMLOPTION_DOCUMENT",
6924            Self::XmloptionContent => "XMLOPTION_CONTENT",
6925        }
6926    }
6927    /// Creates an enum from field names used in the ProtoBuf definition.
6928    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6929        match value {
6930            "XML_OPTION_TYPE_UNDEFINED" => Some(Self::Undefined),
6931            "XMLOPTION_DOCUMENT" => Some(Self::XmloptionDocument),
6932            "XMLOPTION_CONTENT" => Some(Self::XmloptionContent),
6933            _ => None,
6934        }
6935    }
6936}
6937#[derive(serde::Serialize)]
6938#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6939#[repr(i32)]
6940pub enum JsonEncoding {
6941    Undefined = 0,
6942    JsEncDefault = 1,
6943    JsEncUtf8 = 2,
6944    JsEncUtf16 = 3,
6945    JsEncUtf32 = 4,
6946}
6947impl JsonEncoding {
6948    /// String value of the enum field names used in the ProtoBuf definition.
6949    ///
6950    /// The values are not transformed in any way and thus are considered stable
6951    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6952    pub fn as_str_name(&self) -> &'static str {
6953        match self {
6954            Self::Undefined => "JSON_ENCODING_UNDEFINED",
6955            Self::JsEncDefault => "JS_ENC_DEFAULT",
6956            Self::JsEncUtf8 => "JS_ENC_UTF8",
6957            Self::JsEncUtf16 => "JS_ENC_UTF16",
6958            Self::JsEncUtf32 => "JS_ENC_UTF32",
6959        }
6960    }
6961    /// Creates an enum from field names used in the ProtoBuf definition.
6962    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6963        match value {
6964            "JSON_ENCODING_UNDEFINED" => Some(Self::Undefined),
6965            "JS_ENC_DEFAULT" => Some(Self::JsEncDefault),
6966            "JS_ENC_UTF8" => Some(Self::JsEncUtf8),
6967            "JS_ENC_UTF16" => Some(Self::JsEncUtf16),
6968            "JS_ENC_UTF32" => Some(Self::JsEncUtf32),
6969            _ => None,
6970        }
6971    }
6972}
6973#[derive(serde::Serialize)]
6974#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6975#[repr(i32)]
6976pub enum JsonFormatType {
6977    Undefined = 0,
6978    JsFormatDefault = 1,
6979    JsFormatJson = 2,
6980    JsFormatJsonb = 3,
6981}
6982impl JsonFormatType {
6983    /// String value of the enum field names used in the ProtoBuf definition.
6984    ///
6985    /// The values are not transformed in any way and thus are considered stable
6986    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
6987    pub fn as_str_name(&self) -> &'static str {
6988        match self {
6989            Self::Undefined => "JSON_FORMAT_TYPE_UNDEFINED",
6990            Self::JsFormatDefault => "JS_FORMAT_DEFAULT",
6991            Self::JsFormatJson => "JS_FORMAT_JSON",
6992            Self::JsFormatJsonb => "JS_FORMAT_JSONB",
6993        }
6994    }
6995    /// Creates an enum from field names used in the ProtoBuf definition.
6996    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
6997        match value {
6998            "JSON_FORMAT_TYPE_UNDEFINED" => Some(Self::Undefined),
6999            "JS_FORMAT_DEFAULT" => Some(Self::JsFormatDefault),
7000            "JS_FORMAT_JSON" => Some(Self::JsFormatJson),
7001            "JS_FORMAT_JSONB" => Some(Self::JsFormatJsonb),
7002            _ => None,
7003        }
7004    }
7005}
7006#[derive(serde::Serialize)]
7007#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7008#[repr(i32)]
7009pub enum JsonConstructorType {
7010    Undefined = 0,
7011    JsctorJsonObject = 1,
7012    JsctorJsonArray = 2,
7013    JsctorJsonObjectagg = 3,
7014    JsctorJsonArrayagg = 4,
7015    JsctorJsonParse = 5,
7016    JsctorJsonScalar = 6,
7017    JsctorJsonSerialize = 7,
7018}
7019impl JsonConstructorType {
7020    /// String value of the enum field names used in the ProtoBuf definition.
7021    ///
7022    /// The values are not transformed in any way and thus are considered stable
7023    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7024    pub fn as_str_name(&self) -> &'static str {
7025        match self {
7026            Self::Undefined => "JSON_CONSTRUCTOR_TYPE_UNDEFINED",
7027            Self::JsctorJsonObject => "JSCTOR_JSON_OBJECT",
7028            Self::JsctorJsonArray => "JSCTOR_JSON_ARRAY",
7029            Self::JsctorJsonObjectagg => "JSCTOR_JSON_OBJECTAGG",
7030            Self::JsctorJsonArrayagg => "JSCTOR_JSON_ARRAYAGG",
7031            Self::JsctorJsonParse => "JSCTOR_JSON_PARSE",
7032            Self::JsctorJsonScalar => "JSCTOR_JSON_SCALAR",
7033            Self::JsctorJsonSerialize => "JSCTOR_JSON_SERIALIZE",
7034        }
7035    }
7036    /// Creates an enum from field names used in the ProtoBuf definition.
7037    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7038        match value {
7039            "JSON_CONSTRUCTOR_TYPE_UNDEFINED" => Some(Self::Undefined),
7040            "JSCTOR_JSON_OBJECT" => Some(Self::JsctorJsonObject),
7041            "JSCTOR_JSON_ARRAY" => Some(Self::JsctorJsonArray),
7042            "JSCTOR_JSON_OBJECTAGG" => Some(Self::JsctorJsonObjectagg),
7043            "JSCTOR_JSON_ARRAYAGG" => Some(Self::JsctorJsonArrayagg),
7044            "JSCTOR_JSON_PARSE" => Some(Self::JsctorJsonParse),
7045            "JSCTOR_JSON_SCALAR" => Some(Self::JsctorJsonScalar),
7046            "JSCTOR_JSON_SERIALIZE" => Some(Self::JsctorJsonSerialize),
7047            _ => None,
7048        }
7049    }
7050}
7051#[derive(serde::Serialize)]
7052#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7053#[repr(i32)]
7054pub enum JsonValueType {
7055    Undefined = 0,
7056    JsTypeAny = 1,
7057    JsTypeObject = 2,
7058    JsTypeArray = 3,
7059    JsTypeScalar = 4,
7060}
7061impl JsonValueType {
7062    /// String value of the enum field names used in the ProtoBuf definition.
7063    ///
7064    /// The values are not transformed in any way and thus are considered stable
7065    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7066    pub fn as_str_name(&self) -> &'static str {
7067        match self {
7068            Self::Undefined => "JSON_VALUE_TYPE_UNDEFINED",
7069            Self::JsTypeAny => "JS_TYPE_ANY",
7070            Self::JsTypeObject => "JS_TYPE_OBJECT",
7071            Self::JsTypeArray => "JS_TYPE_ARRAY",
7072            Self::JsTypeScalar => "JS_TYPE_SCALAR",
7073        }
7074    }
7075    /// Creates an enum from field names used in the ProtoBuf definition.
7076    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7077        match value {
7078            "JSON_VALUE_TYPE_UNDEFINED" => Some(Self::Undefined),
7079            "JS_TYPE_ANY" => Some(Self::JsTypeAny),
7080            "JS_TYPE_OBJECT" => Some(Self::JsTypeObject),
7081            "JS_TYPE_ARRAY" => Some(Self::JsTypeArray),
7082            "JS_TYPE_SCALAR" => Some(Self::JsTypeScalar),
7083            _ => None,
7084        }
7085    }
7086}
7087#[derive(serde::Serialize)]
7088#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7089#[repr(i32)]
7090pub enum JsonWrapper {
7091    Undefined = 0,
7092    JswUnspec = 1,
7093    JswNone = 2,
7094    JswConditional = 3,
7095    JswUnconditional = 4,
7096}
7097impl JsonWrapper {
7098    /// String value of the enum field names used in the ProtoBuf definition.
7099    ///
7100    /// The values are not transformed in any way and thus are considered stable
7101    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7102    pub fn as_str_name(&self) -> &'static str {
7103        match self {
7104            Self::Undefined => "JSON_WRAPPER_UNDEFINED",
7105            Self::JswUnspec => "JSW_UNSPEC",
7106            Self::JswNone => "JSW_NONE",
7107            Self::JswConditional => "JSW_CONDITIONAL",
7108            Self::JswUnconditional => "JSW_UNCONDITIONAL",
7109        }
7110    }
7111    /// Creates an enum from field names used in the ProtoBuf definition.
7112    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7113        match value {
7114            "JSON_WRAPPER_UNDEFINED" => Some(Self::Undefined),
7115            "JSW_UNSPEC" => Some(Self::JswUnspec),
7116            "JSW_NONE" => Some(Self::JswNone),
7117            "JSW_CONDITIONAL" => Some(Self::JswConditional),
7118            "JSW_UNCONDITIONAL" => Some(Self::JswUnconditional),
7119            _ => None,
7120        }
7121    }
7122}
7123#[derive(serde::Serialize)]
7124#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7125#[repr(i32)]
7126pub enum JsonBehaviorType {
7127    Undefined = 0,
7128    JsonBehaviorNull = 1,
7129    JsonBehaviorError = 2,
7130    JsonBehaviorEmpty = 3,
7131    JsonBehaviorTrue = 4,
7132    JsonBehaviorFalse = 5,
7133    JsonBehaviorUnknown = 6,
7134    JsonBehaviorEmptyArray = 7,
7135    JsonBehaviorEmptyObject = 8,
7136    JsonBehaviorDefault = 9,
7137}
7138impl JsonBehaviorType {
7139    /// String value of the enum field names used in the ProtoBuf definition.
7140    ///
7141    /// The values are not transformed in any way and thus are considered stable
7142    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7143    pub fn as_str_name(&self) -> &'static str {
7144        match self {
7145            Self::Undefined => "JSON_BEHAVIOR_TYPE_UNDEFINED",
7146            Self::JsonBehaviorNull => "JSON_BEHAVIOR_NULL",
7147            Self::JsonBehaviorError => "JSON_BEHAVIOR_ERROR",
7148            Self::JsonBehaviorEmpty => "JSON_BEHAVIOR_EMPTY",
7149            Self::JsonBehaviorTrue => "JSON_BEHAVIOR_TRUE",
7150            Self::JsonBehaviorFalse => "JSON_BEHAVIOR_FALSE",
7151            Self::JsonBehaviorUnknown => "JSON_BEHAVIOR_UNKNOWN",
7152            Self::JsonBehaviorEmptyArray => "JSON_BEHAVIOR_EMPTY_ARRAY",
7153            Self::JsonBehaviorEmptyObject => "JSON_BEHAVIOR_EMPTY_OBJECT",
7154            Self::JsonBehaviorDefault => "JSON_BEHAVIOR_DEFAULT",
7155        }
7156    }
7157    /// Creates an enum from field names used in the ProtoBuf definition.
7158    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7159        match value {
7160            "JSON_BEHAVIOR_TYPE_UNDEFINED" => Some(Self::Undefined),
7161            "JSON_BEHAVIOR_NULL" => Some(Self::JsonBehaviorNull),
7162            "JSON_BEHAVIOR_ERROR" => Some(Self::JsonBehaviorError),
7163            "JSON_BEHAVIOR_EMPTY" => Some(Self::JsonBehaviorEmpty),
7164            "JSON_BEHAVIOR_TRUE" => Some(Self::JsonBehaviorTrue),
7165            "JSON_BEHAVIOR_FALSE" => Some(Self::JsonBehaviorFalse),
7166            "JSON_BEHAVIOR_UNKNOWN" => Some(Self::JsonBehaviorUnknown),
7167            "JSON_BEHAVIOR_EMPTY_ARRAY" => Some(Self::JsonBehaviorEmptyArray),
7168            "JSON_BEHAVIOR_EMPTY_OBJECT" => Some(Self::JsonBehaviorEmptyObject),
7169            "JSON_BEHAVIOR_DEFAULT" => Some(Self::JsonBehaviorDefault),
7170            _ => None,
7171        }
7172    }
7173}
7174#[derive(serde::Serialize)]
7175#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7176#[repr(i32)]
7177pub enum JsonExprOp {
7178    Undefined = 0,
7179    JsonExistsOp = 1,
7180    JsonQueryOp = 2,
7181    JsonValueOp = 3,
7182    JsonTableOp = 4,
7183}
7184impl JsonExprOp {
7185    /// String value of the enum field names used in the ProtoBuf definition.
7186    ///
7187    /// The values are not transformed in any way and thus are considered stable
7188    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7189    pub fn as_str_name(&self) -> &'static str {
7190        match self {
7191            Self::Undefined => "JSON_EXPR_OP_UNDEFINED",
7192            Self::JsonExistsOp => "JSON_EXISTS_OP",
7193            Self::JsonQueryOp => "JSON_QUERY_OP",
7194            Self::JsonValueOp => "JSON_VALUE_OP",
7195            Self::JsonTableOp => "JSON_TABLE_OP",
7196        }
7197    }
7198    /// Creates an enum from field names used in the ProtoBuf definition.
7199    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7200        match value {
7201            "JSON_EXPR_OP_UNDEFINED" => Some(Self::Undefined),
7202            "JSON_EXISTS_OP" => Some(Self::JsonExistsOp),
7203            "JSON_QUERY_OP" => Some(Self::JsonQueryOp),
7204            "JSON_VALUE_OP" => Some(Self::JsonValueOp),
7205            "JSON_TABLE_OP" => Some(Self::JsonTableOp),
7206            _ => None,
7207        }
7208    }
7209}
7210#[derive(serde::Serialize)]
7211#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7212#[repr(i32)]
7213pub enum NullTestType {
7214    Undefined = 0,
7215    IsNull = 1,
7216    IsNotNull = 2,
7217}
7218impl NullTestType {
7219    /// String value of the enum field names used in the ProtoBuf definition.
7220    ///
7221    /// The values are not transformed in any way and thus are considered stable
7222    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7223    pub fn as_str_name(&self) -> &'static str {
7224        match self {
7225            Self::Undefined => "NULL_TEST_TYPE_UNDEFINED",
7226            Self::IsNull => "IS_NULL",
7227            Self::IsNotNull => "IS_NOT_NULL",
7228        }
7229    }
7230    /// Creates an enum from field names used in the ProtoBuf definition.
7231    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7232        match value {
7233            "NULL_TEST_TYPE_UNDEFINED" => Some(Self::Undefined),
7234            "IS_NULL" => Some(Self::IsNull),
7235            "IS_NOT_NULL" => Some(Self::IsNotNull),
7236            _ => None,
7237        }
7238    }
7239}
7240#[derive(serde::Serialize)]
7241#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7242#[repr(i32)]
7243pub enum BoolTestType {
7244    Undefined = 0,
7245    IsTrue = 1,
7246    IsNotTrue = 2,
7247    IsFalse = 3,
7248    IsNotFalse = 4,
7249    IsUnknown = 5,
7250    IsNotUnknown = 6,
7251}
7252impl BoolTestType {
7253    /// String value of the enum field names used in the ProtoBuf definition.
7254    ///
7255    /// The values are not transformed in any way and thus are considered stable
7256    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7257    pub fn as_str_name(&self) -> &'static str {
7258        match self {
7259            Self::Undefined => "BOOL_TEST_TYPE_UNDEFINED",
7260            Self::IsTrue => "IS_TRUE",
7261            Self::IsNotTrue => "IS_NOT_TRUE",
7262            Self::IsFalse => "IS_FALSE",
7263            Self::IsNotFalse => "IS_NOT_FALSE",
7264            Self::IsUnknown => "IS_UNKNOWN",
7265            Self::IsNotUnknown => "IS_NOT_UNKNOWN",
7266        }
7267    }
7268    /// Creates an enum from field names used in the ProtoBuf definition.
7269    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7270        match value {
7271            "BOOL_TEST_TYPE_UNDEFINED" => Some(Self::Undefined),
7272            "IS_TRUE" => Some(Self::IsTrue),
7273            "IS_NOT_TRUE" => Some(Self::IsNotTrue),
7274            "IS_FALSE" => Some(Self::IsFalse),
7275            "IS_NOT_FALSE" => Some(Self::IsNotFalse),
7276            "IS_UNKNOWN" => Some(Self::IsUnknown),
7277            "IS_NOT_UNKNOWN" => Some(Self::IsNotUnknown),
7278            _ => None,
7279        }
7280    }
7281}
7282#[derive(serde::Serialize)]
7283#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7284#[repr(i32)]
7285pub enum MergeMatchKind {
7286    Undefined = 0,
7287    MergeWhenMatched = 1,
7288    MergeWhenNotMatchedBySource = 2,
7289    MergeWhenNotMatchedByTarget = 3,
7290}
7291impl MergeMatchKind {
7292    /// String value of the enum field names used in the ProtoBuf definition.
7293    ///
7294    /// The values are not transformed in any way and thus are considered stable
7295    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7296    pub fn as_str_name(&self) -> &'static str {
7297        match self {
7298            Self::Undefined => "MERGE_MATCH_KIND_UNDEFINED",
7299            Self::MergeWhenMatched => "MERGE_WHEN_MATCHED",
7300            Self::MergeWhenNotMatchedBySource => "MERGE_WHEN_NOT_MATCHED_BY_SOURCE",
7301            Self::MergeWhenNotMatchedByTarget => "MERGE_WHEN_NOT_MATCHED_BY_TARGET",
7302        }
7303    }
7304    /// Creates an enum from field names used in the ProtoBuf definition.
7305    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7306        match value {
7307            "MERGE_MATCH_KIND_UNDEFINED" => Some(Self::Undefined),
7308            "MERGE_WHEN_MATCHED" => Some(Self::MergeWhenMatched),
7309            "MERGE_WHEN_NOT_MATCHED_BY_SOURCE" => Some(Self::MergeWhenNotMatchedBySource),
7310            "MERGE_WHEN_NOT_MATCHED_BY_TARGET" => Some(Self::MergeWhenNotMatchedByTarget),
7311            _ => None,
7312        }
7313    }
7314}
7315#[derive(serde::Serialize)]
7316#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7317#[repr(i32)]
7318pub enum CmdType {
7319    Undefined = 0,
7320    CmdUnknown = 1,
7321    CmdSelect = 2,
7322    CmdUpdate = 3,
7323    CmdInsert = 4,
7324    CmdDelete = 5,
7325    CmdMerge = 6,
7326    CmdUtility = 7,
7327    CmdNothing = 8,
7328}
7329impl CmdType {
7330    /// String value of the enum field names used in the ProtoBuf definition.
7331    ///
7332    /// The values are not transformed in any way and thus are considered stable
7333    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7334    pub fn as_str_name(&self) -> &'static str {
7335        match self {
7336            Self::Undefined => "CMD_TYPE_UNDEFINED",
7337            Self::CmdUnknown => "CMD_UNKNOWN",
7338            Self::CmdSelect => "CMD_SELECT",
7339            Self::CmdUpdate => "CMD_UPDATE",
7340            Self::CmdInsert => "CMD_INSERT",
7341            Self::CmdDelete => "CMD_DELETE",
7342            Self::CmdMerge => "CMD_MERGE",
7343            Self::CmdUtility => "CMD_UTILITY",
7344            Self::CmdNothing => "CMD_NOTHING",
7345        }
7346    }
7347    /// Creates an enum from field names used in the ProtoBuf definition.
7348    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7349        match value {
7350            "CMD_TYPE_UNDEFINED" => Some(Self::Undefined),
7351            "CMD_UNKNOWN" => Some(Self::CmdUnknown),
7352            "CMD_SELECT" => Some(Self::CmdSelect),
7353            "CMD_UPDATE" => Some(Self::CmdUpdate),
7354            "CMD_INSERT" => Some(Self::CmdInsert),
7355            "CMD_DELETE" => Some(Self::CmdDelete),
7356            "CMD_MERGE" => Some(Self::CmdMerge),
7357            "CMD_UTILITY" => Some(Self::CmdUtility),
7358            "CMD_NOTHING" => Some(Self::CmdNothing),
7359            _ => None,
7360        }
7361    }
7362}
7363#[derive(serde::Serialize)]
7364#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7365#[repr(i32)]
7366pub enum JoinType {
7367    Undefined = 0,
7368    JoinInner = 1,
7369    JoinLeft = 2,
7370    JoinFull = 3,
7371    JoinRight = 4,
7372    JoinSemi = 5,
7373    JoinAnti = 6,
7374    JoinRightSemi = 7,
7375    JoinRightAnti = 8,
7376    JoinUniqueOuter = 9,
7377    JoinUniqueInner = 10,
7378}
7379impl JoinType {
7380    /// String value of the enum field names used in the ProtoBuf definition.
7381    ///
7382    /// The values are not transformed in any way and thus are considered stable
7383    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7384    pub fn as_str_name(&self) -> &'static str {
7385        match self {
7386            Self::Undefined => "JOIN_TYPE_UNDEFINED",
7387            Self::JoinInner => "JOIN_INNER",
7388            Self::JoinLeft => "JOIN_LEFT",
7389            Self::JoinFull => "JOIN_FULL",
7390            Self::JoinRight => "JOIN_RIGHT",
7391            Self::JoinSemi => "JOIN_SEMI",
7392            Self::JoinAnti => "JOIN_ANTI",
7393            Self::JoinRightSemi => "JOIN_RIGHT_SEMI",
7394            Self::JoinRightAnti => "JOIN_RIGHT_ANTI",
7395            Self::JoinUniqueOuter => "JOIN_UNIQUE_OUTER",
7396            Self::JoinUniqueInner => "JOIN_UNIQUE_INNER",
7397        }
7398    }
7399    /// Creates an enum from field names used in the ProtoBuf definition.
7400    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7401        match value {
7402            "JOIN_TYPE_UNDEFINED" => Some(Self::Undefined),
7403            "JOIN_INNER" => Some(Self::JoinInner),
7404            "JOIN_LEFT" => Some(Self::JoinLeft),
7405            "JOIN_FULL" => Some(Self::JoinFull),
7406            "JOIN_RIGHT" => Some(Self::JoinRight),
7407            "JOIN_SEMI" => Some(Self::JoinSemi),
7408            "JOIN_ANTI" => Some(Self::JoinAnti),
7409            "JOIN_RIGHT_SEMI" => Some(Self::JoinRightSemi),
7410            "JOIN_RIGHT_ANTI" => Some(Self::JoinRightAnti),
7411            "JOIN_UNIQUE_OUTER" => Some(Self::JoinUniqueOuter),
7412            "JOIN_UNIQUE_INNER" => Some(Self::JoinUniqueInner),
7413            _ => None,
7414        }
7415    }
7416}
7417#[derive(serde::Serialize)]
7418#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7419#[repr(i32)]
7420pub enum AggStrategy {
7421    Undefined = 0,
7422    AggPlain = 1,
7423    AggSorted = 2,
7424    AggHashed = 3,
7425    AggMixed = 4,
7426}
7427impl AggStrategy {
7428    /// String value of the enum field names used in the ProtoBuf definition.
7429    ///
7430    /// The values are not transformed in any way and thus are considered stable
7431    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7432    pub fn as_str_name(&self) -> &'static str {
7433        match self {
7434            Self::Undefined => "AGG_STRATEGY_UNDEFINED",
7435            Self::AggPlain => "AGG_PLAIN",
7436            Self::AggSorted => "AGG_SORTED",
7437            Self::AggHashed => "AGG_HASHED",
7438            Self::AggMixed => "AGG_MIXED",
7439        }
7440    }
7441    /// Creates an enum from field names used in the ProtoBuf definition.
7442    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7443        match value {
7444            "AGG_STRATEGY_UNDEFINED" => Some(Self::Undefined),
7445            "AGG_PLAIN" => Some(Self::AggPlain),
7446            "AGG_SORTED" => Some(Self::AggSorted),
7447            "AGG_HASHED" => Some(Self::AggHashed),
7448            "AGG_MIXED" => Some(Self::AggMixed),
7449            _ => None,
7450        }
7451    }
7452}
7453#[derive(serde::Serialize)]
7454#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7455#[repr(i32)]
7456pub enum AggSplit {
7457    Undefined = 0,
7458    AggsplitSimple = 1,
7459    AggsplitInitialSerial = 2,
7460    AggsplitFinalDeserial = 3,
7461}
7462impl AggSplit {
7463    /// String value of the enum field names used in the ProtoBuf definition.
7464    ///
7465    /// The values are not transformed in any way and thus are considered stable
7466    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7467    pub fn as_str_name(&self) -> &'static str {
7468        match self {
7469            Self::Undefined => "AGG_SPLIT_UNDEFINED",
7470            Self::AggsplitSimple => "AGGSPLIT_SIMPLE",
7471            Self::AggsplitInitialSerial => "AGGSPLIT_INITIAL_SERIAL",
7472            Self::AggsplitFinalDeserial => "AGGSPLIT_FINAL_DESERIAL",
7473        }
7474    }
7475    /// Creates an enum from field names used in the ProtoBuf definition.
7476    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7477        match value {
7478            "AGG_SPLIT_UNDEFINED" => Some(Self::Undefined),
7479            "AGGSPLIT_SIMPLE" => Some(Self::AggsplitSimple),
7480            "AGGSPLIT_INITIAL_SERIAL" => Some(Self::AggsplitInitialSerial),
7481            "AGGSPLIT_FINAL_DESERIAL" => Some(Self::AggsplitFinalDeserial),
7482            _ => None,
7483        }
7484    }
7485}
7486#[derive(serde::Serialize)]
7487#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7488#[repr(i32)]
7489pub enum SetOpCmd {
7490    Undefined = 0,
7491    SetopcmdIntersect = 1,
7492    SetopcmdIntersectAll = 2,
7493    SetopcmdExcept = 3,
7494    SetopcmdExceptAll = 4,
7495}
7496impl SetOpCmd {
7497    /// String value of the enum field names used in the ProtoBuf definition.
7498    ///
7499    /// The values are not transformed in any way and thus are considered stable
7500    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7501    pub fn as_str_name(&self) -> &'static str {
7502        match self {
7503            Self::Undefined => "SET_OP_CMD_UNDEFINED",
7504            Self::SetopcmdIntersect => "SETOPCMD_INTERSECT",
7505            Self::SetopcmdIntersectAll => "SETOPCMD_INTERSECT_ALL",
7506            Self::SetopcmdExcept => "SETOPCMD_EXCEPT",
7507            Self::SetopcmdExceptAll => "SETOPCMD_EXCEPT_ALL",
7508        }
7509    }
7510    /// Creates an enum from field names used in the ProtoBuf definition.
7511    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7512        match value {
7513            "SET_OP_CMD_UNDEFINED" => Some(Self::Undefined),
7514            "SETOPCMD_INTERSECT" => Some(Self::SetopcmdIntersect),
7515            "SETOPCMD_INTERSECT_ALL" => Some(Self::SetopcmdIntersectAll),
7516            "SETOPCMD_EXCEPT" => Some(Self::SetopcmdExcept),
7517            "SETOPCMD_EXCEPT_ALL" => Some(Self::SetopcmdExceptAll),
7518            _ => None,
7519        }
7520    }
7521}
7522#[derive(serde::Serialize)]
7523#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7524#[repr(i32)]
7525pub enum SetOpStrategy {
7526    Undefined = 0,
7527    SetopSorted = 1,
7528    SetopHashed = 2,
7529}
7530impl SetOpStrategy {
7531    /// String value of the enum field names used in the ProtoBuf definition.
7532    ///
7533    /// The values are not transformed in any way and thus are considered stable
7534    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7535    pub fn as_str_name(&self) -> &'static str {
7536        match self {
7537            Self::Undefined => "SET_OP_STRATEGY_UNDEFINED",
7538            Self::SetopSorted => "SETOP_SORTED",
7539            Self::SetopHashed => "SETOP_HASHED",
7540        }
7541    }
7542    /// Creates an enum from field names used in the ProtoBuf definition.
7543    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7544        match value {
7545            "SET_OP_STRATEGY_UNDEFINED" => Some(Self::Undefined),
7546            "SETOP_SORTED" => Some(Self::SetopSorted),
7547            "SETOP_HASHED" => Some(Self::SetopHashed),
7548            _ => None,
7549        }
7550    }
7551}
7552#[derive(serde::Serialize)]
7553#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7554#[repr(i32)]
7555pub enum OnConflictAction {
7556    Undefined = 0,
7557    OnconflictNone = 1,
7558    OnconflictNothing = 2,
7559    OnconflictUpdate = 3,
7560}
7561impl OnConflictAction {
7562    /// String value of the enum field names used in the ProtoBuf definition.
7563    ///
7564    /// The values are not transformed in any way and thus are considered stable
7565    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7566    pub fn as_str_name(&self) -> &'static str {
7567        match self {
7568            Self::Undefined => "ON_CONFLICT_ACTION_UNDEFINED",
7569            Self::OnconflictNone => "ONCONFLICT_NONE",
7570            Self::OnconflictNothing => "ONCONFLICT_NOTHING",
7571            Self::OnconflictUpdate => "ONCONFLICT_UPDATE",
7572        }
7573    }
7574    /// Creates an enum from field names used in the ProtoBuf definition.
7575    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7576        match value {
7577            "ON_CONFLICT_ACTION_UNDEFINED" => Some(Self::Undefined),
7578            "ONCONFLICT_NONE" => Some(Self::OnconflictNone),
7579            "ONCONFLICT_NOTHING" => Some(Self::OnconflictNothing),
7580            "ONCONFLICT_UPDATE" => Some(Self::OnconflictUpdate),
7581            _ => None,
7582        }
7583    }
7584}
7585#[derive(serde::Serialize)]
7586#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7587#[repr(i32)]
7588pub enum LimitOption {
7589    Undefined = 0,
7590    Default = 1,
7591    Count = 2,
7592    WithTies = 3,
7593}
7594impl LimitOption {
7595    /// String value of the enum field names used in the ProtoBuf definition.
7596    ///
7597    /// The values are not transformed in any way and thus are considered stable
7598    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7599    pub fn as_str_name(&self) -> &'static str {
7600        match self {
7601            Self::Undefined => "LIMIT_OPTION_UNDEFINED",
7602            Self::Default => "LIMIT_OPTION_DEFAULT",
7603            Self::Count => "LIMIT_OPTION_COUNT",
7604            Self::WithTies => "LIMIT_OPTION_WITH_TIES",
7605        }
7606    }
7607    /// Creates an enum from field names used in the ProtoBuf definition.
7608    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7609        match value {
7610            "LIMIT_OPTION_UNDEFINED" => Some(Self::Undefined),
7611            "LIMIT_OPTION_DEFAULT" => Some(Self::Default),
7612            "LIMIT_OPTION_COUNT" => Some(Self::Count),
7613            "LIMIT_OPTION_WITH_TIES" => Some(Self::WithTies),
7614            _ => None,
7615        }
7616    }
7617}
7618#[derive(serde::Serialize)]
7619#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7620#[repr(i32)]
7621pub enum LockClauseStrength {
7622    Undefined = 0,
7623    LcsNone = 1,
7624    LcsForkeyshare = 2,
7625    LcsForshare = 3,
7626    LcsFornokeyupdate = 4,
7627    LcsForupdate = 5,
7628}
7629impl LockClauseStrength {
7630    /// String value of the enum field names used in the ProtoBuf definition.
7631    ///
7632    /// The values are not transformed in any way and thus are considered stable
7633    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7634    pub fn as_str_name(&self) -> &'static str {
7635        match self {
7636            Self::Undefined => "LOCK_CLAUSE_STRENGTH_UNDEFINED",
7637            Self::LcsNone => "LCS_NONE",
7638            Self::LcsForkeyshare => "LCS_FORKEYSHARE",
7639            Self::LcsForshare => "LCS_FORSHARE",
7640            Self::LcsFornokeyupdate => "LCS_FORNOKEYUPDATE",
7641            Self::LcsForupdate => "LCS_FORUPDATE",
7642        }
7643    }
7644    /// Creates an enum from field names used in the ProtoBuf definition.
7645    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7646        match value {
7647            "LOCK_CLAUSE_STRENGTH_UNDEFINED" => Some(Self::Undefined),
7648            "LCS_NONE" => Some(Self::LcsNone),
7649            "LCS_FORKEYSHARE" => Some(Self::LcsForkeyshare),
7650            "LCS_FORSHARE" => Some(Self::LcsForshare),
7651            "LCS_FORNOKEYUPDATE" => Some(Self::LcsFornokeyupdate),
7652            "LCS_FORUPDATE" => Some(Self::LcsForupdate),
7653            _ => None,
7654        }
7655    }
7656}
7657#[derive(serde::Serialize)]
7658#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7659#[repr(i32)]
7660pub enum LockWaitPolicy {
7661    Undefined = 0,
7662    LockWaitBlock = 1,
7663    LockWaitSkip = 2,
7664    LockWaitError = 3,
7665}
7666impl LockWaitPolicy {
7667    /// String value of the enum field names used in the ProtoBuf definition.
7668    ///
7669    /// The values are not transformed in any way and thus are considered stable
7670    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7671    pub fn as_str_name(&self) -> &'static str {
7672        match self {
7673            Self::Undefined => "LOCK_WAIT_POLICY_UNDEFINED",
7674            Self::LockWaitBlock => "LockWaitBlock",
7675            Self::LockWaitSkip => "LockWaitSkip",
7676            Self::LockWaitError => "LockWaitError",
7677        }
7678    }
7679    /// Creates an enum from field names used in the ProtoBuf definition.
7680    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7681        match value {
7682            "LOCK_WAIT_POLICY_UNDEFINED" => Some(Self::Undefined),
7683            "LockWaitBlock" => Some(Self::LockWaitBlock),
7684            "LockWaitSkip" => Some(Self::LockWaitSkip),
7685            "LockWaitError" => Some(Self::LockWaitError),
7686            _ => None,
7687        }
7688    }
7689}
7690#[derive(serde::Serialize)]
7691#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7692#[repr(i32)]
7693pub enum LockTupleMode {
7694    Undefined = 0,
7695    LockTupleKeyShare = 1,
7696    LockTupleShare = 2,
7697    LockTupleNoKeyExclusive = 3,
7698    LockTupleExclusive = 4,
7699}
7700impl LockTupleMode {
7701    /// String value of the enum field names used in the ProtoBuf definition.
7702    ///
7703    /// The values are not transformed in any way and thus are considered stable
7704    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7705    pub fn as_str_name(&self) -> &'static str {
7706        match self {
7707            Self::Undefined => "LOCK_TUPLE_MODE_UNDEFINED",
7708            Self::LockTupleKeyShare => "LockTupleKeyShare",
7709            Self::LockTupleShare => "LockTupleShare",
7710            Self::LockTupleNoKeyExclusive => "LockTupleNoKeyExclusive",
7711            Self::LockTupleExclusive => "LockTupleExclusive",
7712        }
7713    }
7714    /// Creates an enum from field names used in the ProtoBuf definition.
7715    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7716        match value {
7717            "LOCK_TUPLE_MODE_UNDEFINED" => Some(Self::Undefined),
7718            "LockTupleKeyShare" => Some(Self::LockTupleKeyShare),
7719            "LockTupleShare" => Some(Self::LockTupleShare),
7720            "LockTupleNoKeyExclusive" => Some(Self::LockTupleNoKeyExclusive),
7721            "LockTupleExclusive" => Some(Self::LockTupleExclusive),
7722            _ => None,
7723        }
7724    }
7725}
7726#[derive(serde::Serialize)]
7727#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7728#[repr(i32)]
7729pub enum CompareType {
7730    Undefined = 0,
7731    CompareInvalid = 1,
7732    CompareLt = 2,
7733    CompareLe = 3,
7734    CompareEq = 4,
7735    CompareGe = 5,
7736    CompareGt = 6,
7737    CompareNe = 7,
7738    CompareOverlap = 8,
7739    CompareContainedBy = 9,
7740}
7741impl CompareType {
7742    /// String value of the enum field names used in the ProtoBuf definition.
7743    ///
7744    /// The values are not transformed in any way and thus are considered stable
7745    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7746    pub fn as_str_name(&self) -> &'static str {
7747        match self {
7748            Self::Undefined => "COMPARE_TYPE_UNDEFINED",
7749            Self::CompareInvalid => "COMPARE_INVALID",
7750            Self::CompareLt => "COMPARE_LT",
7751            Self::CompareLe => "COMPARE_LE",
7752            Self::CompareEq => "COMPARE_EQ",
7753            Self::CompareGe => "COMPARE_GE",
7754            Self::CompareGt => "COMPARE_GT",
7755            Self::CompareNe => "COMPARE_NE",
7756            Self::CompareOverlap => "COMPARE_OVERLAP",
7757            Self::CompareContainedBy => "COMPARE_CONTAINED_BY",
7758        }
7759    }
7760    /// Creates an enum from field names used in the ProtoBuf definition.
7761    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7762        match value {
7763            "COMPARE_TYPE_UNDEFINED" => Some(Self::Undefined),
7764            "COMPARE_INVALID" => Some(Self::CompareInvalid),
7765            "COMPARE_LT" => Some(Self::CompareLt),
7766            "COMPARE_LE" => Some(Self::CompareLe),
7767            "COMPARE_EQ" => Some(Self::CompareEq),
7768            "COMPARE_GE" => Some(Self::CompareGe),
7769            "COMPARE_GT" => Some(Self::CompareGt),
7770            "COMPARE_NE" => Some(Self::CompareNe),
7771            "COMPARE_OVERLAP" => Some(Self::CompareOverlap),
7772            "COMPARE_CONTAINED_BY" => Some(Self::CompareContainedBy),
7773            _ => None,
7774        }
7775    }
7776}
7777#[derive(serde::Serialize)]
7778#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7779#[repr(i32)]
7780pub enum KeywordKind {
7781    NoKeyword = 0,
7782    UnreservedKeyword = 1,
7783    ColNameKeyword = 2,
7784    TypeFuncNameKeyword = 3,
7785    ReservedKeyword = 4,
7786}
7787impl KeywordKind {
7788    /// String value of the enum field names used in the ProtoBuf definition.
7789    ///
7790    /// The values are not transformed in any way and thus are considered stable
7791    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
7792    pub fn as_str_name(&self) -> &'static str {
7793        match self {
7794            Self::NoKeyword => "NO_KEYWORD",
7795            Self::UnreservedKeyword => "UNRESERVED_KEYWORD",
7796            Self::ColNameKeyword => "COL_NAME_KEYWORD",
7797            Self::TypeFuncNameKeyword => "TYPE_FUNC_NAME_KEYWORD",
7798            Self::ReservedKeyword => "RESERVED_KEYWORD",
7799        }
7800    }
7801    /// Creates an enum from field names used in the ProtoBuf definition.
7802    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
7803        match value {
7804            "NO_KEYWORD" => Some(Self::NoKeyword),
7805            "UNRESERVED_KEYWORD" => Some(Self::UnreservedKeyword),
7806            "COL_NAME_KEYWORD" => Some(Self::ColNameKeyword),
7807            "TYPE_FUNC_NAME_KEYWORD" => Some(Self::TypeFuncNameKeyword),
7808            "RESERVED_KEYWORD" => Some(Self::ReservedKeyword),
7809            _ => None,
7810        }
7811    }
7812}
7813#[derive(serde::Serialize)]
7814#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7815#[repr(i32)]
7816pub enum Token {
7817    Nul = 0,
7818    /// Single-character tokens that are returned 1:1 (identical with "self" list in scan.l)
7819    /// Either supporting syntax, or single-character operators (some can be both)
7820    /// Also see <https://www.postgresql.org/docs/12/sql-syntax-lexical.html#SQL-SYNTAX-SPECIAL-CHARS>
7821    ///
7822    /// "$"
7823    Ascii36 = 36,
7824    /// "%"
7825    Ascii37 = 37,
7826    /// "("
7827    Ascii40 = 40,
7828    /// ")"
7829    Ascii41 = 41,
7830    /// "*"
7831    Ascii42 = 42,
7832    /// "+"
7833    Ascii43 = 43,
7834    /// ","
7835    Ascii44 = 44,
7836    /// "-"
7837    Ascii45 = 45,
7838    /// "."
7839    Ascii46 = 46,
7840    /// "/"
7841    Ascii47 = 47,
7842    /// ":"
7843    Ascii58 = 58,
7844    /// ";"
7845    Ascii59 = 59,
7846    /// "<"
7847    Ascii60 = 60,
7848    /// "="
7849    Ascii61 = 61,
7850    /// ">"
7851    Ascii62 = 62,
7852    /// "?"
7853    Ascii63 = 63,
7854    /// "["
7855    Ascii91 = 91,
7856    /// "\"
7857    Ascii92 = 92,
7858    /// "]"
7859    Ascii93 = 93,
7860    /// "^"
7861    Ascii94 = 94,
7862    /// Named tokens in scan.l
7863    Ident = 258,
7864    Uident = 259,
7865    Fconst = 260,
7866    Sconst = 261,
7867    Usconst = 262,
7868    Bconst = 263,
7869    Xconst = 264,
7870    Op = 265,
7871    Iconst = 266,
7872    Param = 267,
7873    Typecast = 268,
7874    DotDot = 269,
7875    ColonEquals = 270,
7876    EqualsGreater = 271,
7877    LessEquals = 272,
7878    GreaterEquals = 273,
7879    NotEquals = 274,
7880    SqlComment = 275,
7881    CComment = 276,
7882    AbortP = 277,
7883    Absent = 278,
7884    AbsoluteP = 279,
7885    Access = 280,
7886    Action = 281,
7887    AddP = 282,
7888    Admin = 283,
7889    After = 284,
7890    Aggregate = 285,
7891    All = 286,
7892    Also = 287,
7893    Alter = 288,
7894    Always = 289,
7895    Analyse = 290,
7896    Analyze = 291,
7897    And = 292,
7898    Any = 293,
7899    Array = 294,
7900    As = 295,
7901    Asc = 296,
7902    Asensitive = 297,
7903    Assertion = 298,
7904    Assignment = 299,
7905    Asymmetric = 300,
7906    Atomic = 301,
7907    At = 302,
7908    Attach = 303,
7909    Attribute = 304,
7910    Authorization = 305,
7911    Backward = 306,
7912    Before = 307,
7913    BeginP = 308,
7914    Between = 309,
7915    Bigint = 310,
7916    Binary = 311,
7917    Bit = 312,
7918    BooleanP = 313,
7919    Both = 314,
7920    Breadth = 315,
7921    By = 316,
7922    Cache = 317,
7923    Call = 318,
7924    Called = 319,
7925    Cascade = 320,
7926    Cascaded = 321,
7927    Case = 322,
7928    Cast = 323,
7929    CatalogP = 324,
7930    Chain = 325,
7931    CharP = 326,
7932    Character = 327,
7933    Characteristics = 328,
7934    Check = 329,
7935    Checkpoint = 330,
7936    Class = 331,
7937    Close = 332,
7938    Cluster = 333,
7939    Coalesce = 334,
7940    Collate = 335,
7941    Collation = 336,
7942    Column = 337,
7943    Columns = 338,
7944    Comment = 339,
7945    Comments = 340,
7946    Commit = 341,
7947    Committed = 342,
7948    Compression = 343,
7949    Concurrently = 344,
7950    Conditional = 345,
7951    Configuration = 346,
7952    Conflict = 347,
7953    Connection = 348,
7954    Constraint = 349,
7955    Constraints = 350,
7956    ContentP = 351,
7957    ContinueP = 352,
7958    ConversionP = 353,
7959    Copy = 354,
7960    Cost = 355,
7961    Create = 356,
7962    Cross = 357,
7963    Csv = 358,
7964    Cube = 359,
7965    CurrentP = 360,
7966    CurrentCatalog = 361,
7967    CurrentDate = 362,
7968    CurrentRole = 363,
7969    CurrentSchema = 364,
7970    CurrentTime = 365,
7971    CurrentTimestamp = 366,
7972    CurrentUser = 367,
7973    Cursor = 368,
7974    Cycle = 369,
7975    DataP = 370,
7976    Database = 371,
7977    DayP = 372,
7978    Deallocate = 373,
7979    Dec = 374,
7980    DecimalP = 375,
7981    Declare = 376,
7982    Default = 377,
7983    Defaults = 378,
7984    Deferrable = 379,
7985    Deferred = 380,
7986    Definer = 381,
7987    DeleteP = 382,
7988    Delimiter = 383,
7989    Delimiters = 384,
7990    Depends = 385,
7991    Depth = 386,
7992    Desc = 387,
7993    Detach = 388,
7994    Dictionary = 389,
7995    DisableP = 390,
7996    Discard = 391,
7997    Distinct = 392,
7998    Do = 393,
7999    DocumentP = 394,
8000    DomainP = 395,
8001    DoubleP = 396,
8002    Drop = 397,
8003    Each = 398,
8004    Else = 399,
8005    EmptyP = 400,
8006    EnableP = 401,
8007    Encoding = 402,
8008    Encrypted = 403,
8009    EndP = 404,
8010    Enforced = 405,
8011    EnumP = 406,
8012    ErrorP = 407,
8013    Escape = 408,
8014    Event = 409,
8015    Except = 410,
8016    Exclude = 411,
8017    Excluding = 412,
8018    Exclusive = 413,
8019    Execute = 414,
8020    Exists = 415,
8021    Explain = 416,
8022    Expression = 417,
8023    Extension = 418,
8024    External = 419,
8025    Extract = 420,
8026    FalseP = 421,
8027    Family = 422,
8028    Fetch = 423,
8029    Filter = 424,
8030    Finalize = 425,
8031    FirstP = 426,
8032    FloatP = 427,
8033    Following = 428,
8034    For = 429,
8035    Force = 430,
8036    Foreign = 431,
8037    Format = 432,
8038    Forward = 433,
8039    Freeze = 434,
8040    From = 435,
8041    Full = 436,
8042    Function = 437,
8043    Functions = 438,
8044    Generated = 439,
8045    Global = 440,
8046    Grant = 441,
8047    Granted = 442,
8048    Greatest = 443,
8049    GroupP = 444,
8050    Grouping = 445,
8051    Groups = 446,
8052    Handler = 447,
8053    Having = 448,
8054    HeaderP = 449,
8055    Hold = 450,
8056    HourP = 451,
8057    IdentityP = 452,
8058    IfP = 453,
8059    Ilike = 454,
8060    Immediate = 455,
8061    Immutable = 456,
8062    ImplicitP = 457,
8063    ImportP = 458,
8064    InP = 459,
8065    Include = 460,
8066    Including = 461,
8067    Increment = 462,
8068    Indent = 463,
8069    Index = 464,
8070    Indexes = 465,
8071    Inherit = 466,
8072    Inherits = 467,
8073    Initially = 468,
8074    InlineP = 469,
8075    InnerP = 470,
8076    Inout = 471,
8077    InputP = 472,
8078    Insensitive = 473,
8079    Insert = 474,
8080    Instead = 475,
8081    IntP = 476,
8082    Integer = 477,
8083    Intersect = 478,
8084    Interval = 479,
8085    Into = 480,
8086    Invoker = 481,
8087    Is = 482,
8088    Isnull = 483,
8089    Isolation = 484,
8090    Join = 485,
8091    Json = 486,
8092    JsonArray = 487,
8093    JsonArrayagg = 488,
8094    JsonExists = 489,
8095    JsonObject = 490,
8096    JsonObjectagg = 491,
8097    JsonQuery = 492,
8098    JsonScalar = 493,
8099    JsonSerialize = 494,
8100    JsonTable = 495,
8101    JsonValue = 496,
8102    Keep = 497,
8103    Key = 498,
8104    Keys = 499,
8105    Label = 500,
8106    Language = 501,
8107    LargeP = 502,
8108    LastP = 503,
8109    LateralP = 504,
8110    Leading = 505,
8111    Leakproof = 506,
8112    Least = 507,
8113    Left = 508,
8114    Level = 509,
8115    Like = 510,
8116    Limit = 511,
8117    Listen = 512,
8118    Load = 513,
8119    Local = 514,
8120    Localtime = 515,
8121    Localtimestamp = 516,
8122    Location = 517,
8123    LockP = 518,
8124    Locked = 519,
8125    Logged = 520,
8126    Mapping = 521,
8127    Match = 522,
8128    Matched = 523,
8129    Materialized = 524,
8130    Maxvalue = 525,
8131    Merge = 526,
8132    MergeAction = 527,
8133    Method = 528,
8134    MinuteP = 529,
8135    Minvalue = 530,
8136    Mode = 531,
8137    MonthP = 532,
8138    Move = 533,
8139    NameP = 534,
8140    Names = 535,
8141    National = 536,
8142    Natural = 537,
8143    Nchar = 538,
8144    Nested = 539,
8145    New = 540,
8146    Next = 541,
8147    Nfc = 542,
8148    Nfd = 543,
8149    Nfkc = 544,
8150    Nfkd = 545,
8151    No = 546,
8152    None = 547,
8153    Normalize = 548,
8154    Normalized = 549,
8155    Not = 550,
8156    Nothing = 551,
8157    Notify = 552,
8158    Notnull = 553,
8159    Nowait = 554,
8160    NullP = 555,
8161    Nullif = 556,
8162    NullsP = 557,
8163    Numeric = 558,
8164    ObjectP = 559,
8165    ObjectsP = 560,
8166    Of = 561,
8167    Off = 562,
8168    Offset = 563,
8169    Oids = 564,
8170    Old = 565,
8171    Omit = 566,
8172    On = 567,
8173    Only = 568,
8174    Operator = 569,
8175    Option = 570,
8176    Options = 571,
8177    Or = 572,
8178    Order = 573,
8179    Ordinality = 574,
8180    Others = 575,
8181    OutP = 576,
8182    OuterP = 577,
8183    Over = 578,
8184    Overlaps = 579,
8185    Overlay = 580,
8186    Overriding = 581,
8187    Owned = 582,
8188    Owner = 583,
8189    Parallel = 584,
8190    Parameter = 585,
8191    Parser = 586,
8192    Partial = 587,
8193    Partition = 588,
8194    Passing = 589,
8195    Password = 590,
8196    Path = 591,
8197    Period = 592,
8198    Placing = 593,
8199    Plan = 594,
8200    Plans = 595,
8201    Policy = 596,
8202    Position = 597,
8203    Preceding = 598,
8204    Precision = 599,
8205    Preserve = 600,
8206    Prepare = 601,
8207    Prepared = 602,
8208    Primary = 603,
8209    Prior = 604,
8210    Privileges = 605,
8211    Procedural = 606,
8212    Procedure = 607,
8213    Procedures = 608,
8214    Program = 609,
8215    Publication = 610,
8216    Quote = 611,
8217    Quotes = 612,
8218    Range = 613,
8219    Read = 614,
8220    Real = 615,
8221    Reassign = 616,
8222    Recursive = 617,
8223    RefP = 618,
8224    References = 619,
8225    Referencing = 620,
8226    Refresh = 621,
8227    Reindex = 622,
8228    RelativeP = 623,
8229    Release = 624,
8230    Rename = 625,
8231    Repeatable = 626,
8232    Replace = 627,
8233    Replica = 628,
8234    Reset = 629,
8235    Restart = 630,
8236    Restrict = 631,
8237    Return = 632,
8238    Returning = 633,
8239    Returns = 634,
8240    Revoke = 635,
8241    Right = 636,
8242    Role = 637,
8243    Rollback = 638,
8244    Rollup = 639,
8245    Routine = 640,
8246    Routines = 641,
8247    Row = 642,
8248    Rows = 643,
8249    Rule = 644,
8250    Savepoint = 645,
8251    Scalar = 646,
8252    Schema = 647,
8253    Schemas = 648,
8254    Scroll = 649,
8255    Search = 650,
8256    SecondP = 651,
8257    Security = 652,
8258    Select = 653,
8259    Sequence = 654,
8260    Sequences = 655,
8261    Serializable = 656,
8262    Server = 657,
8263    Session = 658,
8264    SessionUser = 659,
8265    Set = 660,
8266    Sets = 661,
8267    Setof = 662,
8268    Share = 663,
8269    Show = 664,
8270    Similar = 665,
8271    Simple = 666,
8272    Skip = 667,
8273    Smallint = 668,
8274    Snapshot = 669,
8275    Some = 670,
8276    Source = 671,
8277    SqlP = 672,
8278    Stable = 673,
8279    StandaloneP = 674,
8280    Start = 675,
8281    Statement = 676,
8282    Statistics = 677,
8283    Stdin = 678,
8284    Stdout = 679,
8285    Storage = 680,
8286    Stored = 681,
8287    StrictP = 682,
8288    StringP = 683,
8289    StripP = 684,
8290    Subscription = 685,
8291    Substring = 686,
8292    Support = 687,
8293    Symmetric = 688,
8294    Sysid = 689,
8295    SystemP = 690,
8296    SystemUser = 691,
8297    Table = 692,
8298    Tables = 693,
8299    Tablesample = 694,
8300    Tablespace = 695,
8301    Target = 696,
8302    Temp = 697,
8303    Template = 698,
8304    Temporary = 699,
8305    TextP = 700,
8306    Then = 701,
8307    Ties = 702,
8308    Time = 703,
8309    Timestamp = 704,
8310    To = 705,
8311    Trailing = 706,
8312    Transaction = 707,
8313    Transform = 708,
8314    Treat = 709,
8315    Trigger = 710,
8316    Trim = 711,
8317    TrueP = 712,
8318    Truncate = 713,
8319    Trusted = 714,
8320    TypeP = 715,
8321    TypesP = 716,
8322    Uescape = 717,
8323    Unbounded = 718,
8324    Unconditional = 719,
8325    Uncommitted = 720,
8326    Unencrypted = 721,
8327    Union = 722,
8328    Unique = 723,
8329    Unknown = 724,
8330    Unlisten = 725,
8331    Unlogged = 726,
8332    Until = 727,
8333    Update = 728,
8334    User = 729,
8335    Using = 730,
8336    Vacuum = 731,
8337    Valid = 732,
8338    Validate = 733,
8339    Validator = 734,
8340    ValueP = 735,
8341    Values = 736,
8342    Varchar = 737,
8343    Variadic = 738,
8344    Varying = 739,
8345    Verbose = 740,
8346    VersionP = 741,
8347    View = 742,
8348    Views = 743,
8349    Virtual = 744,
8350    Volatile = 745,
8351    When = 746,
8352    Where = 747,
8353    WhitespaceP = 748,
8354    Window = 749,
8355    With = 750,
8356    Within = 751,
8357    Without = 752,
8358    Work = 753,
8359    Wrapper = 754,
8360    Write = 755,
8361    XmlP = 756,
8362    Xmlattributes = 757,
8363    Xmlconcat = 758,
8364    Xmlelement = 759,
8365    Xmlexists = 760,
8366    Xmlforest = 761,
8367    Xmlnamespaces = 762,
8368    Xmlparse = 763,
8369    Xmlpi = 764,
8370    Xmlroot = 765,
8371    Xmlserialize = 766,
8372    Xmltable = 767,
8373    YearP = 768,
8374    YesP = 769,
8375    Zone = 770,
8376    FormatLa = 771,
8377    NotLa = 772,
8378    NullsLa = 773,
8379    WithLa = 774,
8380    WithoutLa = 775,
8381    ModeTypeName = 776,
8382    ModePlpgsqlExpr = 777,
8383    ModePlpgsqlAssign1 = 778,
8384    ModePlpgsqlAssign2 = 779,
8385    ModePlpgsqlAssign3 = 780,
8386    Uminus = 781,
8387}
8388impl Token {
8389    /// String value of the enum field names used in the ProtoBuf definition.
8390    ///
8391    /// The values are not transformed in any way and thus are considered stable
8392    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
8393    pub fn as_str_name(&self) -> &'static str {
8394        match self {
8395            Self::Nul => "NUL",
8396            Self::Ascii36 => "ASCII_36",
8397            Self::Ascii37 => "ASCII_37",
8398            Self::Ascii40 => "ASCII_40",
8399            Self::Ascii41 => "ASCII_41",
8400            Self::Ascii42 => "ASCII_42",
8401            Self::Ascii43 => "ASCII_43",
8402            Self::Ascii44 => "ASCII_44",
8403            Self::Ascii45 => "ASCII_45",
8404            Self::Ascii46 => "ASCII_46",
8405            Self::Ascii47 => "ASCII_47",
8406            Self::Ascii58 => "ASCII_58",
8407            Self::Ascii59 => "ASCII_59",
8408            Self::Ascii60 => "ASCII_60",
8409            Self::Ascii61 => "ASCII_61",
8410            Self::Ascii62 => "ASCII_62",
8411            Self::Ascii63 => "ASCII_63",
8412            Self::Ascii91 => "ASCII_91",
8413            Self::Ascii92 => "ASCII_92",
8414            Self::Ascii93 => "ASCII_93",
8415            Self::Ascii94 => "ASCII_94",
8416            Self::Ident => "IDENT",
8417            Self::Uident => "UIDENT",
8418            Self::Fconst => "FCONST",
8419            Self::Sconst => "SCONST",
8420            Self::Usconst => "USCONST",
8421            Self::Bconst => "BCONST",
8422            Self::Xconst => "XCONST",
8423            Self::Op => "Op",
8424            Self::Iconst => "ICONST",
8425            Self::Param => "PARAM",
8426            Self::Typecast => "TYPECAST",
8427            Self::DotDot => "DOT_DOT",
8428            Self::ColonEquals => "COLON_EQUALS",
8429            Self::EqualsGreater => "EQUALS_GREATER",
8430            Self::LessEquals => "LESS_EQUALS",
8431            Self::GreaterEquals => "GREATER_EQUALS",
8432            Self::NotEquals => "NOT_EQUALS",
8433            Self::SqlComment => "SQL_COMMENT",
8434            Self::CComment => "C_COMMENT",
8435            Self::AbortP => "ABORT_P",
8436            Self::Absent => "ABSENT",
8437            Self::AbsoluteP => "ABSOLUTE_P",
8438            Self::Access => "ACCESS",
8439            Self::Action => "ACTION",
8440            Self::AddP => "ADD_P",
8441            Self::Admin => "ADMIN",
8442            Self::After => "AFTER",
8443            Self::Aggregate => "AGGREGATE",
8444            Self::All => "ALL",
8445            Self::Also => "ALSO",
8446            Self::Alter => "ALTER",
8447            Self::Always => "ALWAYS",
8448            Self::Analyse => "ANALYSE",
8449            Self::Analyze => "ANALYZE",
8450            Self::And => "AND",
8451            Self::Any => "ANY",
8452            Self::Array => "ARRAY",
8453            Self::As => "AS",
8454            Self::Asc => "ASC",
8455            Self::Asensitive => "ASENSITIVE",
8456            Self::Assertion => "ASSERTION",
8457            Self::Assignment => "ASSIGNMENT",
8458            Self::Asymmetric => "ASYMMETRIC",
8459            Self::Atomic => "ATOMIC",
8460            Self::At => "AT",
8461            Self::Attach => "ATTACH",
8462            Self::Attribute => "ATTRIBUTE",
8463            Self::Authorization => "AUTHORIZATION",
8464            Self::Backward => "BACKWARD",
8465            Self::Before => "BEFORE",
8466            Self::BeginP => "BEGIN_P",
8467            Self::Between => "BETWEEN",
8468            Self::Bigint => "BIGINT",
8469            Self::Binary => "BINARY",
8470            Self::Bit => "BIT",
8471            Self::BooleanP => "BOOLEAN_P",
8472            Self::Both => "BOTH",
8473            Self::Breadth => "BREADTH",
8474            Self::By => "BY",
8475            Self::Cache => "CACHE",
8476            Self::Call => "CALL",
8477            Self::Called => "CALLED",
8478            Self::Cascade => "CASCADE",
8479            Self::Cascaded => "CASCADED",
8480            Self::Case => "CASE",
8481            Self::Cast => "CAST",
8482            Self::CatalogP => "CATALOG_P",
8483            Self::Chain => "CHAIN",
8484            Self::CharP => "CHAR_P",
8485            Self::Character => "CHARACTER",
8486            Self::Characteristics => "CHARACTERISTICS",
8487            Self::Check => "CHECK",
8488            Self::Checkpoint => "CHECKPOINT",
8489            Self::Class => "CLASS",
8490            Self::Close => "CLOSE",
8491            Self::Cluster => "CLUSTER",
8492            Self::Coalesce => "COALESCE",
8493            Self::Collate => "COLLATE",
8494            Self::Collation => "COLLATION",
8495            Self::Column => "COLUMN",
8496            Self::Columns => "COLUMNS",
8497            Self::Comment => "COMMENT",
8498            Self::Comments => "COMMENTS",
8499            Self::Commit => "COMMIT",
8500            Self::Committed => "COMMITTED",
8501            Self::Compression => "COMPRESSION",
8502            Self::Concurrently => "CONCURRENTLY",
8503            Self::Conditional => "CONDITIONAL",
8504            Self::Configuration => "CONFIGURATION",
8505            Self::Conflict => "CONFLICT",
8506            Self::Connection => "CONNECTION",
8507            Self::Constraint => "CONSTRAINT",
8508            Self::Constraints => "CONSTRAINTS",
8509            Self::ContentP => "CONTENT_P",
8510            Self::ContinueP => "CONTINUE_P",
8511            Self::ConversionP => "CONVERSION_P",
8512            Self::Copy => "COPY",
8513            Self::Cost => "COST",
8514            Self::Create => "CREATE",
8515            Self::Cross => "CROSS",
8516            Self::Csv => "CSV",
8517            Self::Cube => "CUBE",
8518            Self::CurrentP => "CURRENT_P",
8519            Self::CurrentCatalog => "CURRENT_CATALOG",
8520            Self::CurrentDate => "CURRENT_DATE",
8521            Self::CurrentRole => "CURRENT_ROLE",
8522            Self::CurrentSchema => "CURRENT_SCHEMA",
8523            Self::CurrentTime => "CURRENT_TIME",
8524            Self::CurrentTimestamp => "CURRENT_TIMESTAMP",
8525            Self::CurrentUser => "CURRENT_USER",
8526            Self::Cursor => "CURSOR",
8527            Self::Cycle => "CYCLE",
8528            Self::DataP => "DATA_P",
8529            Self::Database => "DATABASE",
8530            Self::DayP => "DAY_P",
8531            Self::Deallocate => "DEALLOCATE",
8532            Self::Dec => "DEC",
8533            Self::DecimalP => "DECIMAL_P",
8534            Self::Declare => "DECLARE",
8535            Self::Default => "DEFAULT",
8536            Self::Defaults => "DEFAULTS",
8537            Self::Deferrable => "DEFERRABLE",
8538            Self::Deferred => "DEFERRED",
8539            Self::Definer => "DEFINER",
8540            Self::DeleteP => "DELETE_P",
8541            Self::Delimiter => "DELIMITER",
8542            Self::Delimiters => "DELIMITERS",
8543            Self::Depends => "DEPENDS",
8544            Self::Depth => "DEPTH",
8545            Self::Desc => "DESC",
8546            Self::Detach => "DETACH",
8547            Self::Dictionary => "DICTIONARY",
8548            Self::DisableP => "DISABLE_P",
8549            Self::Discard => "DISCARD",
8550            Self::Distinct => "DISTINCT",
8551            Self::Do => "DO",
8552            Self::DocumentP => "DOCUMENT_P",
8553            Self::DomainP => "DOMAIN_P",
8554            Self::DoubleP => "DOUBLE_P",
8555            Self::Drop => "DROP",
8556            Self::Each => "EACH",
8557            Self::Else => "ELSE",
8558            Self::EmptyP => "EMPTY_P",
8559            Self::EnableP => "ENABLE_P",
8560            Self::Encoding => "ENCODING",
8561            Self::Encrypted => "ENCRYPTED",
8562            Self::EndP => "END_P",
8563            Self::Enforced => "ENFORCED",
8564            Self::EnumP => "ENUM_P",
8565            Self::ErrorP => "ERROR_P",
8566            Self::Escape => "ESCAPE",
8567            Self::Event => "EVENT",
8568            Self::Except => "EXCEPT",
8569            Self::Exclude => "EXCLUDE",
8570            Self::Excluding => "EXCLUDING",
8571            Self::Exclusive => "EXCLUSIVE",
8572            Self::Execute => "EXECUTE",
8573            Self::Exists => "EXISTS",
8574            Self::Explain => "EXPLAIN",
8575            Self::Expression => "EXPRESSION",
8576            Self::Extension => "EXTENSION",
8577            Self::External => "EXTERNAL",
8578            Self::Extract => "EXTRACT",
8579            Self::FalseP => "FALSE_P",
8580            Self::Family => "FAMILY",
8581            Self::Fetch => "FETCH",
8582            Self::Filter => "FILTER",
8583            Self::Finalize => "FINALIZE",
8584            Self::FirstP => "FIRST_P",
8585            Self::FloatP => "FLOAT_P",
8586            Self::Following => "FOLLOWING",
8587            Self::For => "FOR",
8588            Self::Force => "FORCE",
8589            Self::Foreign => "FOREIGN",
8590            Self::Format => "FORMAT",
8591            Self::Forward => "FORWARD",
8592            Self::Freeze => "FREEZE",
8593            Self::From => "FROM",
8594            Self::Full => "FULL",
8595            Self::Function => "FUNCTION",
8596            Self::Functions => "FUNCTIONS",
8597            Self::Generated => "GENERATED",
8598            Self::Global => "GLOBAL",
8599            Self::Grant => "GRANT",
8600            Self::Granted => "GRANTED",
8601            Self::Greatest => "GREATEST",
8602            Self::GroupP => "GROUP_P",
8603            Self::Grouping => "GROUPING",
8604            Self::Groups => "GROUPS",
8605            Self::Handler => "HANDLER",
8606            Self::Having => "HAVING",
8607            Self::HeaderP => "HEADER_P",
8608            Self::Hold => "HOLD",
8609            Self::HourP => "HOUR_P",
8610            Self::IdentityP => "IDENTITY_P",
8611            Self::IfP => "IF_P",
8612            Self::Ilike => "ILIKE",
8613            Self::Immediate => "IMMEDIATE",
8614            Self::Immutable => "IMMUTABLE",
8615            Self::ImplicitP => "IMPLICIT_P",
8616            Self::ImportP => "IMPORT_P",
8617            Self::InP => "IN_P",
8618            Self::Include => "INCLUDE",
8619            Self::Including => "INCLUDING",
8620            Self::Increment => "INCREMENT",
8621            Self::Indent => "INDENT",
8622            Self::Index => "INDEX",
8623            Self::Indexes => "INDEXES",
8624            Self::Inherit => "INHERIT",
8625            Self::Inherits => "INHERITS",
8626            Self::Initially => "INITIALLY",
8627            Self::InlineP => "INLINE_P",
8628            Self::InnerP => "INNER_P",
8629            Self::Inout => "INOUT",
8630            Self::InputP => "INPUT_P",
8631            Self::Insensitive => "INSENSITIVE",
8632            Self::Insert => "INSERT",
8633            Self::Instead => "INSTEAD",
8634            Self::IntP => "INT_P",
8635            Self::Integer => "INTEGER",
8636            Self::Intersect => "INTERSECT",
8637            Self::Interval => "INTERVAL",
8638            Self::Into => "INTO",
8639            Self::Invoker => "INVOKER",
8640            Self::Is => "IS",
8641            Self::Isnull => "ISNULL",
8642            Self::Isolation => "ISOLATION",
8643            Self::Join => "JOIN",
8644            Self::Json => "JSON",
8645            Self::JsonArray => "JSON_ARRAY",
8646            Self::JsonArrayagg => "JSON_ARRAYAGG",
8647            Self::JsonExists => "JSON_EXISTS",
8648            Self::JsonObject => "JSON_OBJECT",
8649            Self::JsonObjectagg => "JSON_OBJECTAGG",
8650            Self::JsonQuery => "JSON_QUERY",
8651            Self::JsonScalar => "JSON_SCALAR",
8652            Self::JsonSerialize => "JSON_SERIALIZE",
8653            Self::JsonTable => "JSON_TABLE",
8654            Self::JsonValue => "JSON_VALUE",
8655            Self::Keep => "KEEP",
8656            Self::Key => "KEY",
8657            Self::Keys => "KEYS",
8658            Self::Label => "LABEL",
8659            Self::Language => "LANGUAGE",
8660            Self::LargeP => "LARGE_P",
8661            Self::LastP => "LAST_P",
8662            Self::LateralP => "LATERAL_P",
8663            Self::Leading => "LEADING",
8664            Self::Leakproof => "LEAKPROOF",
8665            Self::Least => "LEAST",
8666            Self::Left => "LEFT",
8667            Self::Level => "LEVEL",
8668            Self::Like => "LIKE",
8669            Self::Limit => "LIMIT",
8670            Self::Listen => "LISTEN",
8671            Self::Load => "LOAD",
8672            Self::Local => "LOCAL",
8673            Self::Localtime => "LOCALTIME",
8674            Self::Localtimestamp => "LOCALTIMESTAMP",
8675            Self::Location => "LOCATION",
8676            Self::LockP => "LOCK_P",
8677            Self::Locked => "LOCKED",
8678            Self::Logged => "LOGGED",
8679            Self::Mapping => "MAPPING",
8680            Self::Match => "MATCH",
8681            Self::Matched => "MATCHED",
8682            Self::Materialized => "MATERIALIZED",
8683            Self::Maxvalue => "MAXVALUE",
8684            Self::Merge => "MERGE",
8685            Self::MergeAction => "MERGE_ACTION",
8686            Self::Method => "METHOD",
8687            Self::MinuteP => "MINUTE_P",
8688            Self::Minvalue => "MINVALUE",
8689            Self::Mode => "MODE",
8690            Self::MonthP => "MONTH_P",
8691            Self::Move => "MOVE",
8692            Self::NameP => "NAME_P",
8693            Self::Names => "NAMES",
8694            Self::National => "NATIONAL",
8695            Self::Natural => "NATURAL",
8696            Self::Nchar => "NCHAR",
8697            Self::Nested => "NESTED",
8698            Self::New => "NEW",
8699            Self::Next => "NEXT",
8700            Self::Nfc => "NFC",
8701            Self::Nfd => "NFD",
8702            Self::Nfkc => "NFKC",
8703            Self::Nfkd => "NFKD",
8704            Self::No => "NO",
8705            Self::None => "NONE",
8706            Self::Normalize => "NORMALIZE",
8707            Self::Normalized => "NORMALIZED",
8708            Self::Not => "NOT",
8709            Self::Nothing => "NOTHING",
8710            Self::Notify => "NOTIFY",
8711            Self::Notnull => "NOTNULL",
8712            Self::Nowait => "NOWAIT",
8713            Self::NullP => "NULL_P",
8714            Self::Nullif => "NULLIF",
8715            Self::NullsP => "NULLS_P",
8716            Self::Numeric => "NUMERIC",
8717            Self::ObjectP => "OBJECT_P",
8718            Self::ObjectsP => "OBJECTS_P",
8719            Self::Of => "OF",
8720            Self::Off => "OFF",
8721            Self::Offset => "OFFSET",
8722            Self::Oids => "OIDS",
8723            Self::Old => "OLD",
8724            Self::Omit => "OMIT",
8725            Self::On => "ON",
8726            Self::Only => "ONLY",
8727            Self::Operator => "OPERATOR",
8728            Self::Option => "OPTION",
8729            Self::Options => "OPTIONS",
8730            Self::Or => "OR",
8731            Self::Order => "ORDER",
8732            Self::Ordinality => "ORDINALITY",
8733            Self::Others => "OTHERS",
8734            Self::OutP => "OUT_P",
8735            Self::OuterP => "OUTER_P",
8736            Self::Over => "OVER",
8737            Self::Overlaps => "OVERLAPS",
8738            Self::Overlay => "OVERLAY",
8739            Self::Overriding => "OVERRIDING",
8740            Self::Owned => "OWNED",
8741            Self::Owner => "OWNER",
8742            Self::Parallel => "PARALLEL",
8743            Self::Parameter => "PARAMETER",
8744            Self::Parser => "PARSER",
8745            Self::Partial => "PARTIAL",
8746            Self::Partition => "PARTITION",
8747            Self::Passing => "PASSING",
8748            Self::Password => "PASSWORD",
8749            Self::Path => "PATH",
8750            Self::Period => "PERIOD",
8751            Self::Placing => "PLACING",
8752            Self::Plan => "PLAN",
8753            Self::Plans => "PLANS",
8754            Self::Policy => "POLICY",
8755            Self::Position => "POSITION",
8756            Self::Preceding => "PRECEDING",
8757            Self::Precision => "PRECISION",
8758            Self::Preserve => "PRESERVE",
8759            Self::Prepare => "PREPARE",
8760            Self::Prepared => "PREPARED",
8761            Self::Primary => "PRIMARY",
8762            Self::Prior => "PRIOR",
8763            Self::Privileges => "PRIVILEGES",
8764            Self::Procedural => "PROCEDURAL",
8765            Self::Procedure => "PROCEDURE",
8766            Self::Procedures => "PROCEDURES",
8767            Self::Program => "PROGRAM",
8768            Self::Publication => "PUBLICATION",
8769            Self::Quote => "QUOTE",
8770            Self::Quotes => "QUOTES",
8771            Self::Range => "RANGE",
8772            Self::Read => "READ",
8773            Self::Real => "REAL",
8774            Self::Reassign => "REASSIGN",
8775            Self::Recursive => "RECURSIVE",
8776            Self::RefP => "REF_P",
8777            Self::References => "REFERENCES",
8778            Self::Referencing => "REFERENCING",
8779            Self::Refresh => "REFRESH",
8780            Self::Reindex => "REINDEX",
8781            Self::RelativeP => "RELATIVE_P",
8782            Self::Release => "RELEASE",
8783            Self::Rename => "RENAME",
8784            Self::Repeatable => "REPEATABLE",
8785            Self::Replace => "REPLACE",
8786            Self::Replica => "REPLICA",
8787            Self::Reset => "RESET",
8788            Self::Restart => "RESTART",
8789            Self::Restrict => "RESTRICT",
8790            Self::Return => "RETURN",
8791            Self::Returning => "RETURNING",
8792            Self::Returns => "RETURNS",
8793            Self::Revoke => "REVOKE",
8794            Self::Right => "RIGHT",
8795            Self::Role => "ROLE",
8796            Self::Rollback => "ROLLBACK",
8797            Self::Rollup => "ROLLUP",
8798            Self::Routine => "ROUTINE",
8799            Self::Routines => "ROUTINES",
8800            Self::Row => "ROW",
8801            Self::Rows => "ROWS",
8802            Self::Rule => "RULE",
8803            Self::Savepoint => "SAVEPOINT",
8804            Self::Scalar => "SCALAR",
8805            Self::Schema => "SCHEMA",
8806            Self::Schemas => "SCHEMAS",
8807            Self::Scroll => "SCROLL",
8808            Self::Search => "SEARCH",
8809            Self::SecondP => "SECOND_P",
8810            Self::Security => "SECURITY",
8811            Self::Select => "SELECT",
8812            Self::Sequence => "SEQUENCE",
8813            Self::Sequences => "SEQUENCES",
8814            Self::Serializable => "SERIALIZABLE",
8815            Self::Server => "SERVER",
8816            Self::Session => "SESSION",
8817            Self::SessionUser => "SESSION_USER",
8818            Self::Set => "SET",
8819            Self::Sets => "SETS",
8820            Self::Setof => "SETOF",
8821            Self::Share => "SHARE",
8822            Self::Show => "SHOW",
8823            Self::Similar => "SIMILAR",
8824            Self::Simple => "SIMPLE",
8825            Self::Skip => "SKIP",
8826            Self::Smallint => "SMALLINT",
8827            Self::Snapshot => "SNAPSHOT",
8828            Self::Some => "SOME",
8829            Self::Source => "SOURCE",
8830            Self::SqlP => "SQL_P",
8831            Self::Stable => "STABLE",
8832            Self::StandaloneP => "STANDALONE_P",
8833            Self::Start => "START",
8834            Self::Statement => "STATEMENT",
8835            Self::Statistics => "STATISTICS",
8836            Self::Stdin => "STDIN",
8837            Self::Stdout => "STDOUT",
8838            Self::Storage => "STORAGE",
8839            Self::Stored => "STORED",
8840            Self::StrictP => "STRICT_P",
8841            Self::StringP => "STRING_P",
8842            Self::StripP => "STRIP_P",
8843            Self::Subscription => "SUBSCRIPTION",
8844            Self::Substring => "SUBSTRING",
8845            Self::Support => "SUPPORT",
8846            Self::Symmetric => "SYMMETRIC",
8847            Self::Sysid => "SYSID",
8848            Self::SystemP => "SYSTEM_P",
8849            Self::SystemUser => "SYSTEM_USER",
8850            Self::Table => "TABLE",
8851            Self::Tables => "TABLES",
8852            Self::Tablesample => "TABLESAMPLE",
8853            Self::Tablespace => "TABLESPACE",
8854            Self::Target => "TARGET",
8855            Self::Temp => "TEMP",
8856            Self::Template => "TEMPLATE",
8857            Self::Temporary => "TEMPORARY",
8858            Self::TextP => "TEXT_P",
8859            Self::Then => "THEN",
8860            Self::Ties => "TIES",
8861            Self::Time => "TIME",
8862            Self::Timestamp => "TIMESTAMP",
8863            Self::To => "TO",
8864            Self::Trailing => "TRAILING",
8865            Self::Transaction => "TRANSACTION",
8866            Self::Transform => "TRANSFORM",
8867            Self::Treat => "TREAT",
8868            Self::Trigger => "TRIGGER",
8869            Self::Trim => "TRIM",
8870            Self::TrueP => "TRUE_P",
8871            Self::Truncate => "TRUNCATE",
8872            Self::Trusted => "TRUSTED",
8873            Self::TypeP => "TYPE_P",
8874            Self::TypesP => "TYPES_P",
8875            Self::Uescape => "UESCAPE",
8876            Self::Unbounded => "UNBOUNDED",
8877            Self::Unconditional => "UNCONDITIONAL",
8878            Self::Uncommitted => "UNCOMMITTED",
8879            Self::Unencrypted => "UNENCRYPTED",
8880            Self::Union => "UNION",
8881            Self::Unique => "UNIQUE",
8882            Self::Unknown => "UNKNOWN",
8883            Self::Unlisten => "UNLISTEN",
8884            Self::Unlogged => "UNLOGGED",
8885            Self::Until => "UNTIL",
8886            Self::Update => "UPDATE",
8887            Self::User => "USER",
8888            Self::Using => "USING",
8889            Self::Vacuum => "VACUUM",
8890            Self::Valid => "VALID",
8891            Self::Validate => "VALIDATE",
8892            Self::Validator => "VALIDATOR",
8893            Self::ValueP => "VALUE_P",
8894            Self::Values => "VALUES",
8895            Self::Varchar => "VARCHAR",
8896            Self::Variadic => "VARIADIC",
8897            Self::Varying => "VARYING",
8898            Self::Verbose => "VERBOSE",
8899            Self::VersionP => "VERSION_P",
8900            Self::View => "VIEW",
8901            Self::Views => "VIEWS",
8902            Self::Virtual => "VIRTUAL",
8903            Self::Volatile => "VOLATILE",
8904            Self::When => "WHEN",
8905            Self::Where => "WHERE",
8906            Self::WhitespaceP => "WHITESPACE_P",
8907            Self::Window => "WINDOW",
8908            Self::With => "WITH",
8909            Self::Within => "WITHIN",
8910            Self::Without => "WITHOUT",
8911            Self::Work => "WORK",
8912            Self::Wrapper => "WRAPPER",
8913            Self::Write => "WRITE",
8914            Self::XmlP => "XML_P",
8915            Self::Xmlattributes => "XMLATTRIBUTES",
8916            Self::Xmlconcat => "XMLCONCAT",
8917            Self::Xmlelement => "XMLELEMENT",
8918            Self::Xmlexists => "XMLEXISTS",
8919            Self::Xmlforest => "XMLFOREST",
8920            Self::Xmlnamespaces => "XMLNAMESPACES",
8921            Self::Xmlparse => "XMLPARSE",
8922            Self::Xmlpi => "XMLPI",
8923            Self::Xmlroot => "XMLROOT",
8924            Self::Xmlserialize => "XMLSERIALIZE",
8925            Self::Xmltable => "XMLTABLE",
8926            Self::YearP => "YEAR_P",
8927            Self::YesP => "YES_P",
8928            Self::Zone => "ZONE",
8929            Self::FormatLa => "FORMAT_LA",
8930            Self::NotLa => "NOT_LA",
8931            Self::NullsLa => "NULLS_LA",
8932            Self::WithLa => "WITH_LA",
8933            Self::WithoutLa => "WITHOUT_LA",
8934            Self::ModeTypeName => "MODE_TYPE_NAME",
8935            Self::ModePlpgsqlExpr => "MODE_PLPGSQL_EXPR",
8936            Self::ModePlpgsqlAssign1 => "MODE_PLPGSQL_ASSIGN1",
8937            Self::ModePlpgsqlAssign2 => "MODE_PLPGSQL_ASSIGN2",
8938            Self::ModePlpgsqlAssign3 => "MODE_PLPGSQL_ASSIGN3",
8939            Self::Uminus => "UMINUS",
8940        }
8941    }
8942    /// Creates an enum from field names used in the ProtoBuf definition.
8943    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
8944        match value {
8945            "NUL" => Some(Self::Nul),
8946            "ASCII_36" => Some(Self::Ascii36),
8947            "ASCII_37" => Some(Self::Ascii37),
8948            "ASCII_40" => Some(Self::Ascii40),
8949            "ASCII_41" => Some(Self::Ascii41),
8950            "ASCII_42" => Some(Self::Ascii42),
8951            "ASCII_43" => Some(Self::Ascii43),
8952            "ASCII_44" => Some(Self::Ascii44),
8953            "ASCII_45" => Some(Self::Ascii45),
8954            "ASCII_46" => Some(Self::Ascii46),
8955            "ASCII_47" => Some(Self::Ascii47),
8956            "ASCII_58" => Some(Self::Ascii58),
8957            "ASCII_59" => Some(Self::Ascii59),
8958            "ASCII_60" => Some(Self::Ascii60),
8959            "ASCII_61" => Some(Self::Ascii61),
8960            "ASCII_62" => Some(Self::Ascii62),
8961            "ASCII_63" => Some(Self::Ascii63),
8962            "ASCII_91" => Some(Self::Ascii91),
8963            "ASCII_92" => Some(Self::Ascii92),
8964            "ASCII_93" => Some(Self::Ascii93),
8965            "ASCII_94" => Some(Self::Ascii94),
8966            "IDENT" => Some(Self::Ident),
8967            "UIDENT" => Some(Self::Uident),
8968            "FCONST" => Some(Self::Fconst),
8969            "SCONST" => Some(Self::Sconst),
8970            "USCONST" => Some(Self::Usconst),
8971            "BCONST" => Some(Self::Bconst),
8972            "XCONST" => Some(Self::Xconst),
8973            "Op" => Some(Self::Op),
8974            "ICONST" => Some(Self::Iconst),
8975            "PARAM" => Some(Self::Param),
8976            "TYPECAST" => Some(Self::Typecast),
8977            "DOT_DOT" => Some(Self::DotDot),
8978            "COLON_EQUALS" => Some(Self::ColonEquals),
8979            "EQUALS_GREATER" => Some(Self::EqualsGreater),
8980            "LESS_EQUALS" => Some(Self::LessEquals),
8981            "GREATER_EQUALS" => Some(Self::GreaterEquals),
8982            "NOT_EQUALS" => Some(Self::NotEquals),
8983            "SQL_COMMENT" => Some(Self::SqlComment),
8984            "C_COMMENT" => Some(Self::CComment),
8985            "ABORT_P" => Some(Self::AbortP),
8986            "ABSENT" => Some(Self::Absent),
8987            "ABSOLUTE_P" => Some(Self::AbsoluteP),
8988            "ACCESS" => Some(Self::Access),
8989            "ACTION" => Some(Self::Action),
8990            "ADD_P" => Some(Self::AddP),
8991            "ADMIN" => Some(Self::Admin),
8992            "AFTER" => Some(Self::After),
8993            "AGGREGATE" => Some(Self::Aggregate),
8994            "ALL" => Some(Self::All),
8995            "ALSO" => Some(Self::Also),
8996            "ALTER" => Some(Self::Alter),
8997            "ALWAYS" => Some(Self::Always),
8998            "ANALYSE" => Some(Self::Analyse),
8999            "ANALYZE" => Some(Self::Analyze),
9000            "AND" => Some(Self::And),
9001            "ANY" => Some(Self::Any),
9002            "ARRAY" => Some(Self::Array),
9003            "AS" => Some(Self::As),
9004            "ASC" => Some(Self::Asc),
9005            "ASENSITIVE" => Some(Self::Asensitive),
9006            "ASSERTION" => Some(Self::Assertion),
9007            "ASSIGNMENT" => Some(Self::Assignment),
9008            "ASYMMETRIC" => Some(Self::Asymmetric),
9009            "ATOMIC" => Some(Self::Atomic),
9010            "AT" => Some(Self::At),
9011            "ATTACH" => Some(Self::Attach),
9012            "ATTRIBUTE" => Some(Self::Attribute),
9013            "AUTHORIZATION" => Some(Self::Authorization),
9014            "BACKWARD" => Some(Self::Backward),
9015            "BEFORE" => Some(Self::Before),
9016            "BEGIN_P" => Some(Self::BeginP),
9017            "BETWEEN" => Some(Self::Between),
9018            "BIGINT" => Some(Self::Bigint),
9019            "BINARY" => Some(Self::Binary),
9020            "BIT" => Some(Self::Bit),
9021            "BOOLEAN_P" => Some(Self::BooleanP),
9022            "BOTH" => Some(Self::Both),
9023            "BREADTH" => Some(Self::Breadth),
9024            "BY" => Some(Self::By),
9025            "CACHE" => Some(Self::Cache),
9026            "CALL" => Some(Self::Call),
9027            "CALLED" => Some(Self::Called),
9028            "CASCADE" => Some(Self::Cascade),
9029            "CASCADED" => Some(Self::Cascaded),
9030            "CASE" => Some(Self::Case),
9031            "CAST" => Some(Self::Cast),
9032            "CATALOG_P" => Some(Self::CatalogP),
9033            "CHAIN" => Some(Self::Chain),
9034            "CHAR_P" => Some(Self::CharP),
9035            "CHARACTER" => Some(Self::Character),
9036            "CHARACTERISTICS" => Some(Self::Characteristics),
9037            "CHECK" => Some(Self::Check),
9038            "CHECKPOINT" => Some(Self::Checkpoint),
9039            "CLASS" => Some(Self::Class),
9040            "CLOSE" => Some(Self::Close),
9041            "CLUSTER" => Some(Self::Cluster),
9042            "COALESCE" => Some(Self::Coalesce),
9043            "COLLATE" => Some(Self::Collate),
9044            "COLLATION" => Some(Self::Collation),
9045            "COLUMN" => Some(Self::Column),
9046            "COLUMNS" => Some(Self::Columns),
9047            "COMMENT" => Some(Self::Comment),
9048            "COMMENTS" => Some(Self::Comments),
9049            "COMMIT" => Some(Self::Commit),
9050            "COMMITTED" => Some(Self::Committed),
9051            "COMPRESSION" => Some(Self::Compression),
9052            "CONCURRENTLY" => Some(Self::Concurrently),
9053            "CONDITIONAL" => Some(Self::Conditional),
9054            "CONFIGURATION" => Some(Self::Configuration),
9055            "CONFLICT" => Some(Self::Conflict),
9056            "CONNECTION" => Some(Self::Connection),
9057            "CONSTRAINT" => Some(Self::Constraint),
9058            "CONSTRAINTS" => Some(Self::Constraints),
9059            "CONTENT_P" => Some(Self::ContentP),
9060            "CONTINUE_P" => Some(Self::ContinueP),
9061            "CONVERSION_P" => Some(Self::ConversionP),
9062            "COPY" => Some(Self::Copy),
9063            "COST" => Some(Self::Cost),
9064            "CREATE" => Some(Self::Create),
9065            "CROSS" => Some(Self::Cross),
9066            "CSV" => Some(Self::Csv),
9067            "CUBE" => Some(Self::Cube),
9068            "CURRENT_P" => Some(Self::CurrentP),
9069            "CURRENT_CATALOG" => Some(Self::CurrentCatalog),
9070            "CURRENT_DATE" => Some(Self::CurrentDate),
9071            "CURRENT_ROLE" => Some(Self::CurrentRole),
9072            "CURRENT_SCHEMA" => Some(Self::CurrentSchema),
9073            "CURRENT_TIME" => Some(Self::CurrentTime),
9074            "CURRENT_TIMESTAMP" => Some(Self::CurrentTimestamp),
9075            "CURRENT_USER" => Some(Self::CurrentUser),
9076            "CURSOR" => Some(Self::Cursor),
9077            "CYCLE" => Some(Self::Cycle),
9078            "DATA_P" => Some(Self::DataP),
9079            "DATABASE" => Some(Self::Database),
9080            "DAY_P" => Some(Self::DayP),
9081            "DEALLOCATE" => Some(Self::Deallocate),
9082            "DEC" => Some(Self::Dec),
9083            "DECIMAL_P" => Some(Self::DecimalP),
9084            "DECLARE" => Some(Self::Declare),
9085            "DEFAULT" => Some(Self::Default),
9086            "DEFAULTS" => Some(Self::Defaults),
9087            "DEFERRABLE" => Some(Self::Deferrable),
9088            "DEFERRED" => Some(Self::Deferred),
9089            "DEFINER" => Some(Self::Definer),
9090            "DELETE_P" => Some(Self::DeleteP),
9091            "DELIMITER" => Some(Self::Delimiter),
9092            "DELIMITERS" => Some(Self::Delimiters),
9093            "DEPENDS" => Some(Self::Depends),
9094            "DEPTH" => Some(Self::Depth),
9095            "DESC" => Some(Self::Desc),
9096            "DETACH" => Some(Self::Detach),
9097            "DICTIONARY" => Some(Self::Dictionary),
9098            "DISABLE_P" => Some(Self::DisableP),
9099            "DISCARD" => Some(Self::Discard),
9100            "DISTINCT" => Some(Self::Distinct),
9101            "DO" => Some(Self::Do),
9102            "DOCUMENT_P" => Some(Self::DocumentP),
9103            "DOMAIN_P" => Some(Self::DomainP),
9104            "DOUBLE_P" => Some(Self::DoubleP),
9105            "DROP" => Some(Self::Drop),
9106            "EACH" => Some(Self::Each),
9107            "ELSE" => Some(Self::Else),
9108            "EMPTY_P" => Some(Self::EmptyP),
9109            "ENABLE_P" => Some(Self::EnableP),
9110            "ENCODING" => Some(Self::Encoding),
9111            "ENCRYPTED" => Some(Self::Encrypted),
9112            "END_P" => Some(Self::EndP),
9113            "ENFORCED" => Some(Self::Enforced),
9114            "ENUM_P" => Some(Self::EnumP),
9115            "ERROR_P" => Some(Self::ErrorP),
9116            "ESCAPE" => Some(Self::Escape),
9117            "EVENT" => Some(Self::Event),
9118            "EXCEPT" => Some(Self::Except),
9119            "EXCLUDE" => Some(Self::Exclude),
9120            "EXCLUDING" => Some(Self::Excluding),
9121            "EXCLUSIVE" => Some(Self::Exclusive),
9122            "EXECUTE" => Some(Self::Execute),
9123            "EXISTS" => Some(Self::Exists),
9124            "EXPLAIN" => Some(Self::Explain),
9125            "EXPRESSION" => Some(Self::Expression),
9126            "EXTENSION" => Some(Self::Extension),
9127            "EXTERNAL" => Some(Self::External),
9128            "EXTRACT" => Some(Self::Extract),
9129            "FALSE_P" => Some(Self::FalseP),
9130            "FAMILY" => Some(Self::Family),
9131            "FETCH" => Some(Self::Fetch),
9132            "FILTER" => Some(Self::Filter),
9133            "FINALIZE" => Some(Self::Finalize),
9134            "FIRST_P" => Some(Self::FirstP),
9135            "FLOAT_P" => Some(Self::FloatP),
9136            "FOLLOWING" => Some(Self::Following),
9137            "FOR" => Some(Self::For),
9138            "FORCE" => Some(Self::Force),
9139            "FOREIGN" => Some(Self::Foreign),
9140            "FORMAT" => Some(Self::Format),
9141            "FORWARD" => Some(Self::Forward),
9142            "FREEZE" => Some(Self::Freeze),
9143            "FROM" => Some(Self::From),
9144            "FULL" => Some(Self::Full),
9145            "FUNCTION" => Some(Self::Function),
9146            "FUNCTIONS" => Some(Self::Functions),
9147            "GENERATED" => Some(Self::Generated),
9148            "GLOBAL" => Some(Self::Global),
9149            "GRANT" => Some(Self::Grant),
9150            "GRANTED" => Some(Self::Granted),
9151            "GREATEST" => Some(Self::Greatest),
9152            "GROUP_P" => Some(Self::GroupP),
9153            "GROUPING" => Some(Self::Grouping),
9154            "GROUPS" => Some(Self::Groups),
9155            "HANDLER" => Some(Self::Handler),
9156            "HAVING" => Some(Self::Having),
9157            "HEADER_P" => Some(Self::HeaderP),
9158            "HOLD" => Some(Self::Hold),
9159            "HOUR_P" => Some(Self::HourP),
9160            "IDENTITY_P" => Some(Self::IdentityP),
9161            "IF_P" => Some(Self::IfP),
9162            "ILIKE" => Some(Self::Ilike),
9163            "IMMEDIATE" => Some(Self::Immediate),
9164            "IMMUTABLE" => Some(Self::Immutable),
9165            "IMPLICIT_P" => Some(Self::ImplicitP),
9166            "IMPORT_P" => Some(Self::ImportP),
9167            "IN_P" => Some(Self::InP),
9168            "INCLUDE" => Some(Self::Include),
9169            "INCLUDING" => Some(Self::Including),
9170            "INCREMENT" => Some(Self::Increment),
9171            "INDENT" => Some(Self::Indent),
9172            "INDEX" => Some(Self::Index),
9173            "INDEXES" => Some(Self::Indexes),
9174            "INHERIT" => Some(Self::Inherit),
9175            "INHERITS" => Some(Self::Inherits),
9176            "INITIALLY" => Some(Self::Initially),
9177            "INLINE_P" => Some(Self::InlineP),
9178            "INNER_P" => Some(Self::InnerP),
9179            "INOUT" => Some(Self::Inout),
9180            "INPUT_P" => Some(Self::InputP),
9181            "INSENSITIVE" => Some(Self::Insensitive),
9182            "INSERT" => Some(Self::Insert),
9183            "INSTEAD" => Some(Self::Instead),
9184            "INT_P" => Some(Self::IntP),
9185            "INTEGER" => Some(Self::Integer),
9186            "INTERSECT" => Some(Self::Intersect),
9187            "INTERVAL" => Some(Self::Interval),
9188            "INTO" => Some(Self::Into),
9189            "INVOKER" => Some(Self::Invoker),
9190            "IS" => Some(Self::Is),
9191            "ISNULL" => Some(Self::Isnull),
9192            "ISOLATION" => Some(Self::Isolation),
9193            "JOIN" => Some(Self::Join),
9194            "JSON" => Some(Self::Json),
9195            "JSON_ARRAY" => Some(Self::JsonArray),
9196            "JSON_ARRAYAGG" => Some(Self::JsonArrayagg),
9197            "JSON_EXISTS" => Some(Self::JsonExists),
9198            "JSON_OBJECT" => Some(Self::JsonObject),
9199            "JSON_OBJECTAGG" => Some(Self::JsonObjectagg),
9200            "JSON_QUERY" => Some(Self::JsonQuery),
9201            "JSON_SCALAR" => Some(Self::JsonScalar),
9202            "JSON_SERIALIZE" => Some(Self::JsonSerialize),
9203            "JSON_TABLE" => Some(Self::JsonTable),
9204            "JSON_VALUE" => Some(Self::JsonValue),
9205            "KEEP" => Some(Self::Keep),
9206            "KEY" => Some(Self::Key),
9207            "KEYS" => Some(Self::Keys),
9208            "LABEL" => Some(Self::Label),
9209            "LANGUAGE" => Some(Self::Language),
9210            "LARGE_P" => Some(Self::LargeP),
9211            "LAST_P" => Some(Self::LastP),
9212            "LATERAL_P" => Some(Self::LateralP),
9213            "LEADING" => Some(Self::Leading),
9214            "LEAKPROOF" => Some(Self::Leakproof),
9215            "LEAST" => Some(Self::Least),
9216            "LEFT" => Some(Self::Left),
9217            "LEVEL" => Some(Self::Level),
9218            "LIKE" => Some(Self::Like),
9219            "LIMIT" => Some(Self::Limit),
9220            "LISTEN" => Some(Self::Listen),
9221            "LOAD" => Some(Self::Load),
9222            "LOCAL" => Some(Self::Local),
9223            "LOCALTIME" => Some(Self::Localtime),
9224            "LOCALTIMESTAMP" => Some(Self::Localtimestamp),
9225            "LOCATION" => Some(Self::Location),
9226            "LOCK_P" => Some(Self::LockP),
9227            "LOCKED" => Some(Self::Locked),
9228            "LOGGED" => Some(Self::Logged),
9229            "MAPPING" => Some(Self::Mapping),
9230            "MATCH" => Some(Self::Match),
9231            "MATCHED" => Some(Self::Matched),
9232            "MATERIALIZED" => Some(Self::Materialized),
9233            "MAXVALUE" => Some(Self::Maxvalue),
9234            "MERGE" => Some(Self::Merge),
9235            "MERGE_ACTION" => Some(Self::MergeAction),
9236            "METHOD" => Some(Self::Method),
9237            "MINUTE_P" => Some(Self::MinuteP),
9238            "MINVALUE" => Some(Self::Minvalue),
9239            "MODE" => Some(Self::Mode),
9240            "MONTH_P" => Some(Self::MonthP),
9241            "MOVE" => Some(Self::Move),
9242            "NAME_P" => Some(Self::NameP),
9243            "NAMES" => Some(Self::Names),
9244            "NATIONAL" => Some(Self::National),
9245            "NATURAL" => Some(Self::Natural),
9246            "NCHAR" => Some(Self::Nchar),
9247            "NESTED" => Some(Self::Nested),
9248            "NEW" => Some(Self::New),
9249            "NEXT" => Some(Self::Next),
9250            "NFC" => Some(Self::Nfc),
9251            "NFD" => Some(Self::Nfd),
9252            "NFKC" => Some(Self::Nfkc),
9253            "NFKD" => Some(Self::Nfkd),
9254            "NO" => Some(Self::No),
9255            "NONE" => Some(Self::None),
9256            "NORMALIZE" => Some(Self::Normalize),
9257            "NORMALIZED" => Some(Self::Normalized),
9258            "NOT" => Some(Self::Not),
9259            "NOTHING" => Some(Self::Nothing),
9260            "NOTIFY" => Some(Self::Notify),
9261            "NOTNULL" => Some(Self::Notnull),
9262            "NOWAIT" => Some(Self::Nowait),
9263            "NULL_P" => Some(Self::NullP),
9264            "NULLIF" => Some(Self::Nullif),
9265            "NULLS_P" => Some(Self::NullsP),
9266            "NUMERIC" => Some(Self::Numeric),
9267            "OBJECT_P" => Some(Self::ObjectP),
9268            "OBJECTS_P" => Some(Self::ObjectsP),
9269            "OF" => Some(Self::Of),
9270            "OFF" => Some(Self::Off),
9271            "OFFSET" => Some(Self::Offset),
9272            "OIDS" => Some(Self::Oids),
9273            "OLD" => Some(Self::Old),
9274            "OMIT" => Some(Self::Omit),
9275            "ON" => Some(Self::On),
9276            "ONLY" => Some(Self::Only),
9277            "OPERATOR" => Some(Self::Operator),
9278            "OPTION" => Some(Self::Option),
9279            "OPTIONS" => Some(Self::Options),
9280            "OR" => Some(Self::Or),
9281            "ORDER" => Some(Self::Order),
9282            "ORDINALITY" => Some(Self::Ordinality),
9283            "OTHERS" => Some(Self::Others),
9284            "OUT_P" => Some(Self::OutP),
9285            "OUTER_P" => Some(Self::OuterP),
9286            "OVER" => Some(Self::Over),
9287            "OVERLAPS" => Some(Self::Overlaps),
9288            "OVERLAY" => Some(Self::Overlay),
9289            "OVERRIDING" => Some(Self::Overriding),
9290            "OWNED" => Some(Self::Owned),
9291            "OWNER" => Some(Self::Owner),
9292            "PARALLEL" => Some(Self::Parallel),
9293            "PARAMETER" => Some(Self::Parameter),
9294            "PARSER" => Some(Self::Parser),
9295            "PARTIAL" => Some(Self::Partial),
9296            "PARTITION" => Some(Self::Partition),
9297            "PASSING" => Some(Self::Passing),
9298            "PASSWORD" => Some(Self::Password),
9299            "PATH" => Some(Self::Path),
9300            "PERIOD" => Some(Self::Period),
9301            "PLACING" => Some(Self::Placing),
9302            "PLAN" => Some(Self::Plan),
9303            "PLANS" => Some(Self::Plans),
9304            "POLICY" => Some(Self::Policy),
9305            "POSITION" => Some(Self::Position),
9306            "PRECEDING" => Some(Self::Preceding),
9307            "PRECISION" => Some(Self::Precision),
9308            "PRESERVE" => Some(Self::Preserve),
9309            "PREPARE" => Some(Self::Prepare),
9310            "PREPARED" => Some(Self::Prepared),
9311            "PRIMARY" => Some(Self::Primary),
9312            "PRIOR" => Some(Self::Prior),
9313            "PRIVILEGES" => Some(Self::Privileges),
9314            "PROCEDURAL" => Some(Self::Procedural),
9315            "PROCEDURE" => Some(Self::Procedure),
9316            "PROCEDURES" => Some(Self::Procedures),
9317            "PROGRAM" => Some(Self::Program),
9318            "PUBLICATION" => Some(Self::Publication),
9319            "QUOTE" => Some(Self::Quote),
9320            "QUOTES" => Some(Self::Quotes),
9321            "RANGE" => Some(Self::Range),
9322            "READ" => Some(Self::Read),
9323            "REAL" => Some(Self::Real),
9324            "REASSIGN" => Some(Self::Reassign),
9325            "RECURSIVE" => Some(Self::Recursive),
9326            "REF_P" => Some(Self::RefP),
9327            "REFERENCES" => Some(Self::References),
9328            "REFERENCING" => Some(Self::Referencing),
9329            "REFRESH" => Some(Self::Refresh),
9330            "REINDEX" => Some(Self::Reindex),
9331            "RELATIVE_P" => Some(Self::RelativeP),
9332            "RELEASE" => Some(Self::Release),
9333            "RENAME" => Some(Self::Rename),
9334            "REPEATABLE" => Some(Self::Repeatable),
9335            "REPLACE" => Some(Self::Replace),
9336            "REPLICA" => Some(Self::Replica),
9337            "RESET" => Some(Self::Reset),
9338            "RESTART" => Some(Self::Restart),
9339            "RESTRICT" => Some(Self::Restrict),
9340            "RETURN" => Some(Self::Return),
9341            "RETURNING" => Some(Self::Returning),
9342            "RETURNS" => Some(Self::Returns),
9343            "REVOKE" => Some(Self::Revoke),
9344            "RIGHT" => Some(Self::Right),
9345            "ROLE" => Some(Self::Role),
9346            "ROLLBACK" => Some(Self::Rollback),
9347            "ROLLUP" => Some(Self::Rollup),
9348            "ROUTINE" => Some(Self::Routine),
9349            "ROUTINES" => Some(Self::Routines),
9350            "ROW" => Some(Self::Row),
9351            "ROWS" => Some(Self::Rows),
9352            "RULE" => Some(Self::Rule),
9353            "SAVEPOINT" => Some(Self::Savepoint),
9354            "SCALAR" => Some(Self::Scalar),
9355            "SCHEMA" => Some(Self::Schema),
9356            "SCHEMAS" => Some(Self::Schemas),
9357            "SCROLL" => Some(Self::Scroll),
9358            "SEARCH" => Some(Self::Search),
9359            "SECOND_P" => Some(Self::SecondP),
9360            "SECURITY" => Some(Self::Security),
9361            "SELECT" => Some(Self::Select),
9362            "SEQUENCE" => Some(Self::Sequence),
9363            "SEQUENCES" => Some(Self::Sequences),
9364            "SERIALIZABLE" => Some(Self::Serializable),
9365            "SERVER" => Some(Self::Server),
9366            "SESSION" => Some(Self::Session),
9367            "SESSION_USER" => Some(Self::SessionUser),
9368            "SET" => Some(Self::Set),
9369            "SETS" => Some(Self::Sets),
9370            "SETOF" => Some(Self::Setof),
9371            "SHARE" => Some(Self::Share),
9372            "SHOW" => Some(Self::Show),
9373            "SIMILAR" => Some(Self::Similar),
9374            "SIMPLE" => Some(Self::Simple),
9375            "SKIP" => Some(Self::Skip),
9376            "SMALLINT" => Some(Self::Smallint),
9377            "SNAPSHOT" => Some(Self::Snapshot),
9378            "SOME" => Some(Self::Some),
9379            "SOURCE" => Some(Self::Source),
9380            "SQL_P" => Some(Self::SqlP),
9381            "STABLE" => Some(Self::Stable),
9382            "STANDALONE_P" => Some(Self::StandaloneP),
9383            "START" => Some(Self::Start),
9384            "STATEMENT" => Some(Self::Statement),
9385            "STATISTICS" => Some(Self::Statistics),
9386            "STDIN" => Some(Self::Stdin),
9387            "STDOUT" => Some(Self::Stdout),
9388            "STORAGE" => Some(Self::Storage),
9389            "STORED" => Some(Self::Stored),
9390            "STRICT_P" => Some(Self::StrictP),
9391            "STRING_P" => Some(Self::StringP),
9392            "STRIP_P" => Some(Self::StripP),
9393            "SUBSCRIPTION" => Some(Self::Subscription),
9394            "SUBSTRING" => Some(Self::Substring),
9395            "SUPPORT" => Some(Self::Support),
9396            "SYMMETRIC" => Some(Self::Symmetric),
9397            "SYSID" => Some(Self::Sysid),
9398            "SYSTEM_P" => Some(Self::SystemP),
9399            "SYSTEM_USER" => Some(Self::SystemUser),
9400            "TABLE" => Some(Self::Table),
9401            "TABLES" => Some(Self::Tables),
9402            "TABLESAMPLE" => Some(Self::Tablesample),
9403            "TABLESPACE" => Some(Self::Tablespace),
9404            "TARGET" => Some(Self::Target),
9405            "TEMP" => Some(Self::Temp),
9406            "TEMPLATE" => Some(Self::Template),
9407            "TEMPORARY" => Some(Self::Temporary),
9408            "TEXT_P" => Some(Self::TextP),
9409            "THEN" => Some(Self::Then),
9410            "TIES" => Some(Self::Ties),
9411            "TIME" => Some(Self::Time),
9412            "TIMESTAMP" => Some(Self::Timestamp),
9413            "TO" => Some(Self::To),
9414            "TRAILING" => Some(Self::Trailing),
9415            "TRANSACTION" => Some(Self::Transaction),
9416            "TRANSFORM" => Some(Self::Transform),
9417            "TREAT" => Some(Self::Treat),
9418            "TRIGGER" => Some(Self::Trigger),
9419            "TRIM" => Some(Self::Trim),
9420            "TRUE_P" => Some(Self::TrueP),
9421            "TRUNCATE" => Some(Self::Truncate),
9422            "TRUSTED" => Some(Self::Trusted),
9423            "TYPE_P" => Some(Self::TypeP),
9424            "TYPES_P" => Some(Self::TypesP),
9425            "UESCAPE" => Some(Self::Uescape),
9426            "UNBOUNDED" => Some(Self::Unbounded),
9427            "UNCONDITIONAL" => Some(Self::Unconditional),
9428            "UNCOMMITTED" => Some(Self::Uncommitted),
9429            "UNENCRYPTED" => Some(Self::Unencrypted),
9430            "UNION" => Some(Self::Union),
9431            "UNIQUE" => Some(Self::Unique),
9432            "UNKNOWN" => Some(Self::Unknown),
9433            "UNLISTEN" => Some(Self::Unlisten),
9434            "UNLOGGED" => Some(Self::Unlogged),
9435            "UNTIL" => Some(Self::Until),
9436            "UPDATE" => Some(Self::Update),
9437            "USER" => Some(Self::User),
9438            "USING" => Some(Self::Using),
9439            "VACUUM" => Some(Self::Vacuum),
9440            "VALID" => Some(Self::Valid),
9441            "VALIDATE" => Some(Self::Validate),
9442            "VALIDATOR" => Some(Self::Validator),
9443            "VALUE_P" => Some(Self::ValueP),
9444            "VALUES" => Some(Self::Values),
9445            "VARCHAR" => Some(Self::Varchar),
9446            "VARIADIC" => Some(Self::Variadic),
9447            "VARYING" => Some(Self::Varying),
9448            "VERBOSE" => Some(Self::Verbose),
9449            "VERSION_P" => Some(Self::VersionP),
9450            "VIEW" => Some(Self::View),
9451            "VIEWS" => Some(Self::Views),
9452            "VIRTUAL" => Some(Self::Virtual),
9453            "VOLATILE" => Some(Self::Volatile),
9454            "WHEN" => Some(Self::When),
9455            "WHERE" => Some(Self::Where),
9456            "WHITESPACE_P" => Some(Self::WhitespaceP),
9457            "WINDOW" => Some(Self::Window),
9458            "WITH" => Some(Self::With),
9459            "WITHIN" => Some(Self::Within),
9460            "WITHOUT" => Some(Self::Without),
9461            "WORK" => Some(Self::Work),
9462            "WRAPPER" => Some(Self::Wrapper),
9463            "WRITE" => Some(Self::Write),
9464            "XML_P" => Some(Self::XmlP),
9465            "XMLATTRIBUTES" => Some(Self::Xmlattributes),
9466            "XMLCONCAT" => Some(Self::Xmlconcat),
9467            "XMLELEMENT" => Some(Self::Xmlelement),
9468            "XMLEXISTS" => Some(Self::Xmlexists),
9469            "XMLFOREST" => Some(Self::Xmlforest),
9470            "XMLNAMESPACES" => Some(Self::Xmlnamespaces),
9471            "XMLPARSE" => Some(Self::Xmlparse),
9472            "XMLPI" => Some(Self::Xmlpi),
9473            "XMLROOT" => Some(Self::Xmlroot),
9474            "XMLSERIALIZE" => Some(Self::Xmlserialize),
9475            "XMLTABLE" => Some(Self::Xmltable),
9476            "YEAR_P" => Some(Self::YearP),
9477            "YES_P" => Some(Self::YesP),
9478            "ZONE" => Some(Self::Zone),
9479            "FORMAT_LA" => Some(Self::FormatLa),
9480            "NOT_LA" => Some(Self::NotLa),
9481            "NULLS_LA" => Some(Self::NullsLa),
9482            "WITH_LA" => Some(Self::WithLa),
9483            "WITHOUT_LA" => Some(Self::WithoutLa),
9484            "MODE_TYPE_NAME" => Some(Self::ModeTypeName),
9485            "MODE_PLPGSQL_EXPR" => Some(Self::ModePlpgsqlExpr),
9486            "MODE_PLPGSQL_ASSIGN1" => Some(Self::ModePlpgsqlAssign1),
9487            "MODE_PLPGSQL_ASSIGN2" => Some(Self::ModePlpgsqlAssign2),
9488            "MODE_PLPGSQL_ASSIGN3" => Some(Self::ModePlpgsqlAssign3),
9489            "UMINUS" => Some(Self::Uminus),
9490            _ => None,
9491        }
9492    }
9493}