Skip to main content

squawk_syntax/ast/generated/
nodes.rs

1// Generated via:
2//   cargo xtask codegen
3
4use crate::SyntaxKind;
5use crate::ast::AstNode;
6use crate::ast::{AstChildren, support};
7use crate::syntax_node::SyntaxNode;
8use crate::syntax_node::SyntaxToken;
9
10#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11pub struct Absolute {
12    pub(crate) syntax: SyntaxNode,
13}
14impl Absolute {
15    #[inline]
16    pub fn expr(&self) -> Option<Expr> {
17        support::child(&self.syntax)
18    }
19    #[inline]
20    pub fn absolute_token(&self) -> Option<SyntaxToken> {
21        support::token(&self.syntax, SyntaxKind::ABSOLUTE_KW)
22    }
23}
24
25#[derive(Debug, Clone, PartialEq, Eq, Hash)]
26pub struct AccessExclusive {
27    pub(crate) syntax: SyntaxNode,
28}
29impl AccessExclusive {
30    #[inline]
31    pub fn access_token(&self) -> Option<SyntaxToken> {
32        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
33    }
34    #[inline]
35    pub fn exclusive_token(&self) -> Option<SyntaxToken> {
36        support::token(&self.syntax, SyntaxKind::EXCLUSIVE_KW)
37    }
38}
39
40#[derive(Debug, Clone, PartialEq, Eq, Hash)]
41pub struct AccessShare {
42    pub(crate) syntax: SyntaxNode,
43}
44impl AccessShare {
45    #[inline]
46    pub fn access_token(&self) -> Option<SyntaxToken> {
47        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
48    }
49    #[inline]
50    pub fn share_token(&self) -> Option<SyntaxToken> {
51        support::token(&self.syntax, SyntaxKind::SHARE_KW)
52    }
53}
54
55#[derive(Debug, Clone, PartialEq, Eq, Hash)]
56pub struct AddAttribute {
57    pub(crate) syntax: SyntaxNode,
58}
59impl AddAttribute {
60    #[inline]
61    pub fn cascade(&self) -> Option<Cascade> {
62        support::child(&self.syntax)
63    }
64    #[inline]
65    pub fn collate(&self) -> Option<Collate> {
66        support::child(&self.syntax)
67    }
68    #[inline]
69    pub fn name(&self) -> Option<Name> {
70        support::child(&self.syntax)
71    }
72    #[inline]
73    pub fn restrict(&self) -> Option<Restrict> {
74        support::child(&self.syntax)
75    }
76    #[inline]
77    pub fn ty(&self) -> Option<Type> {
78        support::child(&self.syntax)
79    }
80    #[inline]
81    pub fn add_token(&self) -> Option<SyntaxToken> {
82        support::token(&self.syntax, SyntaxKind::ADD_KW)
83    }
84    #[inline]
85    pub fn attribute_token(&self) -> Option<SyntaxToken> {
86        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
87    }
88}
89
90#[derive(Debug, Clone, PartialEq, Eq, Hash)]
91pub struct AddColumn {
92    pub(crate) syntax: SyntaxNode,
93}
94impl AddColumn {
95    #[inline]
96    pub fn collate(&self) -> Option<Collate> {
97        support::child(&self.syntax)
98    }
99    #[inline]
100    pub fn constraints(&self) -> AstChildren<Constraint> {
101        support::children(&self.syntax)
102    }
103    #[inline]
104    pub fn if_not_exists(&self) -> Option<IfNotExists> {
105        support::child(&self.syntax)
106    }
107    #[inline]
108    pub fn name(&self) -> Option<Name> {
109        support::child(&self.syntax)
110    }
111    #[inline]
112    pub fn ty(&self) -> Option<Type> {
113        support::child(&self.syntax)
114    }
115    #[inline]
116    pub fn add_token(&self) -> Option<SyntaxToken> {
117        support::token(&self.syntax, SyntaxKind::ADD_KW)
118    }
119    #[inline]
120    pub fn column_token(&self) -> Option<SyntaxToken> {
121        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
122    }
123}
124
125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
126pub struct AddConstraint {
127    pub(crate) syntax: SyntaxNode,
128}
129impl AddConstraint {
130    #[inline]
131    pub fn constraint(&self) -> Option<Constraint> {
132        support::child(&self.syntax)
133    }
134    #[inline]
135    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
136        support::child(&self.syntax)
137    }
138    #[inline]
139    pub fn enforced(&self) -> Option<Enforced> {
140        support::child(&self.syntax)
141    }
142    #[inline]
143    pub fn initially_deferred_constraint_option(
144        &self,
145    ) -> Option<InitiallyDeferredConstraintOption> {
146        support::child(&self.syntax)
147    }
148    #[inline]
149    pub fn initially_immediate_constraint_option(
150        &self,
151    ) -> Option<InitiallyImmediateConstraintOption> {
152        support::child(&self.syntax)
153    }
154    #[inline]
155    pub fn no_inherit(&self) -> Option<NoInherit> {
156        support::child(&self.syntax)
157    }
158    #[inline]
159    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
160        support::child(&self.syntax)
161    }
162    #[inline]
163    pub fn not_enforced(&self) -> Option<NotEnforced> {
164        support::child(&self.syntax)
165    }
166    #[inline]
167    pub fn not_valid(&self) -> Option<NotValid> {
168        support::child(&self.syntax)
169    }
170    #[inline]
171    pub fn add_token(&self) -> Option<SyntaxToken> {
172        support::token(&self.syntax, SyntaxKind::ADD_KW)
173    }
174}
175
176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
177pub struct AddGenerated {
178    pub(crate) syntax: SyntaxNode,
179}
180impl AddGenerated {
181    #[inline]
182    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
183        support::child(&self.syntax)
184    }
185    #[inline]
186    pub fn add_token(&self) -> Option<SyntaxToken> {
187        support::token(&self.syntax, SyntaxKind::ADD_KW)
188    }
189    #[inline]
190    pub fn always_token(&self) -> Option<SyntaxToken> {
191        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
192    }
193    #[inline]
194    pub fn as_token(&self) -> Option<SyntaxToken> {
195        support::token(&self.syntax, SyntaxKind::AS_KW)
196    }
197    #[inline]
198    pub fn by_token(&self) -> Option<SyntaxToken> {
199        support::token(&self.syntax, SyntaxKind::BY_KW)
200    }
201    #[inline]
202    pub fn default_token(&self) -> Option<SyntaxToken> {
203        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
204    }
205    #[inline]
206    pub fn generated_token(&self) -> Option<SyntaxToken> {
207        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
208    }
209    #[inline]
210    pub fn identity_token(&self) -> Option<SyntaxToken> {
211        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
212    }
213}
214
215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
216pub struct AddLabel {
217    pub(crate) syntax: SyntaxNode,
218}
219impl AddLabel {
220    #[inline]
221    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
222        support::child(&self.syntax)
223    }
224    #[inline]
225    pub fn name(&self) -> Option<Name> {
226        support::child(&self.syntax)
227    }
228    #[inline]
229    pub fn add_token(&self) -> Option<SyntaxToken> {
230        support::token(&self.syntax, SyntaxKind::ADD_KW)
231    }
232    #[inline]
233    pub fn label_token(&self) -> Option<SyntaxToken> {
234        support::token(&self.syntax, SyntaxKind::LABEL_KW)
235    }
236}
237
238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
239pub struct AddOpClassOptions {
240    pub(crate) syntax: SyntaxNode,
241}
242impl AddOpClassOptions {
243    #[inline]
244    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
245        support::child(&self.syntax)
246    }
247    #[inline]
248    pub fn add_token(&self) -> Option<SyntaxToken> {
249        support::token(&self.syntax, SyntaxKind::ADD_KW)
250    }
251}
252
253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
254pub struct AddValue {
255    pub(crate) syntax: SyntaxNode,
256}
257impl AddValue {
258    #[inline]
259    pub fn if_not_exists(&self) -> Option<IfNotExists> {
260        support::child(&self.syntax)
261    }
262    #[inline]
263    pub fn literal(&self) -> Option<Literal> {
264        support::child(&self.syntax)
265    }
266    #[inline]
267    pub fn value_position(&self) -> Option<ValuePosition> {
268        support::child(&self.syntax)
269    }
270    #[inline]
271    pub fn add_token(&self) -> Option<SyntaxToken> {
272        support::token(&self.syntax, SyntaxKind::ADD_KW)
273    }
274    #[inline]
275    pub fn value_token(&self) -> Option<SyntaxToken> {
276        support::token(&self.syntax, SyntaxKind::VALUE_KW)
277    }
278}
279
280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
281pub struct AddVertexEdgeLabelProperties {
282    pub(crate) syntax: SyntaxNode,
283}
284impl AddVertexEdgeLabelProperties {
285    #[inline]
286    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
287        support::child(&self.syntax)
288    }
289    #[inline]
290    pub fn name_ref(&self) -> Option<NameRef> {
291        support::child(&self.syntax)
292    }
293    #[inline]
294    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
295        support::token(&self.syntax, SyntaxKind::L_PAREN)
296    }
297    #[inline]
298    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
299        support::token(&self.syntax, SyntaxKind::R_PAREN)
300    }
301    #[inline]
302    pub fn add_token(&self) -> Option<SyntaxToken> {
303        support::token(&self.syntax, SyntaxKind::ADD_KW)
304    }
305    #[inline]
306    pub fn alter_token(&self) -> Option<SyntaxToken> {
307        support::token(&self.syntax, SyntaxKind::ALTER_KW)
308    }
309    #[inline]
310    pub fn edge_token(&self) -> Option<SyntaxToken> {
311        support::token(&self.syntax, SyntaxKind::EDGE_KW)
312    }
313    #[inline]
314    pub fn label_token(&self) -> Option<SyntaxToken> {
315        support::token(&self.syntax, SyntaxKind::LABEL_KW)
316    }
317    #[inline]
318    pub fn node_token(&self) -> Option<SyntaxToken> {
319        support::token(&self.syntax, SyntaxKind::NODE_KW)
320    }
321    #[inline]
322    pub fn properties_token(&self) -> Option<SyntaxToken> {
323        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
324    }
325    #[inline]
326    pub fn relationship_token(&self) -> Option<SyntaxToken> {
327        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
328    }
329    #[inline]
330    pub fn table_token(&self) -> Option<SyntaxToken> {
331        support::token(&self.syntax, SyntaxKind::TABLE_KW)
332    }
333    #[inline]
334    pub fn vertex_token(&self) -> Option<SyntaxToken> {
335        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
336    }
337}
338
339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
340pub struct AddVertexEdgeTables {
341    pub(crate) syntax: SyntaxNode,
342}
343impl AddVertexEdgeTables {
344    #[inline]
345    pub fn edge_tables(&self) -> Option<EdgeTables> {
346        support::child(&self.syntax)
347    }
348    #[inline]
349    pub fn vertex_tables(&self) -> Option<VertexTables> {
350        support::child(&self.syntax)
351    }
352    #[inline]
353    pub fn add_token(&self) -> Option<SyntaxToken> {
354        support::token(&self.syntax, SyntaxKind::ADD_KW)
355    }
356}
357
358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
359pub struct AfterValue {
360    pub(crate) syntax: SyntaxNode,
361}
362impl AfterValue {
363    #[inline]
364    pub fn literal(&self) -> Option<Literal> {
365        support::child(&self.syntax)
366    }
367    #[inline]
368    pub fn after_token(&self) -> Option<SyntaxToken> {
369        support::token(&self.syntax, SyntaxKind::AFTER_KW)
370    }
371}
372
373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
374pub struct Aggregate {
375    pub(crate) syntax: SyntaxNode,
376}
377impl Aggregate {
378    #[inline]
379    pub fn param_list(&self) -> Option<ParamList> {
380        support::child(&self.syntax)
381    }
382    #[inline]
383    pub fn path(&self) -> Option<Path> {
384        support::child(&self.syntax)
385    }
386}
387
388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
389pub struct Alias {
390    pub(crate) syntax: SyntaxNode,
391}
392impl Alias {
393    #[inline]
394    pub fn column_list(&self) -> Option<ColumnList> {
395        support::child(&self.syntax)
396    }
397    #[inline]
398    pub fn name(&self) -> Option<Name> {
399        support::child(&self.syntax)
400    }
401    #[inline]
402    pub fn as_token(&self) -> Option<SyntaxToken> {
403        support::token(&self.syntax, SyntaxKind::AS_KW)
404    }
405}
406
407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
408pub struct All {
409    pub(crate) syntax: SyntaxNode,
410}
411impl All {
412    #[inline]
413    pub fn all_token(&self) -> Option<SyntaxToken> {
414        support::token(&self.syntax, SyntaxKind::ALL_KW)
415    }
416}
417
418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
419pub struct AllFn {
420    pub(crate) syntax: SyntaxNode,
421}
422impl AllFn {
423    #[inline]
424    pub fn expr(&self) -> Option<Expr> {
425        support::child(&self.syntax)
426    }
427    #[inline]
428    pub fn select_variant(&self) -> Option<SelectVariant> {
429        support::child(&self.syntax)
430    }
431    #[inline]
432    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
433        support::token(&self.syntax, SyntaxKind::L_PAREN)
434    }
435    #[inline]
436    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
437        support::token(&self.syntax, SyntaxKind::R_PAREN)
438    }
439    #[inline]
440    pub fn all_token(&self) -> Option<SyntaxToken> {
441        support::token(&self.syntax, SyntaxKind::ALL_KW)
442    }
443}
444
445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
446pub struct AllProperties {
447    pub(crate) syntax: SyntaxNode,
448}
449impl AllProperties {
450    #[inline]
451    pub fn all_token(&self) -> Option<SyntaxToken> {
452        support::token(&self.syntax, SyntaxKind::ALL_KW)
453    }
454    #[inline]
455    pub fn columns_token(&self) -> Option<SyntaxToken> {
456        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
457    }
458    #[inline]
459    pub fn properties_token(&self) -> Option<SyntaxToken> {
460        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
461    }
462}
463
464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
465pub struct AlterAggregate {
466    pub(crate) syntax: SyntaxNode,
467}
468impl AlterAggregate {
469    #[inline]
470    pub fn aggregate(&self) -> Option<Aggregate> {
471        support::child(&self.syntax)
472    }
473    #[inline]
474    pub fn owner_to(&self) -> Option<OwnerTo> {
475        support::child(&self.syntax)
476    }
477    #[inline]
478    pub fn rename_to(&self) -> Option<RenameTo> {
479        support::child(&self.syntax)
480    }
481    #[inline]
482    pub fn set_schema(&self) -> Option<SetSchema> {
483        support::child(&self.syntax)
484    }
485    #[inline]
486    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
487        support::token(&self.syntax, SyntaxKind::SEMICOLON)
488    }
489    #[inline]
490    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
491        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
492    }
493    #[inline]
494    pub fn alter_token(&self) -> Option<SyntaxToken> {
495        support::token(&self.syntax, SyntaxKind::ALTER_KW)
496    }
497}
498
499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
500pub struct AlterAttribute {
501    pub(crate) syntax: SyntaxNode,
502}
503impl AlterAttribute {
504    #[inline]
505    pub fn cascade(&self) -> Option<Cascade> {
506        support::child(&self.syntax)
507    }
508    #[inline]
509    pub fn collate(&self) -> Option<Collate> {
510        support::child(&self.syntax)
511    }
512    #[inline]
513    pub fn name_ref(&self) -> Option<NameRef> {
514        support::child(&self.syntax)
515    }
516    #[inline]
517    pub fn restrict(&self) -> Option<Restrict> {
518        support::child(&self.syntax)
519    }
520    #[inline]
521    pub fn ty(&self) -> Option<Type> {
522        support::child(&self.syntax)
523    }
524    #[inline]
525    pub fn alter_token(&self) -> Option<SyntaxToken> {
526        support::token(&self.syntax, SyntaxKind::ALTER_KW)
527    }
528    #[inline]
529    pub fn attribute_token(&self) -> Option<SyntaxToken> {
530        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
531    }
532    #[inline]
533    pub fn data_token(&self) -> Option<SyntaxToken> {
534        support::token(&self.syntax, SyntaxKind::DATA_KW)
535    }
536    #[inline]
537    pub fn set_token(&self) -> Option<SyntaxToken> {
538        support::token(&self.syntax, SyntaxKind::SET_KW)
539    }
540    #[inline]
541    pub fn type_token(&self) -> Option<SyntaxToken> {
542        support::token(&self.syntax, SyntaxKind::TYPE_KW)
543    }
544}
545
546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
547pub struct AlterCollation {
548    pub(crate) syntax: SyntaxNode,
549}
550impl AlterCollation {
551    #[inline]
552    pub fn owner_to(&self) -> Option<OwnerTo> {
553        support::child(&self.syntax)
554    }
555    #[inline]
556    pub fn path(&self) -> Option<Path> {
557        support::child(&self.syntax)
558    }
559    #[inline]
560    pub fn refresh_version(&self) -> Option<RefreshVersion> {
561        support::child(&self.syntax)
562    }
563    #[inline]
564    pub fn rename_to(&self) -> Option<RenameTo> {
565        support::child(&self.syntax)
566    }
567    #[inline]
568    pub fn set_schema(&self) -> Option<SetSchema> {
569        support::child(&self.syntax)
570    }
571    #[inline]
572    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
573        support::token(&self.syntax, SyntaxKind::SEMICOLON)
574    }
575    #[inline]
576    pub fn alter_token(&self) -> Option<SyntaxToken> {
577        support::token(&self.syntax, SyntaxKind::ALTER_KW)
578    }
579    #[inline]
580    pub fn collation_token(&self) -> Option<SyntaxToken> {
581        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
582    }
583}
584
585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
586pub struct AlterColumn {
587    pub(crate) syntax: SyntaxNode,
588}
589impl AlterColumn {
590    #[inline]
591    pub fn name_ref(&self) -> Option<NameRef> {
592        support::child(&self.syntax)
593    }
594    #[inline]
595    pub fn option(&self) -> Option<AlterColumnOption> {
596        support::child(&self.syntax)
597    }
598    #[inline]
599    pub fn alter_token(&self) -> Option<SyntaxToken> {
600        support::token(&self.syntax, SyntaxKind::ALTER_KW)
601    }
602    #[inline]
603    pub fn column_token(&self) -> Option<SyntaxToken> {
604        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
605    }
606}
607
608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
609pub struct AlterConstraint {
610    pub(crate) syntax: SyntaxNode,
611}
612impl AlterConstraint {
613    #[inline]
614    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
615        support::child(&self.syntax)
616    }
617    #[inline]
618    pub fn initially_deferred_constraint_option(
619        &self,
620    ) -> Option<InitiallyDeferredConstraintOption> {
621        support::child(&self.syntax)
622    }
623    #[inline]
624    pub fn initially_immediate_constraint_option(
625        &self,
626    ) -> Option<InitiallyImmediateConstraintOption> {
627        support::child(&self.syntax)
628    }
629    #[inline]
630    pub fn name_ref(&self) -> Option<NameRef> {
631        support::child(&self.syntax)
632    }
633    #[inline]
634    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
635        support::child(&self.syntax)
636    }
637    #[inline]
638    pub fn alter_token(&self) -> Option<SyntaxToken> {
639        support::token(&self.syntax, SyntaxKind::ALTER_KW)
640    }
641    #[inline]
642    pub fn constraint_token(&self) -> Option<SyntaxToken> {
643        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
644    }
645}
646
647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
648pub struct AlterConversion {
649    pub(crate) syntax: SyntaxNode,
650}
651impl AlterConversion {
652    #[inline]
653    pub fn owner_to(&self) -> Option<OwnerTo> {
654        support::child(&self.syntax)
655    }
656    #[inline]
657    pub fn path(&self) -> Option<Path> {
658        support::child(&self.syntax)
659    }
660    #[inline]
661    pub fn rename_to(&self) -> Option<RenameTo> {
662        support::child(&self.syntax)
663    }
664    #[inline]
665    pub fn set_schema(&self) -> Option<SetSchema> {
666        support::child(&self.syntax)
667    }
668    #[inline]
669    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
670        support::token(&self.syntax, SyntaxKind::SEMICOLON)
671    }
672    #[inline]
673    pub fn alter_token(&self) -> Option<SyntaxToken> {
674        support::token(&self.syntax, SyntaxKind::ALTER_KW)
675    }
676    #[inline]
677    pub fn conversion_token(&self) -> Option<SyntaxToken> {
678        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
679    }
680}
681
682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
683pub struct AlterDatabase {
684    pub(crate) syntax: SyntaxNode,
685}
686impl AlterDatabase {
687    #[inline]
688    pub fn database_option_list(&self) -> Option<DatabaseOptionList> {
689        support::child(&self.syntax)
690    }
691    #[inline]
692    pub fn name_ref(&self) -> Option<NameRef> {
693        support::child(&self.syntax)
694    }
695    #[inline]
696    pub fn owner_to(&self) -> Option<OwnerTo> {
697        support::child(&self.syntax)
698    }
699    #[inline]
700    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
701        support::child(&self.syntax)
702    }
703    #[inline]
704    pub fn rename_to(&self) -> Option<RenameTo> {
705        support::child(&self.syntax)
706    }
707    #[inline]
708    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
709        support::child(&self.syntax)
710    }
711    #[inline]
712    pub fn set_config_param(&self) -> Option<SetConfigParam> {
713        support::child(&self.syntax)
714    }
715    #[inline]
716    pub fn set_tablespace(&self) -> Option<SetTablespace> {
717        support::child(&self.syntax)
718    }
719    #[inline]
720    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
721        support::token(&self.syntax, SyntaxKind::SEMICOLON)
722    }
723    #[inline]
724    pub fn alter_token(&self) -> Option<SyntaxToken> {
725        support::token(&self.syntax, SyntaxKind::ALTER_KW)
726    }
727    #[inline]
728    pub fn database_token(&self) -> Option<SyntaxToken> {
729        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
730    }
731}
732
733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
734pub struct AlterDefaultPrivileges {
735    pub(crate) syntax: SyntaxNode,
736}
737impl AlterDefaultPrivileges {
738    #[inline]
739    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
740        support::child(&self.syntax)
741    }
742    #[inline]
743    pub fn name_refs(&self) -> AstChildren<NameRef> {
744        support::children(&self.syntax)
745    }
746    #[inline]
747    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
748        support::child(&self.syntax)
749    }
750    #[inline]
751    pub fn role_ref_list(&self) -> Option<RoleRefList> {
752        support::child(&self.syntax)
753    }
754    #[inline]
755    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
756        support::token(&self.syntax, SyntaxKind::SEMICOLON)
757    }
758    #[inline]
759    pub fn alter_token(&self) -> Option<SyntaxToken> {
760        support::token(&self.syntax, SyntaxKind::ALTER_KW)
761    }
762    #[inline]
763    pub fn default_token(&self) -> Option<SyntaxToken> {
764        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
765    }
766    #[inline]
767    pub fn for_token(&self) -> Option<SyntaxToken> {
768        support::token(&self.syntax, SyntaxKind::FOR_KW)
769    }
770    #[inline]
771    pub fn in_token(&self) -> Option<SyntaxToken> {
772        support::token(&self.syntax, SyntaxKind::IN_KW)
773    }
774    #[inline]
775    pub fn privileges_token(&self) -> Option<SyntaxToken> {
776        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
777    }
778    #[inline]
779    pub fn role_token(&self) -> Option<SyntaxToken> {
780        support::token(&self.syntax, SyntaxKind::ROLE_KW)
781    }
782    #[inline]
783    pub fn schema_token(&self) -> Option<SyntaxToken> {
784        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
785    }
786    #[inline]
787    pub fn user_token(&self) -> Option<SyntaxToken> {
788        support::token(&self.syntax, SyntaxKind::USER_KW)
789    }
790}
791
792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
793pub struct AlterDomain {
794    pub(crate) syntax: SyntaxNode,
795}
796impl AlterDomain {
797    #[inline]
798    pub fn action(&self) -> Option<AlterDomainAction> {
799        support::child(&self.syntax)
800    }
801    #[inline]
802    pub fn path(&self) -> Option<Path> {
803        support::child(&self.syntax)
804    }
805    #[inline]
806    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
807        support::token(&self.syntax, SyntaxKind::SEMICOLON)
808    }
809    #[inline]
810    pub fn alter_token(&self) -> Option<SyntaxToken> {
811        support::token(&self.syntax, SyntaxKind::ALTER_KW)
812    }
813    #[inline]
814    pub fn domain_token(&self) -> Option<SyntaxToken> {
815        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
816    }
817}
818
819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
820pub struct AlterEventTrigger {
821    pub(crate) syntax: SyntaxNode,
822}
823impl AlterEventTrigger {
824    #[inline]
825    pub fn name_ref(&self) -> Option<NameRef> {
826        support::child(&self.syntax)
827    }
828    #[inline]
829    pub fn owner_to(&self) -> Option<OwnerTo> {
830        support::child(&self.syntax)
831    }
832    #[inline]
833    pub fn rename_to(&self) -> Option<RenameTo> {
834        support::child(&self.syntax)
835    }
836    #[inline]
837    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
838        support::token(&self.syntax, SyntaxKind::SEMICOLON)
839    }
840    #[inline]
841    pub fn alter_token(&self) -> Option<SyntaxToken> {
842        support::token(&self.syntax, SyntaxKind::ALTER_KW)
843    }
844    #[inline]
845    pub fn always_token(&self) -> Option<SyntaxToken> {
846        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
847    }
848    #[inline]
849    pub fn disable_token(&self) -> Option<SyntaxToken> {
850        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
851    }
852    #[inline]
853    pub fn enable_token(&self) -> Option<SyntaxToken> {
854        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
855    }
856    #[inline]
857    pub fn event_token(&self) -> Option<SyntaxToken> {
858        support::token(&self.syntax, SyntaxKind::EVENT_KW)
859    }
860    #[inline]
861    pub fn replica_token(&self) -> Option<SyntaxToken> {
862        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
863    }
864    #[inline]
865    pub fn trigger_token(&self) -> Option<SyntaxToken> {
866        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
867    }
868}
869
870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
871pub struct AlterExtension {
872    pub(crate) syntax: SyntaxNode,
873}
874impl AlterExtension {
875    #[inline]
876    pub fn aggregate(&self) -> Option<Aggregate> {
877        support::child(&self.syntax)
878    }
879    #[inline]
880    pub fn cast_sig(&self) -> Option<CastSig> {
881        support::child(&self.syntax)
882    }
883    #[inline]
884    pub fn function_sig(&self) -> Option<FunctionSig> {
885        support::child(&self.syntax)
886    }
887    #[inline]
888    pub fn literal(&self) -> Option<Literal> {
889        support::child(&self.syntax)
890    }
891    #[inline]
892    pub fn name_ref(&self) -> Option<NameRef> {
893        support::child(&self.syntax)
894    }
895    #[inline]
896    pub fn op(&self) -> Option<Op> {
897        support::child(&self.syntax)
898    }
899    #[inline]
900    pub fn path(&self) -> Option<Path> {
901        support::child(&self.syntax)
902    }
903    #[inline]
904    pub fn set_schema(&self) -> Option<SetSchema> {
905        support::child(&self.syntax)
906    }
907    #[inline]
908    pub fn ty(&self) -> Option<Type> {
909        support::child(&self.syntax)
910    }
911    #[inline]
912    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
913        support::token(&self.syntax, SyntaxKind::L_PAREN)
914    }
915    #[inline]
916    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
917        support::token(&self.syntax, SyntaxKind::R_PAREN)
918    }
919    #[inline]
920    pub fn comma_token(&self) -> Option<SyntaxToken> {
921        support::token(&self.syntax, SyntaxKind::COMMA)
922    }
923    #[inline]
924    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
925        support::token(&self.syntax, SyntaxKind::SEMICOLON)
926    }
927    #[inline]
928    pub fn access_token(&self) -> Option<SyntaxToken> {
929        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
930    }
931    #[inline]
932    pub fn add_token(&self) -> Option<SyntaxToken> {
933        support::token(&self.syntax, SyntaxKind::ADD_KW)
934    }
935    #[inline]
936    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
937        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
938    }
939    #[inline]
940    pub fn alter_token(&self) -> Option<SyntaxToken> {
941        support::token(&self.syntax, SyntaxKind::ALTER_KW)
942    }
943    #[inline]
944    pub fn cast_token(&self) -> Option<SyntaxToken> {
945        support::token(&self.syntax, SyntaxKind::CAST_KW)
946    }
947    #[inline]
948    pub fn class_token(&self) -> Option<SyntaxToken> {
949        support::token(&self.syntax, SyntaxKind::CLASS_KW)
950    }
951    #[inline]
952    pub fn collation_token(&self) -> Option<SyntaxToken> {
953        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
954    }
955    #[inline]
956    pub fn configuration_token(&self) -> Option<SyntaxToken> {
957        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
958    }
959    #[inline]
960    pub fn conversion_token(&self) -> Option<SyntaxToken> {
961        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
962    }
963    #[inline]
964    pub fn data_token(&self) -> Option<SyntaxToken> {
965        support::token(&self.syntax, SyntaxKind::DATA_KW)
966    }
967    #[inline]
968    pub fn database_token(&self) -> Option<SyntaxToken> {
969        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
970    }
971    #[inline]
972    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
973        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
974    }
975    #[inline]
976    pub fn domain_token(&self) -> Option<SyntaxToken> {
977        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
978    }
979    #[inline]
980    pub fn drop_token(&self) -> Option<SyntaxToken> {
981        support::token(&self.syntax, SyntaxKind::DROP_KW)
982    }
983    #[inline]
984    pub fn event_token(&self) -> Option<SyntaxToken> {
985        support::token(&self.syntax, SyntaxKind::EVENT_KW)
986    }
987    #[inline]
988    pub fn extension_token(&self) -> Option<SyntaxToken> {
989        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
990    }
991    #[inline]
992    pub fn family_token(&self) -> Option<SyntaxToken> {
993        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
994    }
995    #[inline]
996    pub fn for_token(&self) -> Option<SyntaxToken> {
997        support::token(&self.syntax, SyntaxKind::FOR_KW)
998    }
999    #[inline]
1000    pub fn foreign_token(&self) -> Option<SyntaxToken> {
1001        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
1002    }
1003    #[inline]
1004    pub fn function_token(&self) -> Option<SyntaxToken> {
1005        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
1006    }
1007    #[inline]
1008    pub fn ident_token(&self) -> Option<SyntaxToken> {
1009        support::token(&self.syntax, SyntaxKind::IDENT)
1010    }
1011    #[inline]
1012    pub fn index_token(&self) -> Option<SyntaxToken> {
1013        support::token(&self.syntax, SyntaxKind::INDEX_KW)
1014    }
1015    #[inline]
1016    pub fn language_token(&self) -> Option<SyntaxToken> {
1017        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
1018    }
1019    #[inline]
1020    pub fn materialized_token(&self) -> Option<SyntaxToken> {
1021        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
1022    }
1023    #[inline]
1024    pub fn method_token(&self) -> Option<SyntaxToken> {
1025        support::token(&self.syntax, SyntaxKind::METHOD_KW)
1026    }
1027    #[inline]
1028    pub fn operator_token(&self) -> Option<SyntaxToken> {
1029        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1030    }
1031    #[inline]
1032    pub fn parser_token(&self) -> Option<SyntaxToken> {
1033        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1034    }
1035    #[inline]
1036    pub fn procedural_token(&self) -> Option<SyntaxToken> {
1037        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
1038    }
1039    #[inline]
1040    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1041        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1042    }
1043    #[inline]
1044    pub fn publication_token(&self) -> Option<SyntaxToken> {
1045        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1046    }
1047    #[inline]
1048    pub fn role_token(&self) -> Option<SyntaxToken> {
1049        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1050    }
1051    #[inline]
1052    pub fn routine_token(&self) -> Option<SyntaxToken> {
1053        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1054    }
1055    #[inline]
1056    pub fn schema_token(&self) -> Option<SyntaxToken> {
1057        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1058    }
1059    #[inline]
1060    pub fn search_token(&self) -> Option<SyntaxToken> {
1061        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1062    }
1063    #[inline]
1064    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1065        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1066    }
1067    #[inline]
1068    pub fn server_token(&self) -> Option<SyntaxToken> {
1069        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1070    }
1071    #[inline]
1072    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1073        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1074    }
1075    #[inline]
1076    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1077        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1078    }
1079    #[inline]
1080    pub fn table_token(&self) -> Option<SyntaxToken> {
1081        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1082    }
1083    #[inline]
1084    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1085        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1086    }
1087    #[inline]
1088    pub fn template_token(&self) -> Option<SyntaxToken> {
1089        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1090    }
1091    #[inline]
1092    pub fn text_token(&self) -> Option<SyntaxToken> {
1093        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1094    }
1095    #[inline]
1096    pub fn to_token(&self) -> Option<SyntaxToken> {
1097        support::token(&self.syntax, SyntaxKind::TO_KW)
1098    }
1099    #[inline]
1100    pub fn transform_token(&self) -> Option<SyntaxToken> {
1101        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
1102    }
1103    #[inline]
1104    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1105        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1106    }
1107    #[inline]
1108    pub fn type_token(&self) -> Option<SyntaxToken> {
1109        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1110    }
1111    #[inline]
1112    pub fn update_token(&self) -> Option<SyntaxToken> {
1113        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
1114    }
1115    #[inline]
1116    pub fn using_token(&self) -> Option<SyntaxToken> {
1117        support::token(&self.syntax, SyntaxKind::USING_KW)
1118    }
1119    #[inline]
1120    pub fn view_token(&self) -> Option<SyntaxToken> {
1121        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1122    }
1123    #[inline]
1124    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
1125        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
1126    }
1127}
1128
1129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1130pub struct AlterForeignDataWrapper {
1131    pub(crate) syntax: SyntaxNode,
1132}
1133impl AlterForeignDataWrapper {
1134    #[inline]
1135    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
1136        support::child(&self.syntax)
1137    }
1138    #[inline]
1139    pub fn name_ref(&self) -> Option<NameRef> {
1140        support::child(&self.syntax)
1141    }
1142    #[inline]
1143    pub fn owner_to(&self) -> Option<OwnerTo> {
1144        support::child(&self.syntax)
1145    }
1146    #[inline]
1147    pub fn rename_to(&self) -> Option<RenameTo> {
1148        support::child(&self.syntax)
1149    }
1150    #[inline]
1151    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1152        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1153    }
1154    #[inline]
1155    pub fn alter_token(&self) -> Option<SyntaxToken> {
1156        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1157    }
1158    #[inline]
1159    pub fn data_token(&self) -> Option<SyntaxToken> {
1160        support::token(&self.syntax, SyntaxKind::DATA_KW)
1161    }
1162    #[inline]
1163    pub fn foreign_token(&self) -> Option<SyntaxToken> {
1164        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
1165    }
1166    #[inline]
1167    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
1168        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
1169    }
1170}
1171
1172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1173pub struct AlterForeignTable {
1174    pub(crate) syntax: SyntaxNode,
1175}
1176impl AlterForeignTable {
1177    #[inline]
1178    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
1179        support::children(&self.syntax)
1180    }
1181    #[inline]
1182    pub fn if_exists(&self) -> Option<IfExists> {
1183        support::child(&self.syntax)
1184    }
1185    #[inline]
1186    pub fn relation_name(&self) -> Option<RelationName> {
1187        support::child(&self.syntax)
1188    }
1189    #[inline]
1190    pub fn rename_column(&self) -> Option<RenameColumn> {
1191        support::child(&self.syntax)
1192    }
1193    #[inline]
1194    pub fn rename_to(&self) -> Option<RenameTo> {
1195        support::child(&self.syntax)
1196    }
1197    #[inline]
1198    pub fn set_schema(&self) -> Option<SetSchema> {
1199        support::child(&self.syntax)
1200    }
1201    #[inline]
1202    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1203        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1204    }
1205    #[inline]
1206    pub fn alter_token(&self) -> Option<SyntaxToken> {
1207        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1208    }
1209    #[inline]
1210    pub fn foreign_token(&self) -> Option<SyntaxToken> {
1211        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
1212    }
1213    #[inline]
1214    pub fn table_token(&self) -> Option<SyntaxToken> {
1215        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1216    }
1217}
1218
1219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1220pub struct AlterFunction {
1221    pub(crate) syntax: SyntaxNode,
1222}
1223impl AlterFunction {
1224    #[inline]
1225    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1226        support::child(&self.syntax)
1227    }
1228    #[inline]
1229    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1230        support::child(&self.syntax)
1231    }
1232    #[inline]
1233    pub fn function_sig(&self) -> Option<FunctionSig> {
1234        support::child(&self.syntax)
1235    }
1236    #[inline]
1237    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1238        support::child(&self.syntax)
1239    }
1240    #[inline]
1241    pub fn owner_to(&self) -> Option<OwnerTo> {
1242        support::child(&self.syntax)
1243    }
1244    #[inline]
1245    pub fn rename_to(&self) -> Option<RenameTo> {
1246        support::child(&self.syntax)
1247    }
1248    #[inline]
1249    pub fn set_schema(&self) -> Option<SetSchema> {
1250        support::child(&self.syntax)
1251    }
1252    #[inline]
1253    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1254        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1255    }
1256    #[inline]
1257    pub fn alter_token(&self) -> Option<SyntaxToken> {
1258        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1259    }
1260    #[inline]
1261    pub fn function_token(&self) -> Option<SyntaxToken> {
1262        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
1263    }
1264    #[inline]
1265    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1266        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1267    }
1268}
1269
1270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1271pub struct AlterGroup {
1272    pub(crate) syntax: SyntaxNode,
1273}
1274impl AlterGroup {
1275    #[inline]
1276    pub fn name_refs(&self) -> AstChildren<NameRef> {
1277        support::children(&self.syntax)
1278    }
1279    #[inline]
1280    pub fn rename_to(&self) -> Option<RenameTo> {
1281        support::child(&self.syntax)
1282    }
1283    #[inline]
1284    pub fn role_ref(&self) -> Option<RoleRef> {
1285        support::child(&self.syntax)
1286    }
1287    #[inline]
1288    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1289        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1290    }
1291    #[inline]
1292    pub fn add_token(&self) -> Option<SyntaxToken> {
1293        support::token(&self.syntax, SyntaxKind::ADD_KW)
1294    }
1295    #[inline]
1296    pub fn alter_token(&self) -> Option<SyntaxToken> {
1297        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1298    }
1299    #[inline]
1300    pub fn drop_token(&self) -> Option<SyntaxToken> {
1301        support::token(&self.syntax, SyntaxKind::DROP_KW)
1302    }
1303    #[inline]
1304    pub fn group_token(&self) -> Option<SyntaxToken> {
1305        support::token(&self.syntax, SyntaxKind::GROUP_KW)
1306    }
1307    #[inline]
1308    pub fn user_token(&self) -> Option<SyntaxToken> {
1309        support::token(&self.syntax, SyntaxKind::USER_KW)
1310    }
1311}
1312
1313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1314pub struct AlterIndex {
1315    pub(crate) syntax: SyntaxNode,
1316}
1317impl AlterIndex {
1318    #[inline]
1319    pub fn alter_index_action(&self) -> Option<AlterIndexAction> {
1320        support::child(&self.syntax)
1321    }
1322    #[inline]
1323    pub fn if_exists(&self) -> Option<IfExists> {
1324        support::child(&self.syntax)
1325    }
1326    #[inline]
1327    pub fn name_ref(&self) -> Option<NameRef> {
1328        support::child(&self.syntax)
1329    }
1330    #[inline]
1331    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
1332        support::child(&self.syntax)
1333    }
1334    #[inline]
1335    pub fn path(&self) -> Option<Path> {
1336        support::child(&self.syntax)
1337    }
1338    #[inline]
1339    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1340        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1341    }
1342    #[inline]
1343    pub fn all_token(&self) -> Option<SyntaxToken> {
1344        support::token(&self.syntax, SyntaxKind::ALL_KW)
1345    }
1346    #[inline]
1347    pub fn alter_token(&self) -> Option<SyntaxToken> {
1348        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1349    }
1350    #[inline]
1351    pub fn in_token(&self) -> Option<SyntaxToken> {
1352        support::token(&self.syntax, SyntaxKind::IN_KW)
1353    }
1354    #[inline]
1355    pub fn index_token(&self) -> Option<SyntaxToken> {
1356        support::token(&self.syntax, SyntaxKind::INDEX_KW)
1357    }
1358    #[inline]
1359    pub fn nowait_token(&self) -> Option<SyntaxToken> {
1360        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
1361    }
1362    #[inline]
1363    pub fn set_token(&self) -> Option<SyntaxToken> {
1364        support::token(&self.syntax, SyntaxKind::SET_KW)
1365    }
1366    #[inline]
1367    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1368        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1369    }
1370}
1371
1372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1373pub struct AlterLanguage {
1374    pub(crate) syntax: SyntaxNode,
1375}
1376impl AlterLanguage {
1377    #[inline]
1378    pub fn name_ref(&self) -> Option<NameRef> {
1379        support::child(&self.syntax)
1380    }
1381    #[inline]
1382    pub fn owner_to(&self) -> Option<OwnerTo> {
1383        support::child(&self.syntax)
1384    }
1385    #[inline]
1386    pub fn rename_to(&self) -> Option<RenameTo> {
1387        support::child(&self.syntax)
1388    }
1389    #[inline]
1390    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1391        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1392    }
1393    #[inline]
1394    pub fn alter_token(&self) -> Option<SyntaxToken> {
1395        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1396    }
1397    #[inline]
1398    pub fn language_token(&self) -> Option<SyntaxToken> {
1399        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
1400    }
1401}
1402
1403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1404pub struct AlterLargeObject {
1405    pub(crate) syntax: SyntaxNode,
1406}
1407impl AlterLargeObject {
1408    #[inline]
1409    pub fn literal(&self) -> Option<Literal> {
1410        support::child(&self.syntax)
1411    }
1412    #[inline]
1413    pub fn role_ref(&self) -> Option<RoleRef> {
1414        support::child(&self.syntax)
1415    }
1416    #[inline]
1417    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1418        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1419    }
1420    #[inline]
1421    pub fn alter_token(&self) -> Option<SyntaxToken> {
1422        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1423    }
1424    #[inline]
1425    pub fn large_token(&self) -> Option<SyntaxToken> {
1426        support::token(&self.syntax, SyntaxKind::LARGE_KW)
1427    }
1428    #[inline]
1429    pub fn object_token(&self) -> Option<SyntaxToken> {
1430        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
1431    }
1432    #[inline]
1433    pub fn owner_token(&self) -> Option<SyntaxToken> {
1434        support::token(&self.syntax, SyntaxKind::OWNER_KW)
1435    }
1436    #[inline]
1437    pub fn to_token(&self) -> Option<SyntaxToken> {
1438        support::token(&self.syntax, SyntaxKind::TO_KW)
1439    }
1440}
1441
1442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1443pub struct AlterMaterializedView {
1444    pub(crate) syntax: SyntaxNode,
1445}
1446impl AlterMaterializedView {
1447    #[inline]
1448    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
1449        support::children(&self.syntax)
1450    }
1451    #[inline]
1452    pub fn if_exists(&self) -> Option<IfExists> {
1453        support::child(&self.syntax)
1454    }
1455    #[inline]
1456    pub fn name(&self) -> Option<Name> {
1457        support::child(&self.syntax)
1458    }
1459    #[inline]
1460    pub fn name_ref(&self) -> Option<NameRef> {
1461        support::child(&self.syntax)
1462    }
1463    #[inline]
1464    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
1465        support::child(&self.syntax)
1466    }
1467    #[inline]
1468    pub fn path(&self) -> Option<Path> {
1469        support::child(&self.syntax)
1470    }
1471    #[inline]
1472    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1473        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1474    }
1475    #[inline]
1476    pub fn all_token(&self) -> Option<SyntaxToken> {
1477        support::token(&self.syntax, SyntaxKind::ALL_KW)
1478    }
1479    #[inline]
1480    pub fn alter_token(&self) -> Option<SyntaxToken> {
1481        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1482    }
1483    #[inline]
1484    pub fn in_token(&self) -> Option<SyntaxToken> {
1485        support::token(&self.syntax, SyntaxKind::IN_KW)
1486    }
1487    #[inline]
1488    pub fn materialized_token(&self) -> Option<SyntaxToken> {
1489        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
1490    }
1491    #[inline]
1492    pub fn nowait_token(&self) -> Option<SyntaxToken> {
1493        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
1494    }
1495    #[inline]
1496    pub fn set_token(&self) -> Option<SyntaxToken> {
1497        support::token(&self.syntax, SyntaxKind::SET_KW)
1498    }
1499    #[inline]
1500    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1501        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1502    }
1503    #[inline]
1504    pub fn view_token(&self) -> Option<SyntaxToken> {
1505        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1506    }
1507}
1508
1509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1510pub struct AlterOperator {
1511    pub(crate) syntax: SyntaxNode,
1512}
1513impl AlterOperator {
1514    #[inline]
1515    pub fn op_sig(&self) -> Option<OpSig> {
1516        support::child(&self.syntax)
1517    }
1518    #[inline]
1519    pub fn owner_to(&self) -> Option<OwnerTo> {
1520        support::child(&self.syntax)
1521    }
1522    #[inline]
1523    pub fn set_options(&self) -> Option<SetOptions> {
1524        support::child(&self.syntax)
1525    }
1526    #[inline]
1527    pub fn set_schema(&self) -> Option<SetSchema> {
1528        support::child(&self.syntax)
1529    }
1530    #[inline]
1531    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1532        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1533    }
1534    #[inline]
1535    pub fn alter_token(&self) -> Option<SyntaxToken> {
1536        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1537    }
1538    #[inline]
1539    pub fn operator_token(&self) -> Option<SyntaxToken> {
1540        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1541    }
1542}
1543
1544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1545pub struct AlterOperatorClass {
1546    pub(crate) syntax: SyntaxNode,
1547}
1548impl AlterOperatorClass {
1549    #[inline]
1550    pub fn name_ref(&self) -> Option<NameRef> {
1551        support::child(&self.syntax)
1552    }
1553    #[inline]
1554    pub fn owner_to(&self) -> Option<OwnerTo> {
1555        support::child(&self.syntax)
1556    }
1557    #[inline]
1558    pub fn path(&self) -> Option<Path> {
1559        support::child(&self.syntax)
1560    }
1561    #[inline]
1562    pub fn rename_to(&self) -> Option<RenameTo> {
1563        support::child(&self.syntax)
1564    }
1565    #[inline]
1566    pub fn set_schema(&self) -> Option<SetSchema> {
1567        support::child(&self.syntax)
1568    }
1569    #[inline]
1570    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1571        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1572    }
1573    #[inline]
1574    pub fn alter_token(&self) -> Option<SyntaxToken> {
1575        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1576    }
1577    #[inline]
1578    pub fn class_token(&self) -> Option<SyntaxToken> {
1579        support::token(&self.syntax, SyntaxKind::CLASS_KW)
1580    }
1581    #[inline]
1582    pub fn operator_token(&self) -> Option<SyntaxToken> {
1583        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1584    }
1585    #[inline]
1586    pub fn using_token(&self) -> Option<SyntaxToken> {
1587        support::token(&self.syntax, SyntaxKind::USING_KW)
1588    }
1589}
1590
1591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1592pub struct AlterOperatorFamily {
1593    pub(crate) syntax: SyntaxNode,
1594}
1595impl AlterOperatorFamily {
1596    #[inline]
1597    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
1598        support::child(&self.syntax)
1599    }
1600    #[inline]
1601    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
1602        support::child(&self.syntax)
1603    }
1604    #[inline]
1605    pub fn name_ref(&self) -> Option<NameRef> {
1606        support::child(&self.syntax)
1607    }
1608    #[inline]
1609    pub fn owner_to(&self) -> Option<OwnerTo> {
1610        support::child(&self.syntax)
1611    }
1612    #[inline]
1613    pub fn path(&self) -> Option<Path> {
1614        support::child(&self.syntax)
1615    }
1616    #[inline]
1617    pub fn rename_to(&self) -> Option<RenameTo> {
1618        support::child(&self.syntax)
1619    }
1620    #[inline]
1621    pub fn set_schema(&self) -> Option<SetSchema> {
1622        support::child(&self.syntax)
1623    }
1624    #[inline]
1625    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1626        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1627    }
1628    #[inline]
1629    pub fn alter_token(&self) -> Option<SyntaxToken> {
1630        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1631    }
1632    #[inline]
1633    pub fn family_token(&self) -> Option<SyntaxToken> {
1634        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
1635    }
1636    #[inline]
1637    pub fn operator_token(&self) -> Option<SyntaxToken> {
1638        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1639    }
1640    #[inline]
1641    pub fn using_token(&self) -> Option<SyntaxToken> {
1642        support::token(&self.syntax, SyntaxKind::USING_KW)
1643    }
1644}
1645
1646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1647pub struct AlterOption {
1648    pub(crate) syntax: SyntaxNode,
1649}
1650impl AlterOption {
1651    #[inline]
1652    pub fn literal(&self) -> Option<Literal> {
1653        support::child(&self.syntax)
1654    }
1655    #[inline]
1656    pub fn name(&self) -> Option<Name> {
1657        support::child(&self.syntax)
1658    }
1659    #[inline]
1660    pub fn add_token(&self) -> Option<SyntaxToken> {
1661        support::token(&self.syntax, SyntaxKind::ADD_KW)
1662    }
1663    #[inline]
1664    pub fn drop_token(&self) -> Option<SyntaxToken> {
1665        support::token(&self.syntax, SyntaxKind::DROP_KW)
1666    }
1667    #[inline]
1668    pub fn set_token(&self) -> Option<SyntaxToken> {
1669        support::token(&self.syntax, SyntaxKind::SET_KW)
1670    }
1671}
1672
1673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1674pub struct AlterOptionList {
1675    pub(crate) syntax: SyntaxNode,
1676}
1677impl AlterOptionList {
1678    #[inline]
1679    pub fn alter_options(&self) -> AstChildren<AlterOption> {
1680        support::children(&self.syntax)
1681    }
1682    #[inline]
1683    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1684        support::token(&self.syntax, SyntaxKind::L_PAREN)
1685    }
1686    #[inline]
1687    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1688        support::token(&self.syntax, SyntaxKind::R_PAREN)
1689    }
1690    #[inline]
1691    pub fn options_token(&self) -> Option<SyntaxToken> {
1692        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
1693    }
1694}
1695
1696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1697pub struct AlterPolicy {
1698    pub(crate) syntax: SyntaxNode,
1699}
1700impl AlterPolicy {
1701    #[inline]
1702    pub fn name_ref(&self) -> Option<NameRef> {
1703        support::child(&self.syntax)
1704    }
1705    #[inline]
1706    pub fn on_table(&self) -> Option<OnTable> {
1707        support::child(&self.syntax)
1708    }
1709    #[inline]
1710    pub fn rename_to(&self) -> Option<RenameTo> {
1711        support::child(&self.syntax)
1712    }
1713    #[inline]
1714    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1715        support::child(&self.syntax)
1716    }
1717    #[inline]
1718    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
1719        support::child(&self.syntax)
1720    }
1721    #[inline]
1722    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
1723        support::child(&self.syntax)
1724    }
1725    #[inline]
1726    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1727        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1728    }
1729    #[inline]
1730    pub fn alter_token(&self) -> Option<SyntaxToken> {
1731        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1732    }
1733    #[inline]
1734    pub fn policy_token(&self) -> Option<SyntaxToken> {
1735        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1736    }
1737    #[inline]
1738    pub fn to_token(&self) -> Option<SyntaxToken> {
1739        support::token(&self.syntax, SyntaxKind::TO_KW)
1740    }
1741}
1742
1743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1744pub struct AlterProcedure {
1745    pub(crate) syntax: SyntaxNode,
1746}
1747impl AlterProcedure {
1748    #[inline]
1749    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1750        support::child(&self.syntax)
1751    }
1752    #[inline]
1753    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1754        support::child(&self.syntax)
1755    }
1756    #[inline]
1757    pub fn function_sig(&self) -> Option<FunctionSig> {
1758        support::child(&self.syntax)
1759    }
1760    #[inline]
1761    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1762        support::child(&self.syntax)
1763    }
1764    #[inline]
1765    pub fn owner_to(&self) -> Option<OwnerTo> {
1766        support::child(&self.syntax)
1767    }
1768    #[inline]
1769    pub fn rename_to(&self) -> Option<RenameTo> {
1770        support::child(&self.syntax)
1771    }
1772    #[inline]
1773    pub fn set_schema(&self) -> Option<SetSchema> {
1774        support::child(&self.syntax)
1775    }
1776    #[inline]
1777    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1778        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1779    }
1780    #[inline]
1781    pub fn alter_token(&self) -> Option<SyntaxToken> {
1782        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1783    }
1784    #[inline]
1785    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1786        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1787    }
1788    #[inline]
1789    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1790        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1791    }
1792}
1793
1794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1795pub struct AlterPropertyGraph {
1796    pub(crate) syntax: SyntaxNode,
1797}
1798impl AlterPropertyGraph {
1799    #[inline]
1800    pub fn alter_property_graph_action(&self) -> Option<AlterPropertyGraphAction> {
1801        support::child(&self.syntax)
1802    }
1803    #[inline]
1804    pub fn if_exists(&self) -> Option<IfExists> {
1805        support::child(&self.syntax)
1806    }
1807    #[inline]
1808    pub fn path(&self) -> Option<Path> {
1809        support::child(&self.syntax)
1810    }
1811    #[inline]
1812    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1813        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1814    }
1815    #[inline]
1816    pub fn alter_token(&self) -> Option<SyntaxToken> {
1817        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1818    }
1819    #[inline]
1820    pub fn graph_token(&self) -> Option<SyntaxToken> {
1821        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
1822    }
1823    #[inline]
1824    pub fn property_token(&self) -> Option<SyntaxToken> {
1825        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
1826    }
1827}
1828
1829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1830pub struct AlterPublication {
1831    pub(crate) syntax: SyntaxNode,
1832}
1833impl AlterPublication {
1834    #[inline]
1835    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
1836        support::child(&self.syntax)
1837    }
1838    #[inline]
1839    pub fn name_ref(&self) -> Option<NameRef> {
1840        support::child(&self.syntax)
1841    }
1842    #[inline]
1843    pub fn owner_to(&self) -> Option<OwnerTo> {
1844        support::child(&self.syntax)
1845    }
1846    #[inline]
1847    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
1848        support::children(&self.syntax)
1849    }
1850    #[inline]
1851    pub fn rename_to(&self) -> Option<RenameTo> {
1852        support::child(&self.syntax)
1853    }
1854    #[inline]
1855    pub fn set_options(&self) -> Option<SetOptions> {
1856        support::child(&self.syntax)
1857    }
1858    #[inline]
1859    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1860        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1861    }
1862    #[inline]
1863    pub fn add_token(&self) -> Option<SyntaxToken> {
1864        support::token(&self.syntax, SyntaxKind::ADD_KW)
1865    }
1866    #[inline]
1867    pub fn all_token(&self) -> Option<SyntaxToken> {
1868        support::token(&self.syntax, SyntaxKind::ALL_KW)
1869    }
1870    #[inline]
1871    pub fn alter_token(&self) -> Option<SyntaxToken> {
1872        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1873    }
1874    #[inline]
1875    pub fn drop_token(&self) -> Option<SyntaxToken> {
1876        support::token(&self.syntax, SyntaxKind::DROP_KW)
1877    }
1878    #[inline]
1879    pub fn publication_token(&self) -> Option<SyntaxToken> {
1880        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1881    }
1882    #[inline]
1883    pub fn sequences_token(&self) -> Option<SyntaxToken> {
1884        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
1885    }
1886    #[inline]
1887    pub fn set_token(&self) -> Option<SyntaxToken> {
1888        support::token(&self.syntax, SyntaxKind::SET_KW)
1889    }
1890    #[inline]
1891    pub fn tables_token(&self) -> Option<SyntaxToken> {
1892        support::token(&self.syntax, SyntaxKind::TABLES_KW)
1893    }
1894}
1895
1896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1897pub struct AlterRole {
1898    pub(crate) syntax: SyntaxNode,
1899}
1900impl AlterRole {
1901    #[inline]
1902    pub fn name_ref(&self) -> Option<NameRef> {
1903        support::child(&self.syntax)
1904    }
1905    #[inline]
1906    pub fn path(&self) -> Option<Path> {
1907        support::child(&self.syntax)
1908    }
1909    #[inline]
1910    pub fn rename_to(&self) -> Option<RenameTo> {
1911        support::child(&self.syntax)
1912    }
1913    #[inline]
1914    pub fn role_option_list(&self) -> Option<RoleOptionList> {
1915        support::child(&self.syntax)
1916    }
1917    #[inline]
1918    pub fn role_ref(&self) -> Option<RoleRef> {
1919        support::child(&self.syntax)
1920    }
1921    #[inline]
1922    pub fn set_config_param(&self) -> Option<SetConfigParam> {
1923        support::child(&self.syntax)
1924    }
1925    #[inline]
1926    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1927        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1928    }
1929    #[inline]
1930    pub fn all_token(&self) -> Option<SyntaxToken> {
1931        support::token(&self.syntax, SyntaxKind::ALL_KW)
1932    }
1933    #[inline]
1934    pub fn alter_token(&self) -> Option<SyntaxToken> {
1935        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1936    }
1937    #[inline]
1938    pub fn database_token(&self) -> Option<SyntaxToken> {
1939        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
1940    }
1941    #[inline]
1942    pub fn in_token(&self) -> Option<SyntaxToken> {
1943        support::token(&self.syntax, SyntaxKind::IN_KW)
1944    }
1945    #[inline]
1946    pub fn reset_token(&self) -> Option<SyntaxToken> {
1947        support::token(&self.syntax, SyntaxKind::RESET_KW)
1948    }
1949    #[inline]
1950    pub fn role_token(&self) -> Option<SyntaxToken> {
1951        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1952    }
1953}
1954
1955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1956pub struct AlterRoutine {
1957    pub(crate) syntax: SyntaxNode,
1958}
1959impl AlterRoutine {
1960    #[inline]
1961    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1962        support::child(&self.syntax)
1963    }
1964    #[inline]
1965    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1966        support::child(&self.syntax)
1967    }
1968    #[inline]
1969    pub fn function_sig(&self) -> Option<FunctionSig> {
1970        support::child(&self.syntax)
1971    }
1972    #[inline]
1973    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1974        support::child(&self.syntax)
1975    }
1976    #[inline]
1977    pub fn owner_to(&self) -> Option<OwnerTo> {
1978        support::child(&self.syntax)
1979    }
1980    #[inline]
1981    pub fn rename_to(&self) -> Option<RenameTo> {
1982        support::child(&self.syntax)
1983    }
1984    #[inline]
1985    pub fn set_schema(&self) -> Option<SetSchema> {
1986        support::child(&self.syntax)
1987    }
1988    #[inline]
1989    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1990        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1991    }
1992    #[inline]
1993    pub fn alter_token(&self) -> Option<SyntaxToken> {
1994        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1995    }
1996    #[inline]
1997    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1998        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1999    }
2000    #[inline]
2001    pub fn routine_token(&self) -> Option<SyntaxToken> {
2002        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
2003    }
2004}
2005
2006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2007pub struct AlterRule {
2008    pub(crate) syntax: SyntaxNode,
2009}
2010impl AlterRule {
2011    #[inline]
2012    pub fn name_ref(&self) -> Option<NameRef> {
2013        support::child(&self.syntax)
2014    }
2015    #[inline]
2016    pub fn on_table(&self) -> Option<OnTable> {
2017        support::child(&self.syntax)
2018    }
2019    #[inline]
2020    pub fn rename_to(&self) -> Option<RenameTo> {
2021        support::child(&self.syntax)
2022    }
2023    #[inline]
2024    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2025        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2026    }
2027    #[inline]
2028    pub fn alter_token(&self) -> Option<SyntaxToken> {
2029        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2030    }
2031    #[inline]
2032    pub fn on_token(&self) -> Option<SyntaxToken> {
2033        support::token(&self.syntax, SyntaxKind::ON_KW)
2034    }
2035    #[inline]
2036    pub fn rule_token(&self) -> Option<SyntaxToken> {
2037        support::token(&self.syntax, SyntaxKind::RULE_KW)
2038    }
2039}
2040
2041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2042pub struct AlterSchema {
2043    pub(crate) syntax: SyntaxNode,
2044}
2045impl AlterSchema {
2046    #[inline]
2047    pub fn name_ref(&self) -> Option<NameRef> {
2048        support::child(&self.syntax)
2049    }
2050    #[inline]
2051    pub fn owner_to(&self) -> Option<OwnerTo> {
2052        support::child(&self.syntax)
2053    }
2054    #[inline]
2055    pub fn rename_to(&self) -> Option<RenameTo> {
2056        support::child(&self.syntax)
2057    }
2058    #[inline]
2059    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2060        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2061    }
2062    #[inline]
2063    pub fn alter_token(&self) -> Option<SyntaxToken> {
2064        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2065    }
2066    #[inline]
2067    pub fn schema_token(&self) -> Option<SyntaxToken> {
2068        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
2069    }
2070}
2071
2072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2073pub struct AlterSequence {
2074    pub(crate) syntax: SyntaxNode,
2075}
2076impl AlterSequence {
2077    #[inline]
2078    pub fn if_exists(&self) -> Option<IfExists> {
2079        support::child(&self.syntax)
2080    }
2081    #[inline]
2082    pub fn owner_to(&self) -> Option<OwnerTo> {
2083        support::child(&self.syntax)
2084    }
2085    #[inline]
2086    pub fn path(&self) -> Option<Path> {
2087        support::child(&self.syntax)
2088    }
2089    #[inline]
2090    pub fn rename_to(&self) -> Option<RenameTo> {
2091        support::child(&self.syntax)
2092    }
2093    #[inline]
2094    pub fn sequence_option(&self) -> Option<SequenceOption> {
2095        support::child(&self.syntax)
2096    }
2097    #[inline]
2098    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
2099        support::children(&self.syntax)
2100    }
2101    #[inline]
2102    pub fn set_schema(&self) -> Option<SetSchema> {
2103        support::child(&self.syntax)
2104    }
2105    #[inline]
2106    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2107        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2108    }
2109    #[inline]
2110    pub fn alter_token(&self) -> Option<SyntaxToken> {
2111        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2112    }
2113    #[inline]
2114    pub fn logged_token(&self) -> Option<SyntaxToken> {
2115        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
2116    }
2117    #[inline]
2118    pub fn sequence_token(&self) -> Option<SyntaxToken> {
2119        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
2120    }
2121    #[inline]
2122    pub fn set_token(&self) -> Option<SyntaxToken> {
2123        support::token(&self.syntax, SyntaxKind::SET_KW)
2124    }
2125    #[inline]
2126    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
2127        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
2128    }
2129}
2130
2131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2132pub struct AlterServer {
2133    pub(crate) syntax: SyntaxNode,
2134}
2135impl AlterServer {
2136    #[inline]
2137    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
2138        support::child(&self.syntax)
2139    }
2140    #[inline]
2141    pub fn literal(&self) -> Option<Literal> {
2142        support::child(&self.syntax)
2143    }
2144    #[inline]
2145    pub fn name_ref(&self) -> Option<NameRef> {
2146        support::child(&self.syntax)
2147    }
2148    #[inline]
2149    pub fn owner_to(&self) -> Option<OwnerTo> {
2150        support::child(&self.syntax)
2151    }
2152    #[inline]
2153    pub fn rename_to(&self) -> Option<RenameTo> {
2154        support::child(&self.syntax)
2155    }
2156    #[inline]
2157    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2158        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2159    }
2160    #[inline]
2161    pub fn alter_token(&self) -> Option<SyntaxToken> {
2162        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2163    }
2164    #[inline]
2165    pub fn server_token(&self) -> Option<SyntaxToken> {
2166        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2167    }
2168    #[inline]
2169    pub fn version_token(&self) -> Option<SyntaxToken> {
2170        support::token(&self.syntax, SyntaxKind::VERSION_KW)
2171    }
2172}
2173
2174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2175pub struct AlterSetStatistics {
2176    pub(crate) syntax: SyntaxNode,
2177}
2178impl AlterSetStatistics {
2179    #[inline]
2180    pub fn literal(&self) -> Option<Literal> {
2181        support::child(&self.syntax)
2182    }
2183    #[inline]
2184    pub fn name_ref(&self) -> Option<NameRef> {
2185        support::child(&self.syntax)
2186    }
2187    #[inline]
2188    pub fn column_token(&self) -> Option<SyntaxToken> {
2189        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
2190    }
2191    #[inline]
2192    pub fn set_token(&self) -> Option<SyntaxToken> {
2193        support::token(&self.syntax, SyntaxKind::SET_KW)
2194    }
2195    #[inline]
2196    pub fn statistics_token(&self) -> Option<SyntaxToken> {
2197        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2198    }
2199}
2200
2201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2202pub struct AlterStatistics {
2203    pub(crate) syntax: SyntaxNode,
2204}
2205impl AlterStatistics {
2206    #[inline]
2207    pub fn literal(&self) -> Option<Literal> {
2208        support::child(&self.syntax)
2209    }
2210    #[inline]
2211    pub fn owner_to(&self) -> Option<OwnerTo> {
2212        support::child(&self.syntax)
2213    }
2214    #[inline]
2215    pub fn path(&self) -> Option<Path> {
2216        support::child(&self.syntax)
2217    }
2218    #[inline]
2219    pub fn rename_to(&self) -> Option<RenameTo> {
2220        support::child(&self.syntax)
2221    }
2222    #[inline]
2223    pub fn set_schema(&self) -> Option<SetSchema> {
2224        support::child(&self.syntax)
2225    }
2226    #[inline]
2227    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2228        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2229    }
2230    #[inline]
2231    pub fn alter_token(&self) -> Option<SyntaxToken> {
2232        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2233    }
2234    #[inline]
2235    pub fn default_token(&self) -> Option<SyntaxToken> {
2236        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2237    }
2238    #[inline]
2239    pub fn set_token(&self) -> Option<SyntaxToken> {
2240        support::token(&self.syntax, SyntaxKind::SET_KW)
2241    }
2242    #[inline]
2243    pub fn statistics_token(&self) -> Option<SyntaxToken> {
2244        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2245    }
2246}
2247
2248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2249pub struct AlterSubscription {
2250    pub(crate) syntax: SyntaxNode,
2251}
2252impl AlterSubscription {
2253    #[inline]
2254    pub fn attribute_list(&self) -> Option<AttributeList> {
2255        support::child(&self.syntax)
2256    }
2257    #[inline]
2258    pub fn literal(&self) -> Option<Literal> {
2259        support::child(&self.syntax)
2260    }
2261    #[inline]
2262    pub fn name_ref(&self) -> Option<NameRef> {
2263        support::child(&self.syntax)
2264    }
2265    #[inline]
2266    pub fn name_refs(&self) -> AstChildren<NameRef> {
2267        support::children(&self.syntax)
2268    }
2269    #[inline]
2270    pub fn names(&self) -> AstChildren<Name> {
2271        support::children(&self.syntax)
2272    }
2273    #[inline]
2274    pub fn owner_to(&self) -> Option<OwnerTo> {
2275        support::child(&self.syntax)
2276    }
2277    #[inline]
2278    pub fn rename_to(&self) -> Option<RenameTo> {
2279        support::child(&self.syntax)
2280    }
2281    #[inline]
2282    pub fn set_options(&self) -> Option<SetOptions> {
2283        support::child(&self.syntax)
2284    }
2285    #[inline]
2286    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2288    }
2289    #[inline]
2290    pub fn add_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::ADD_KW)
2292    }
2293    #[inline]
2294    pub fn alter_token(&self) -> Option<SyntaxToken> {
2295        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2296    }
2297    #[inline]
2298    pub fn connection_token(&self) -> Option<SyntaxToken> {
2299        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
2300    }
2301    #[inline]
2302    pub fn disable_token(&self) -> Option<SyntaxToken> {
2303        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
2304    }
2305    #[inline]
2306    pub fn drop_token(&self) -> Option<SyntaxToken> {
2307        support::token(&self.syntax, SyntaxKind::DROP_KW)
2308    }
2309    #[inline]
2310    pub fn enable_token(&self) -> Option<SyntaxToken> {
2311        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
2312    }
2313    #[inline]
2314    pub fn publication_token(&self) -> Option<SyntaxToken> {
2315        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
2316    }
2317    #[inline]
2318    pub fn refresh_token(&self) -> Option<SyntaxToken> {
2319        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
2320    }
2321    #[inline]
2322    pub fn server_token(&self) -> Option<SyntaxToken> {
2323        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2324    }
2325    #[inline]
2326    pub fn set_token(&self) -> Option<SyntaxToken> {
2327        support::token(&self.syntax, SyntaxKind::SET_KW)
2328    }
2329    #[inline]
2330    pub fn skip_token(&self) -> Option<SyntaxToken> {
2331        support::token(&self.syntax, SyntaxKind::SKIP_KW)
2332    }
2333    #[inline]
2334    pub fn subscription_token(&self) -> Option<SyntaxToken> {
2335        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
2336    }
2337    #[inline]
2338    pub fn with_token(&self) -> Option<SyntaxToken> {
2339        support::token(&self.syntax, SyntaxKind::WITH_KW)
2340    }
2341}
2342
2343#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2344pub struct AlterSystem {
2345    pub(crate) syntax: SyntaxNode,
2346}
2347impl AlterSystem {
2348    #[inline]
2349    pub fn path(&self) -> Option<Path> {
2350        support::child(&self.syntax)
2351    }
2352    #[inline]
2353    pub fn set_config_param(&self) -> Option<SetConfigParam> {
2354        support::child(&self.syntax)
2355    }
2356    #[inline]
2357    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2358        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2359    }
2360    #[inline]
2361    pub fn all_token(&self) -> Option<SyntaxToken> {
2362        support::token(&self.syntax, SyntaxKind::ALL_KW)
2363    }
2364    #[inline]
2365    pub fn alter_token(&self) -> Option<SyntaxToken> {
2366        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2367    }
2368    #[inline]
2369    pub fn reset_token(&self) -> Option<SyntaxToken> {
2370        support::token(&self.syntax, SyntaxKind::RESET_KW)
2371    }
2372    #[inline]
2373    pub fn system_token(&self) -> Option<SyntaxToken> {
2374        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
2375    }
2376}
2377
2378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2379pub struct AlterTable {
2380    pub(crate) syntax: SyntaxNode,
2381}
2382impl AlterTable {
2383    #[inline]
2384    pub fn actions(&self) -> AstChildren<AlterTableAction> {
2385        support::children(&self.syntax)
2386    }
2387    #[inline]
2388    pub fn if_exists(&self) -> Option<IfExists> {
2389        support::child(&self.syntax)
2390    }
2391    #[inline]
2392    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
2393        support::child(&self.syntax)
2394    }
2395    #[inline]
2396    pub fn relation_name(&self) -> Option<RelationName> {
2397        support::child(&self.syntax)
2398    }
2399    #[inline]
2400    pub fn set_tablespace(&self) -> Option<SetTablespace> {
2401        support::child(&self.syntax)
2402    }
2403    #[inline]
2404    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2405        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2406    }
2407    #[inline]
2408    pub fn all_token(&self) -> Option<SyntaxToken> {
2409        support::token(&self.syntax, SyntaxKind::ALL_KW)
2410    }
2411    #[inline]
2412    pub fn alter_token(&self) -> Option<SyntaxToken> {
2413        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2414    }
2415    #[inline]
2416    pub fn in_token(&self) -> Option<SyntaxToken> {
2417        support::token(&self.syntax, SyntaxKind::IN_KW)
2418    }
2419    #[inline]
2420    pub fn nowait_token(&self) -> Option<SyntaxToken> {
2421        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
2422    }
2423    #[inline]
2424    pub fn table_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2426    }
2427    #[inline]
2428    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2429        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2430    }
2431}
2432
2433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2434pub struct AlterTablespace {
2435    pub(crate) syntax: SyntaxNode,
2436}
2437impl AlterTablespace {
2438    #[inline]
2439    pub fn owner_to(&self) -> Option<OwnerTo> {
2440        support::child(&self.syntax)
2441    }
2442    #[inline]
2443    pub fn path(&self) -> Option<Path> {
2444        support::child(&self.syntax)
2445    }
2446    #[inline]
2447    pub fn rename_to(&self) -> Option<RenameTo> {
2448        support::child(&self.syntax)
2449    }
2450    #[inline]
2451    pub fn reset_options(&self) -> Option<ResetOptions> {
2452        support::child(&self.syntax)
2453    }
2454    #[inline]
2455    pub fn set_options(&self) -> Option<SetOptions> {
2456        support::child(&self.syntax)
2457    }
2458    #[inline]
2459    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2460        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2461    }
2462    #[inline]
2463    pub fn alter_token(&self) -> Option<SyntaxToken> {
2464        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2465    }
2466    #[inline]
2467    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2468        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2469    }
2470}
2471
2472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2473pub struct AlterTextSearchConfiguration {
2474    pub(crate) syntax: SyntaxNode,
2475}
2476impl AlterTextSearchConfiguration {
2477    #[inline]
2478    pub fn if_exists(&self) -> Option<IfExists> {
2479        support::child(&self.syntax)
2480    }
2481    #[inline]
2482    pub fn name_refs(&self) -> AstChildren<NameRef> {
2483        support::children(&self.syntax)
2484    }
2485    #[inline]
2486    pub fn owner_to(&self) -> Option<OwnerTo> {
2487        support::child(&self.syntax)
2488    }
2489    #[inline]
2490    pub fn path(&self) -> Option<Path> {
2491        support::child(&self.syntax)
2492    }
2493    #[inline]
2494    pub fn paths(&self) -> AstChildren<Path> {
2495        support::children(&self.syntax)
2496    }
2497    #[inline]
2498    pub fn rename_to(&self) -> Option<RenameTo> {
2499        support::child(&self.syntax)
2500    }
2501    #[inline]
2502    pub fn set_schema(&self) -> Option<SetSchema> {
2503        support::child(&self.syntax)
2504    }
2505    #[inline]
2506    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2507        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2508    }
2509    #[inline]
2510    pub fn add_token(&self) -> Option<SyntaxToken> {
2511        support::token(&self.syntax, SyntaxKind::ADD_KW)
2512    }
2513    #[inline]
2514    pub fn alter_token(&self) -> Option<SyntaxToken> {
2515        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2516    }
2517    #[inline]
2518    pub fn configuration_token(&self) -> Option<SyntaxToken> {
2519        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
2520    }
2521    #[inline]
2522    pub fn drop_token(&self) -> Option<SyntaxToken> {
2523        support::token(&self.syntax, SyntaxKind::DROP_KW)
2524    }
2525    #[inline]
2526    pub fn for_token(&self) -> Option<SyntaxToken> {
2527        support::token(&self.syntax, SyntaxKind::FOR_KW)
2528    }
2529    #[inline]
2530    pub fn mapping_token(&self) -> Option<SyntaxToken> {
2531        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
2532    }
2533    #[inline]
2534    pub fn replace_token(&self) -> Option<SyntaxToken> {
2535        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
2536    }
2537    #[inline]
2538    pub fn search_token(&self) -> Option<SyntaxToken> {
2539        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2540    }
2541    #[inline]
2542    pub fn text_token(&self) -> Option<SyntaxToken> {
2543        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2544    }
2545    #[inline]
2546    pub fn with_token(&self) -> Option<SyntaxToken> {
2547        support::token(&self.syntax, SyntaxKind::WITH_KW)
2548    }
2549}
2550
2551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2552pub struct AlterTextSearchDictionary {
2553    pub(crate) syntax: SyntaxNode,
2554}
2555impl AlterTextSearchDictionary {
2556    #[inline]
2557    pub fn attribute_list(&self) -> Option<AttributeList> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn owner_to(&self) -> Option<OwnerTo> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn path(&self) -> Option<Path> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn rename_to(&self) -> Option<RenameTo> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn set_schema(&self) -> Option<SetSchema> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2578        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2579    }
2580    #[inline]
2581    pub fn alter_token(&self) -> Option<SyntaxToken> {
2582        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2583    }
2584    #[inline]
2585    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
2586        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
2587    }
2588    #[inline]
2589    pub fn search_token(&self) -> Option<SyntaxToken> {
2590        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2591    }
2592    #[inline]
2593    pub fn text_token(&self) -> Option<SyntaxToken> {
2594        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2595    }
2596}
2597
2598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2599pub struct AlterTextSearchParser {
2600    pub(crate) syntax: SyntaxNode,
2601}
2602impl AlterTextSearchParser {
2603    #[inline]
2604    pub fn path(&self) -> Option<Path> {
2605        support::child(&self.syntax)
2606    }
2607    #[inline]
2608    pub fn rename_to(&self) -> Option<RenameTo> {
2609        support::child(&self.syntax)
2610    }
2611    #[inline]
2612    pub fn set_schema(&self) -> Option<SetSchema> {
2613        support::child(&self.syntax)
2614    }
2615    #[inline]
2616    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2617        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2618    }
2619    #[inline]
2620    pub fn alter_token(&self) -> Option<SyntaxToken> {
2621        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2622    }
2623    #[inline]
2624    pub fn parser_token(&self) -> Option<SyntaxToken> {
2625        support::token(&self.syntax, SyntaxKind::PARSER_KW)
2626    }
2627    #[inline]
2628    pub fn search_token(&self) -> Option<SyntaxToken> {
2629        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2630    }
2631    #[inline]
2632    pub fn text_token(&self) -> Option<SyntaxToken> {
2633        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2634    }
2635}
2636
2637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2638pub struct AlterTextSearchTemplate {
2639    pub(crate) syntax: SyntaxNode,
2640}
2641impl AlterTextSearchTemplate {
2642    #[inline]
2643    pub fn path(&self) -> Option<Path> {
2644        support::child(&self.syntax)
2645    }
2646    #[inline]
2647    pub fn rename_to(&self) -> Option<RenameTo> {
2648        support::child(&self.syntax)
2649    }
2650    #[inline]
2651    pub fn set_schema(&self) -> Option<SetSchema> {
2652        support::child(&self.syntax)
2653    }
2654    #[inline]
2655    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2656        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2657    }
2658    #[inline]
2659    pub fn alter_token(&self) -> Option<SyntaxToken> {
2660        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2661    }
2662    #[inline]
2663    pub fn search_token(&self) -> Option<SyntaxToken> {
2664        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2665    }
2666    #[inline]
2667    pub fn template_token(&self) -> Option<SyntaxToken> {
2668        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
2669    }
2670    #[inline]
2671    pub fn text_token(&self) -> Option<SyntaxToken> {
2672        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2673    }
2674}
2675
2676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2677pub struct AlterTrigger {
2678    pub(crate) syntax: SyntaxNode,
2679}
2680impl AlterTrigger {
2681    #[inline]
2682    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
2683        support::child(&self.syntax)
2684    }
2685    #[inline]
2686    pub fn name_ref(&self) -> Option<NameRef> {
2687        support::child(&self.syntax)
2688    }
2689    #[inline]
2690    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
2691        support::child(&self.syntax)
2692    }
2693    #[inline]
2694    pub fn on_table(&self) -> Option<OnTable> {
2695        support::child(&self.syntax)
2696    }
2697    #[inline]
2698    pub fn rename_to(&self) -> Option<RenameTo> {
2699        support::child(&self.syntax)
2700    }
2701    #[inline]
2702    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2703        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2704    }
2705    #[inline]
2706    pub fn alter_token(&self) -> Option<SyntaxToken> {
2707        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2708    }
2709    #[inline]
2710    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2711        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2712    }
2713}
2714
2715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2716pub struct AlterType {
2717    pub(crate) syntax: SyntaxNode,
2718}
2719impl AlterType {
2720    #[inline]
2721    pub fn add_value(&self) -> Option<AddValue> {
2722        support::child(&self.syntax)
2723    }
2724    #[inline]
2725    pub fn alter_type_actions(&self) -> AstChildren<AlterTypeAction> {
2726        support::children(&self.syntax)
2727    }
2728    #[inline]
2729    pub fn owner_to(&self) -> Option<OwnerTo> {
2730        support::child(&self.syntax)
2731    }
2732    #[inline]
2733    pub fn path(&self) -> Option<Path> {
2734        support::child(&self.syntax)
2735    }
2736    #[inline]
2737    pub fn rename_attribute(&self) -> Option<RenameAttribute> {
2738        support::child(&self.syntax)
2739    }
2740    #[inline]
2741    pub fn rename_to(&self) -> Option<RenameTo> {
2742        support::child(&self.syntax)
2743    }
2744    #[inline]
2745    pub fn rename_value(&self) -> Option<RenameValue> {
2746        support::child(&self.syntax)
2747    }
2748    #[inline]
2749    pub fn set_options(&self) -> Option<SetOptions> {
2750        support::child(&self.syntax)
2751    }
2752    #[inline]
2753    pub fn set_schema(&self) -> Option<SetSchema> {
2754        support::child(&self.syntax)
2755    }
2756    #[inline]
2757    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2758        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2759    }
2760    #[inline]
2761    pub fn alter_token(&self) -> Option<SyntaxToken> {
2762        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2763    }
2764    #[inline]
2765    pub fn type_token(&self) -> Option<SyntaxToken> {
2766        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2767    }
2768}
2769
2770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2771pub struct AlterUser {
2772    pub(crate) syntax: SyntaxNode,
2773}
2774impl AlterUser {
2775    #[inline]
2776    pub fn name_ref(&self) -> Option<NameRef> {
2777        support::child(&self.syntax)
2778    }
2779    #[inline]
2780    pub fn rename_to(&self) -> Option<RenameTo> {
2781        support::child(&self.syntax)
2782    }
2783    #[inline]
2784    pub fn role_option_list(&self) -> Option<RoleOptionList> {
2785        support::child(&self.syntax)
2786    }
2787    #[inline]
2788    pub fn role_ref(&self) -> Option<RoleRef> {
2789        support::child(&self.syntax)
2790    }
2791    #[inline]
2792    pub fn set_config_param(&self) -> Option<SetConfigParam> {
2793        support::child(&self.syntax)
2794    }
2795    #[inline]
2796    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2797        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2798    }
2799    #[inline]
2800    pub fn all_token(&self) -> Option<SyntaxToken> {
2801        support::token(&self.syntax, SyntaxKind::ALL_KW)
2802    }
2803    #[inline]
2804    pub fn alter_token(&self) -> Option<SyntaxToken> {
2805        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2806    }
2807    #[inline]
2808    pub fn database_token(&self) -> Option<SyntaxToken> {
2809        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
2810    }
2811    #[inline]
2812    pub fn in_token(&self) -> Option<SyntaxToken> {
2813        support::token(&self.syntax, SyntaxKind::IN_KW)
2814    }
2815    #[inline]
2816    pub fn reset_token(&self) -> Option<SyntaxToken> {
2817        support::token(&self.syntax, SyntaxKind::RESET_KW)
2818    }
2819    #[inline]
2820    pub fn user_token(&self) -> Option<SyntaxToken> {
2821        support::token(&self.syntax, SyntaxKind::USER_KW)
2822    }
2823}
2824
2825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2826pub struct AlterUserMapping {
2827    pub(crate) syntax: SyntaxNode,
2828}
2829impl AlterUserMapping {
2830    #[inline]
2831    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
2832        support::child(&self.syntax)
2833    }
2834    #[inline]
2835    pub fn role_ref(&self) -> Option<RoleRef> {
2836        support::child(&self.syntax)
2837    }
2838    #[inline]
2839    pub fn server_name(&self) -> Option<ServerName> {
2840        support::child(&self.syntax)
2841    }
2842    #[inline]
2843    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2844        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2845    }
2846    #[inline]
2847    pub fn alter_token(&self) -> Option<SyntaxToken> {
2848        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2849    }
2850    #[inline]
2851    pub fn for_token(&self) -> Option<SyntaxToken> {
2852        support::token(&self.syntax, SyntaxKind::FOR_KW)
2853    }
2854    #[inline]
2855    pub fn mapping_token(&self) -> Option<SyntaxToken> {
2856        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
2857    }
2858    #[inline]
2859    pub fn user_token(&self) -> Option<SyntaxToken> {
2860        support::token(&self.syntax, SyntaxKind::USER_KW)
2861    }
2862}
2863
2864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2865pub struct AlterVertexEdgeLabels {
2866    pub(crate) syntax: SyntaxNode,
2867}
2868impl AlterVertexEdgeLabels {
2869    #[inline]
2870    pub fn add_label(&self) -> Option<AddLabel> {
2871        support::child(&self.syntax)
2872    }
2873    #[inline]
2874    pub fn add_labels(&self) -> AstChildren<AddLabel> {
2875        support::children(&self.syntax)
2876    }
2877    #[inline]
2878    pub fn name(&self) -> Option<Name> {
2879        support::child(&self.syntax)
2880    }
2881    #[inline]
2882    pub fn alter_token(&self) -> Option<SyntaxToken> {
2883        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2884    }
2885    #[inline]
2886    pub fn edge_token(&self) -> Option<SyntaxToken> {
2887        support::token(&self.syntax, SyntaxKind::EDGE_KW)
2888    }
2889    #[inline]
2890    pub fn node_token(&self) -> Option<SyntaxToken> {
2891        support::token(&self.syntax, SyntaxKind::NODE_KW)
2892    }
2893    #[inline]
2894    pub fn relationship_token(&self) -> Option<SyntaxToken> {
2895        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
2896    }
2897    #[inline]
2898    pub fn table_token(&self) -> Option<SyntaxToken> {
2899        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2900    }
2901    #[inline]
2902    pub fn vertex_token(&self) -> Option<SyntaxToken> {
2903        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
2904    }
2905}
2906
2907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2908pub struct AlterView {
2909    pub(crate) syntax: SyntaxNode,
2910}
2911impl AlterView {
2912    #[inline]
2913    pub fn expr(&self) -> Option<Expr> {
2914        support::child(&self.syntax)
2915    }
2916    #[inline]
2917    pub fn if_exists(&self) -> Option<IfExists> {
2918        support::child(&self.syntax)
2919    }
2920    #[inline]
2921    pub fn name(&self) -> Option<Name> {
2922        support::child(&self.syntax)
2923    }
2924    #[inline]
2925    pub fn name_ref(&self) -> Option<NameRef> {
2926        support::child(&self.syntax)
2927    }
2928    #[inline]
2929    pub fn owner_to(&self) -> Option<OwnerTo> {
2930        support::child(&self.syntax)
2931    }
2932    #[inline]
2933    pub fn path(&self) -> Option<Path> {
2934        support::child(&self.syntax)
2935    }
2936    #[inline]
2937    pub fn rename_to(&self) -> Option<RenameTo> {
2938        support::child(&self.syntax)
2939    }
2940    #[inline]
2941    pub fn reset_options(&self) -> Option<ResetOptions> {
2942        support::child(&self.syntax)
2943    }
2944    #[inline]
2945    pub fn set_options(&self) -> Option<SetOptions> {
2946        support::child(&self.syntax)
2947    }
2948    #[inline]
2949    pub fn set_schema(&self) -> Option<SetSchema> {
2950        support::child(&self.syntax)
2951    }
2952    #[inline]
2953    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2954        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2955    }
2956    #[inline]
2957    pub fn alter_token(&self) -> Option<SyntaxToken> {
2958        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2959    }
2960    #[inline]
2961    pub fn column_token(&self) -> Option<SyntaxToken> {
2962        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
2963    }
2964    #[inline]
2965    pub fn default_token(&self) -> Option<SyntaxToken> {
2966        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2967    }
2968    #[inline]
2969    pub fn drop_token(&self) -> Option<SyntaxToken> {
2970        support::token(&self.syntax, SyntaxKind::DROP_KW)
2971    }
2972    #[inline]
2973    pub fn rename_token(&self) -> Option<SyntaxToken> {
2974        support::token(&self.syntax, SyntaxKind::RENAME_KW)
2975    }
2976    #[inline]
2977    pub fn set_token(&self) -> Option<SyntaxToken> {
2978        support::token(&self.syntax, SyntaxKind::SET_KW)
2979    }
2980    #[inline]
2981    pub fn to_token(&self) -> Option<SyntaxToken> {
2982        support::token(&self.syntax, SyntaxKind::TO_KW)
2983    }
2984    #[inline]
2985    pub fn view_token(&self) -> Option<SyntaxToken> {
2986        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2987    }
2988}
2989
2990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2991pub struct Analyze {
2992    pub(crate) syntax: SyntaxNode,
2993}
2994impl Analyze {
2995    #[inline]
2996    pub fn option_item_list(&self) -> Option<OptionItemList> {
2997        support::child(&self.syntax)
2998    }
2999    #[inline]
3000    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
3001        support::child(&self.syntax)
3002    }
3003    #[inline]
3004    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3005        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3006    }
3007    #[inline]
3008    pub fn analyse_token(&self) -> Option<SyntaxToken> {
3009        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
3010    }
3011    #[inline]
3012    pub fn analyze_token(&self) -> Option<SyntaxToken> {
3013        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
3014    }
3015    #[inline]
3016    pub fn verbose_token(&self) -> Option<SyntaxToken> {
3017        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
3018    }
3019}
3020
3021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3022pub struct AnyFn {
3023    pub(crate) syntax: SyntaxNode,
3024}
3025impl AnyFn {
3026    #[inline]
3027    pub fn expr(&self) -> Option<Expr> {
3028        support::child(&self.syntax)
3029    }
3030    #[inline]
3031    pub fn select_variant(&self) -> Option<SelectVariant> {
3032        support::child(&self.syntax)
3033    }
3034    #[inline]
3035    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3036        support::token(&self.syntax, SyntaxKind::L_PAREN)
3037    }
3038    #[inline]
3039    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3040        support::token(&self.syntax, SyntaxKind::R_PAREN)
3041    }
3042    #[inline]
3043    pub fn any_token(&self) -> Option<SyntaxToken> {
3044        support::token(&self.syntax, SyntaxKind::ANY_KW)
3045    }
3046}
3047
3048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3049pub struct Arg {
3050    pub(crate) syntax: SyntaxNode,
3051}
3052impl Arg {
3053    #[inline]
3054    pub fn expr(&self) -> Option<Expr> {
3055        support::child(&self.syntax)
3056    }
3057    #[inline]
3058    pub fn named_arg(&self) -> Option<NamedArg> {
3059        support::child(&self.syntax)
3060    }
3061    #[inline]
3062    pub fn order_by_clause(&self) -> Option<OrderByClause> {
3063        support::child(&self.syntax)
3064    }
3065    #[inline]
3066    pub fn variadic_token(&self) -> Option<SyntaxToken> {
3067        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
3068    }
3069}
3070
3071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3072pub struct ArgList {
3073    pub(crate) syntax: SyntaxNode,
3074}
3075impl ArgList {
3076    #[inline]
3077    pub fn args(&self) -> AstChildren<Arg> {
3078        support::children(&self.syntax)
3079    }
3080    #[inline]
3081    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3082        support::token(&self.syntax, SyntaxKind::L_PAREN)
3083    }
3084    #[inline]
3085    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3086        support::token(&self.syntax, SyntaxKind::R_PAREN)
3087    }
3088    #[inline]
3089    pub fn star_token(&self) -> Option<SyntaxToken> {
3090        support::token(&self.syntax, SyntaxKind::STAR)
3091    }
3092    #[inline]
3093    pub fn all_token(&self) -> Option<SyntaxToken> {
3094        support::token(&self.syntax, SyntaxKind::ALL_KW)
3095    }
3096    #[inline]
3097    pub fn distinct_token(&self) -> Option<SyntaxToken> {
3098        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
3099    }
3100}
3101
3102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3103pub struct ArrayExpr {
3104    pub(crate) syntax: SyntaxNode,
3105}
3106impl ArrayExpr {
3107    #[inline]
3108    pub fn exprs(&self) -> AstChildren<Expr> {
3109        support::children(&self.syntax)
3110    }
3111    #[inline]
3112    pub fn select(&self) -> Option<Select> {
3113        support::child(&self.syntax)
3114    }
3115    #[inline]
3116    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::L_PAREN)
3118    }
3119    #[inline]
3120    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3121        support::token(&self.syntax, SyntaxKind::R_PAREN)
3122    }
3123    #[inline]
3124    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::L_BRACK)
3126    }
3127    #[inline]
3128    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::R_BRACK)
3130    }
3131    #[inline]
3132    pub fn array_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
3134    }
3135}
3136
3137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3138pub struct ArrayType {
3139    pub(crate) syntax: SyntaxNode,
3140}
3141impl ArrayType {
3142    #[inline]
3143    pub fn expr(&self) -> Option<Expr> {
3144        support::child(&self.syntax)
3145    }
3146    #[inline]
3147    pub fn name_ref(&self) -> Option<NameRef> {
3148        support::child(&self.syntax)
3149    }
3150    #[inline]
3151    pub fn ty(&self) -> Option<Type> {
3152        support::child(&self.syntax)
3153    }
3154    #[inline]
3155    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
3156        support::token(&self.syntax, SyntaxKind::L_BRACK)
3157    }
3158    #[inline]
3159    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
3160        support::token(&self.syntax, SyntaxKind::R_BRACK)
3161    }
3162    #[inline]
3163    pub fn array_token(&self) -> Option<SyntaxToken> {
3164        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
3165    }
3166}
3167
3168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3169pub struct AsFuncOption {
3170    pub(crate) syntax: SyntaxNode,
3171}
3172impl AsFuncOption {
3173    #[inline]
3174    pub fn definition(&self) -> Option<Literal> {
3175        support::child(&self.syntax)
3176    }
3177    #[inline]
3178    pub fn link_symbol(&self) -> Option<Literal> {
3179        support::child(&self.syntax)
3180    }
3181    #[inline]
3182    pub fn obj_file(&self) -> Option<Literal> {
3183        support::child(&self.syntax)
3184    }
3185    #[inline]
3186    pub fn comma_token(&self) -> Option<SyntaxToken> {
3187        support::token(&self.syntax, SyntaxKind::COMMA)
3188    }
3189    #[inline]
3190    pub fn as_token(&self) -> Option<SyntaxToken> {
3191        support::token(&self.syntax, SyntaxKind::AS_KW)
3192    }
3193}
3194
3195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3196pub struct AsName {
3197    pub(crate) syntax: SyntaxNode,
3198}
3199impl AsName {
3200    #[inline]
3201    pub fn name(&self) -> Option<Name> {
3202        support::child(&self.syntax)
3203    }
3204    #[inline]
3205    pub fn as_token(&self) -> Option<SyntaxToken> {
3206        support::token(&self.syntax, SyntaxKind::AS_KW)
3207    }
3208}
3209
3210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3211pub struct AsPolicyType {
3212    pub(crate) syntax: SyntaxNode,
3213}
3214impl AsPolicyType {
3215    #[inline]
3216    pub fn as_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::AS_KW)
3218    }
3219    #[inline]
3220    pub fn ident_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::IDENT)
3222    }
3223}
3224
3225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3226pub struct AtLocal {
3227    pub(crate) syntax: SyntaxNode,
3228}
3229impl AtLocal {
3230    #[inline]
3231    pub fn at_token(&self) -> Option<SyntaxToken> {
3232        support::token(&self.syntax, SyntaxKind::AT_KW)
3233    }
3234    #[inline]
3235    pub fn local_token(&self) -> Option<SyntaxToken> {
3236        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
3237    }
3238}
3239
3240#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3241pub struct AtTimeZone {
3242    pub(crate) syntax: SyntaxNode,
3243}
3244impl AtTimeZone {
3245    #[inline]
3246    pub fn at_token(&self) -> Option<SyntaxToken> {
3247        support::token(&self.syntax, SyntaxKind::AT_KW)
3248    }
3249    #[inline]
3250    pub fn time_token(&self) -> Option<SyntaxToken> {
3251        support::token(&self.syntax, SyntaxKind::TIME_KW)
3252    }
3253    #[inline]
3254    pub fn zone_token(&self) -> Option<SyntaxToken> {
3255        support::token(&self.syntax, SyntaxKind::ZONE_KW)
3256    }
3257}
3258
3259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3260pub struct AttachPartition {
3261    pub(crate) syntax: SyntaxNode,
3262}
3263impl AttachPartition {
3264    #[inline]
3265    pub fn partition_type(&self) -> Option<PartitionType> {
3266        support::child(&self.syntax)
3267    }
3268    #[inline]
3269    pub fn path(&self) -> Option<Path> {
3270        support::child(&self.syntax)
3271    }
3272    #[inline]
3273    pub fn attach_token(&self) -> Option<SyntaxToken> {
3274        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
3275    }
3276    #[inline]
3277    pub fn partition_token(&self) -> Option<SyntaxToken> {
3278        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
3279    }
3280}
3281
3282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3283pub struct AttributeList {
3284    pub(crate) syntax: SyntaxNode,
3285}
3286impl AttributeList {
3287    #[inline]
3288    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
3289        support::children(&self.syntax)
3290    }
3291    #[inline]
3292    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3293        support::token(&self.syntax, SyntaxKind::L_PAREN)
3294    }
3295    #[inline]
3296    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3297        support::token(&self.syntax, SyntaxKind::R_PAREN)
3298    }
3299}
3300
3301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3302pub struct AttributeOption {
3303    pub(crate) syntax: SyntaxNode,
3304}
3305impl AttributeOption {
3306    #[inline]
3307    pub fn attribute_value(&self) -> Option<AttributeValue> {
3308        support::child(&self.syntax)
3309    }
3310    #[inline]
3311    pub fn name(&self) -> Option<Name> {
3312        support::child(&self.syntax)
3313    }
3314    #[inline]
3315    pub fn dot_token(&self) -> Option<SyntaxToken> {
3316        support::token(&self.syntax, SyntaxKind::DOT)
3317    }
3318    #[inline]
3319    pub fn eq_token(&self) -> Option<SyntaxToken> {
3320        support::token(&self.syntax, SyntaxKind::EQ)
3321    }
3322}
3323
3324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3325pub struct AttributeValue {
3326    pub(crate) syntax: SyntaxNode,
3327}
3328impl AttributeValue {
3329    #[inline]
3330    pub fn literal(&self) -> Option<Literal> {
3331        support::child(&self.syntax)
3332    }
3333    #[inline]
3334    pub fn op(&self) -> Option<Op> {
3335        support::child(&self.syntax)
3336    }
3337    #[inline]
3338    pub fn ty(&self) -> Option<Type> {
3339        support::child(&self.syntax)
3340    }
3341    #[inline]
3342    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3343        support::token(&self.syntax, SyntaxKind::L_PAREN)
3344    }
3345    #[inline]
3346    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3347        support::token(&self.syntax, SyntaxKind::R_PAREN)
3348    }
3349    #[inline]
3350    pub fn none_token(&self) -> Option<SyntaxToken> {
3351        support::token(&self.syntax, SyntaxKind::NONE_KW)
3352    }
3353    #[inline]
3354    pub fn operator_token(&self) -> Option<SyntaxToken> {
3355        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3356    }
3357}
3358
3359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3360pub struct Backward {
3361    pub(crate) syntax: SyntaxNode,
3362}
3363impl Backward {
3364    #[inline]
3365    pub fn expr(&self) -> Option<Expr> {
3366        support::child(&self.syntax)
3367    }
3368    #[inline]
3369    pub fn all_token(&self) -> Option<SyntaxToken> {
3370        support::token(&self.syntax, SyntaxKind::ALL_KW)
3371    }
3372    #[inline]
3373    pub fn backward_token(&self) -> Option<SyntaxToken> {
3374        support::token(&self.syntax, SyntaxKind::BACKWARD_KW)
3375    }
3376}
3377
3378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3379pub struct BeforeValue {
3380    pub(crate) syntax: SyntaxNode,
3381}
3382impl BeforeValue {
3383    #[inline]
3384    pub fn literal(&self) -> Option<Literal> {
3385        support::child(&self.syntax)
3386    }
3387    #[inline]
3388    pub fn before_token(&self) -> Option<SyntaxToken> {
3389        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
3390    }
3391}
3392
3393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3394pub struct Begin {
3395    pub(crate) syntax: SyntaxNode,
3396}
3397impl Begin {
3398    #[inline]
3399    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
3400        support::child(&self.syntax)
3401    }
3402    #[inline]
3403    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3404        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3405    }
3406    #[inline]
3407    pub fn begin_token(&self) -> Option<SyntaxToken> {
3408        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
3409    }
3410    #[inline]
3411    pub fn start_token(&self) -> Option<SyntaxToken> {
3412        support::token(&self.syntax, SyntaxKind::START_KW)
3413    }
3414    #[inline]
3415    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3416        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3417    }
3418    #[inline]
3419    pub fn work_token(&self) -> Option<SyntaxToken> {
3420        support::token(&self.syntax, SyntaxKind::WORK_KW)
3421    }
3422}
3423
3424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3425pub struct BeginFuncOptionList {
3426    pub(crate) syntax: SyntaxNode,
3427}
3428impl BeginFuncOptionList {
3429    #[inline]
3430    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
3431        support::children(&self.syntax)
3432    }
3433    #[inline]
3434    pub fn atomic_token(&self) -> Option<SyntaxToken> {
3435        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
3436    }
3437    #[inline]
3438    pub fn begin_token(&self) -> Option<SyntaxToken> {
3439        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
3440    }
3441    #[inline]
3442    pub fn end_token(&self) -> Option<SyntaxToken> {
3443        support::token(&self.syntax, SyntaxKind::END_KW)
3444    }
3445}
3446
3447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3448pub struct BetweenExpr {
3449    pub(crate) syntax: SyntaxNode,
3450}
3451impl BetweenExpr {
3452    #[inline]
3453    pub fn and_token(&self) -> Option<SyntaxToken> {
3454        support::token(&self.syntax, SyntaxKind::AND_KW)
3455    }
3456    #[inline]
3457    pub fn asymmetric_token(&self) -> Option<SyntaxToken> {
3458        support::token(&self.syntax, SyntaxKind::ASYMMETRIC_KW)
3459    }
3460    #[inline]
3461    pub fn between_token(&self) -> Option<SyntaxToken> {
3462        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
3463    }
3464    #[inline]
3465    pub fn not_token(&self) -> Option<SyntaxToken> {
3466        support::token(&self.syntax, SyntaxKind::NOT_KW)
3467    }
3468    #[inline]
3469    pub fn symmetric_token(&self) -> Option<SyntaxToken> {
3470        support::token(&self.syntax, SyntaxKind::SYMMETRIC_KW)
3471    }
3472}
3473
3474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3475pub struct BinExpr {
3476    pub(crate) syntax: SyntaxNode,
3477}
3478impl BinExpr {}
3479
3480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3481pub struct BitType {
3482    pub(crate) syntax: SyntaxNode,
3483}
3484impl BitType {
3485    #[inline]
3486    pub fn arg_list(&self) -> Option<ArgList> {
3487        support::child(&self.syntax)
3488    }
3489    #[inline]
3490    pub fn bit_token(&self) -> Option<SyntaxToken> {
3491        support::token(&self.syntax, SyntaxKind::BIT_KW)
3492    }
3493    #[inline]
3494    pub fn setof_token(&self) -> Option<SyntaxToken> {
3495        support::token(&self.syntax, SyntaxKind::SETOF_KW)
3496    }
3497    #[inline]
3498    pub fn varying_token(&self) -> Option<SyntaxToken> {
3499        support::token(&self.syntax, SyntaxKind::VARYING_KW)
3500    }
3501}
3502
3503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3504pub struct Call {
3505    pub(crate) syntax: SyntaxNode,
3506}
3507impl Call {
3508    #[inline]
3509    pub fn arg_list(&self) -> Option<ArgList> {
3510        support::child(&self.syntax)
3511    }
3512    #[inline]
3513    pub fn path(&self) -> Option<Path> {
3514        support::child(&self.syntax)
3515    }
3516    #[inline]
3517    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3518        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3519    }
3520    #[inline]
3521    pub fn call_token(&self) -> Option<SyntaxToken> {
3522        support::token(&self.syntax, SyntaxKind::CALL_KW)
3523    }
3524}
3525
3526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3527pub struct CallExpr {
3528    pub(crate) syntax: SyntaxNode,
3529}
3530impl CallExpr {
3531    #[inline]
3532    pub fn all_fn(&self) -> Option<AllFn> {
3533        support::child(&self.syntax)
3534    }
3535    #[inline]
3536    pub fn any_fn(&self) -> Option<AnyFn> {
3537        support::child(&self.syntax)
3538    }
3539    #[inline]
3540    pub fn arg_list(&self) -> Option<ArgList> {
3541        support::child(&self.syntax)
3542    }
3543    #[inline]
3544    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
3545        support::child(&self.syntax)
3546    }
3547    #[inline]
3548    pub fn exists_fn(&self) -> Option<ExistsFn> {
3549        support::child(&self.syntax)
3550    }
3551    #[inline]
3552    pub fn expr(&self) -> Option<Expr> {
3553        support::child(&self.syntax)
3554    }
3555    #[inline]
3556    pub fn extract_fn(&self) -> Option<ExtractFn> {
3557        support::child(&self.syntax)
3558    }
3559    #[inline]
3560    pub fn filter_clause(&self) -> Option<FilterClause> {
3561        support::child(&self.syntax)
3562    }
3563    #[inline]
3564    pub fn graph_table_fn(&self) -> Option<GraphTableFn> {
3565        support::child(&self.syntax)
3566    }
3567    #[inline]
3568    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
3569        support::child(&self.syntax)
3570    }
3571    #[inline]
3572    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
3573        support::child(&self.syntax)
3574    }
3575    #[inline]
3576    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
3577        support::child(&self.syntax)
3578    }
3579    #[inline]
3580    pub fn json_fn(&self) -> Option<JsonFn> {
3581        support::child(&self.syntax)
3582    }
3583    #[inline]
3584    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
3585        support::child(&self.syntax)
3586    }
3587    #[inline]
3588    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
3589        support::child(&self.syntax)
3590    }
3591    #[inline]
3592    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
3593        support::child(&self.syntax)
3594    }
3595    #[inline]
3596    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
3597        support::child(&self.syntax)
3598    }
3599    #[inline]
3600    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
3601        support::child(&self.syntax)
3602    }
3603    #[inline]
3604    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
3605        support::child(&self.syntax)
3606    }
3607    #[inline]
3608    pub fn over_clause(&self) -> Option<OverClause> {
3609        support::child(&self.syntax)
3610    }
3611    #[inline]
3612    pub fn overlay_fn(&self) -> Option<OverlayFn> {
3613        support::child(&self.syntax)
3614    }
3615    #[inline]
3616    pub fn position_fn(&self) -> Option<PositionFn> {
3617        support::child(&self.syntax)
3618    }
3619    #[inline]
3620    pub fn some_fn(&self) -> Option<SomeFn> {
3621        support::child(&self.syntax)
3622    }
3623    #[inline]
3624    pub fn substring_fn(&self) -> Option<SubstringFn> {
3625        support::child(&self.syntax)
3626    }
3627    #[inline]
3628    pub fn trim_fn(&self) -> Option<TrimFn> {
3629        support::child(&self.syntax)
3630    }
3631    #[inline]
3632    pub fn within_clause(&self) -> Option<WithinClause> {
3633        support::child(&self.syntax)
3634    }
3635    #[inline]
3636    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
3637        support::child(&self.syntax)
3638    }
3639    #[inline]
3640    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
3641        support::child(&self.syntax)
3642    }
3643    #[inline]
3644    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
3645        support::child(&self.syntax)
3646    }
3647    #[inline]
3648    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
3649        support::child(&self.syntax)
3650    }
3651    #[inline]
3652    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
3653        support::child(&self.syntax)
3654    }
3655    #[inline]
3656    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
3657        support::child(&self.syntax)
3658    }
3659    #[inline]
3660    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
3661        support::child(&self.syntax)
3662    }
3663}
3664
3665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3666pub struct Cascade {
3667    pub(crate) syntax: SyntaxNode,
3668}
3669impl Cascade {
3670    #[inline]
3671    pub fn cascade_token(&self) -> Option<SyntaxToken> {
3672        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
3673    }
3674}
3675
3676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3677pub struct CaseExpr {
3678    pub(crate) syntax: SyntaxNode,
3679}
3680impl CaseExpr {
3681    #[inline]
3682    pub fn else_clause(&self) -> Option<ElseClause> {
3683        support::child(&self.syntax)
3684    }
3685    #[inline]
3686    pub fn expr(&self) -> Option<Expr> {
3687        support::child(&self.syntax)
3688    }
3689    #[inline]
3690    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
3691        support::child(&self.syntax)
3692    }
3693    #[inline]
3694    pub fn case_token(&self) -> Option<SyntaxToken> {
3695        support::token(&self.syntax, SyntaxKind::CASE_KW)
3696    }
3697    #[inline]
3698    pub fn end_token(&self) -> Option<SyntaxToken> {
3699        support::token(&self.syntax, SyntaxKind::END_KW)
3700    }
3701}
3702
3703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3704pub struct CastExpr {
3705    pub(crate) syntax: SyntaxNode,
3706}
3707impl CastExpr {
3708    #[inline]
3709    pub fn colon_colon(&self) -> Option<ColonColon> {
3710        support::child(&self.syntax)
3711    }
3712    #[inline]
3713    pub fn expr(&self) -> Option<Expr> {
3714        support::child(&self.syntax)
3715    }
3716    #[inline]
3717    pub fn literal(&self) -> Option<Literal> {
3718        support::child(&self.syntax)
3719    }
3720    #[inline]
3721    pub fn ty(&self) -> Option<Type> {
3722        support::child(&self.syntax)
3723    }
3724    #[inline]
3725    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3726        support::token(&self.syntax, SyntaxKind::L_PAREN)
3727    }
3728    #[inline]
3729    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3730        support::token(&self.syntax, SyntaxKind::R_PAREN)
3731    }
3732    #[inline]
3733    pub fn as_token(&self) -> Option<SyntaxToken> {
3734        support::token(&self.syntax, SyntaxKind::AS_KW)
3735    }
3736    #[inline]
3737    pub fn cast_token(&self) -> Option<SyntaxToken> {
3738        support::token(&self.syntax, SyntaxKind::CAST_KW)
3739    }
3740    #[inline]
3741    pub fn treat_token(&self) -> Option<SyntaxToken> {
3742        support::token(&self.syntax, SyntaxKind::TREAT_KW)
3743    }
3744}
3745
3746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3747pub struct CastSig {
3748    pub(crate) syntax: SyntaxNode,
3749}
3750impl CastSig {
3751    #[inline]
3752    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3753        support::token(&self.syntax, SyntaxKind::L_PAREN)
3754    }
3755    #[inline]
3756    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3757        support::token(&self.syntax, SyntaxKind::R_PAREN)
3758    }
3759    #[inline]
3760    pub fn as_token(&self) -> Option<SyntaxToken> {
3761        support::token(&self.syntax, SyntaxKind::AS_KW)
3762    }
3763}
3764
3765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3766pub struct CharType {
3767    pub(crate) syntax: SyntaxNode,
3768}
3769impl CharType {
3770    #[inline]
3771    pub fn arg_list(&self) -> Option<ArgList> {
3772        support::child(&self.syntax)
3773    }
3774    #[inline]
3775    pub fn char_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::CHAR_KW)
3777    }
3778    #[inline]
3779    pub fn character_token(&self) -> Option<SyntaxToken> {
3780        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
3781    }
3782    #[inline]
3783    pub fn national_token(&self) -> Option<SyntaxToken> {
3784        support::token(&self.syntax, SyntaxKind::NATIONAL_KW)
3785    }
3786    #[inline]
3787    pub fn nchar_token(&self) -> Option<SyntaxToken> {
3788        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
3789    }
3790    #[inline]
3791    pub fn setof_token(&self) -> Option<SyntaxToken> {
3792        support::token(&self.syntax, SyntaxKind::SETOF_KW)
3793    }
3794    #[inline]
3795    pub fn varchar_token(&self) -> Option<SyntaxToken> {
3796        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
3797    }
3798    #[inline]
3799    pub fn varying_token(&self) -> Option<SyntaxToken> {
3800        support::token(&self.syntax, SyntaxKind::VARYING_KW)
3801    }
3802}
3803
3804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3805pub struct CheckConstraint {
3806    pub(crate) syntax: SyntaxNode,
3807}
3808impl CheckConstraint {
3809    #[inline]
3810    pub fn constraint_name(&self) -> Option<ConstraintName> {
3811        support::child(&self.syntax)
3812    }
3813    #[inline]
3814    pub fn expr(&self) -> Option<Expr> {
3815        support::child(&self.syntax)
3816    }
3817    #[inline]
3818    pub fn no_inherit(&self) -> Option<NoInherit> {
3819        support::child(&self.syntax)
3820    }
3821    #[inline]
3822    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3823        support::token(&self.syntax, SyntaxKind::L_PAREN)
3824    }
3825    #[inline]
3826    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3827        support::token(&self.syntax, SyntaxKind::R_PAREN)
3828    }
3829    #[inline]
3830    pub fn check_token(&self) -> Option<SyntaxToken> {
3831        support::token(&self.syntax, SyntaxKind::CHECK_KW)
3832    }
3833}
3834
3835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3836pub struct Checkpoint {
3837    pub(crate) syntax: SyntaxNode,
3838}
3839impl Checkpoint {
3840    #[inline]
3841    pub fn checkpoint_option_list(&self) -> Option<CheckpointOptionList> {
3842        support::child(&self.syntax)
3843    }
3844    #[inline]
3845    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3847    }
3848    #[inline]
3849    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
3851    }
3852}
3853
3854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3855pub struct CheckpointOption {
3856    pub(crate) syntax: SyntaxNode,
3857}
3858impl CheckpointOption {
3859    #[inline]
3860    pub fn expr(&self) -> Option<Expr> {
3861        support::child(&self.syntax)
3862    }
3863    #[inline]
3864    pub fn name(&self) -> Option<Name> {
3865        support::child(&self.syntax)
3866    }
3867}
3868
3869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3870pub struct CheckpointOptionList {
3871    pub(crate) syntax: SyntaxNode,
3872}
3873impl CheckpointOptionList {
3874    #[inline]
3875    pub fn checkpoint_options(&self) -> AstChildren<CheckpointOption> {
3876        support::children(&self.syntax)
3877    }
3878    #[inline]
3879    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3880        support::token(&self.syntax, SyntaxKind::L_PAREN)
3881    }
3882    #[inline]
3883    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3884        support::token(&self.syntax, SyntaxKind::R_PAREN)
3885    }
3886}
3887
3888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3889pub struct Close {
3890    pub(crate) syntax: SyntaxNode,
3891}
3892impl Close {
3893    #[inline]
3894    pub fn name_ref(&self) -> Option<NameRef> {
3895        support::child(&self.syntax)
3896    }
3897    #[inline]
3898    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3899        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3900    }
3901    #[inline]
3902    pub fn all_token(&self) -> Option<SyntaxToken> {
3903        support::token(&self.syntax, SyntaxKind::ALL_KW)
3904    }
3905    #[inline]
3906    pub fn close_token(&self) -> Option<SyntaxToken> {
3907        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
3908    }
3909}
3910
3911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3912pub struct Cluster {
3913    pub(crate) syntax: SyntaxNode,
3914}
3915impl Cluster {
3916    #[inline]
3917    pub fn on_path(&self) -> Option<OnPath> {
3918        support::child(&self.syntax)
3919    }
3920    #[inline]
3921    pub fn option_item_list(&self) -> Option<OptionItemList> {
3922        support::child(&self.syntax)
3923    }
3924    #[inline]
3925    pub fn path(&self) -> Option<Path> {
3926        support::child(&self.syntax)
3927    }
3928    #[inline]
3929    pub fn using_method(&self) -> Option<UsingMethod> {
3930        support::child(&self.syntax)
3931    }
3932    #[inline]
3933    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3934        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3935    }
3936    #[inline]
3937    pub fn cluster_token(&self) -> Option<SyntaxToken> {
3938        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
3939    }
3940    #[inline]
3941    pub fn verbose_token(&self) -> Option<SyntaxToken> {
3942        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
3943    }
3944}
3945
3946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3947pub struct ClusterOn {
3948    pub(crate) syntax: SyntaxNode,
3949}
3950impl ClusterOn {
3951    #[inline]
3952    pub fn name_ref(&self) -> Option<NameRef> {
3953        support::child(&self.syntax)
3954    }
3955    #[inline]
3956    pub fn cluster_token(&self) -> Option<SyntaxToken> {
3957        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
3958    }
3959    #[inline]
3960    pub fn on_token(&self) -> Option<SyntaxToken> {
3961        support::token(&self.syntax, SyntaxKind::ON_KW)
3962    }
3963}
3964
3965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3966pub struct Collate {
3967    pub(crate) syntax: SyntaxNode,
3968}
3969impl Collate {
3970    #[inline]
3971    pub fn path(&self) -> Option<Path> {
3972        support::child(&self.syntax)
3973    }
3974    #[inline]
3975    pub fn collate_token(&self) -> Option<SyntaxToken> {
3976        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
3977    }
3978}
3979
3980#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3981pub struct CollationForFn {
3982    pub(crate) syntax: SyntaxNode,
3983}
3984impl CollationForFn {
3985    #[inline]
3986    pub fn expr(&self) -> Option<Expr> {
3987        support::child(&self.syntax)
3988    }
3989    #[inline]
3990    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3991        support::token(&self.syntax, SyntaxKind::L_PAREN)
3992    }
3993    #[inline]
3994    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3995        support::token(&self.syntax, SyntaxKind::R_PAREN)
3996    }
3997    #[inline]
3998    pub fn collation_token(&self) -> Option<SyntaxToken> {
3999        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
4000    }
4001    #[inline]
4002    pub fn for_token(&self) -> Option<SyntaxToken> {
4003        support::token(&self.syntax, SyntaxKind::FOR_KW)
4004    }
4005}
4006
4007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4008pub struct CollationFrom {
4009    pub(crate) syntax: SyntaxNode,
4010}
4011impl CollationFrom {
4012    #[inline]
4013    pub fn path(&self) -> Option<Path> {
4014        support::child(&self.syntax)
4015    }
4016    #[inline]
4017    pub fn from_token(&self) -> Option<SyntaxToken> {
4018        support::token(&self.syntax, SyntaxKind::FROM_KW)
4019    }
4020}
4021
4022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4023pub struct ColonColon {
4024    pub(crate) syntax: SyntaxNode,
4025}
4026impl ColonColon {
4027    #[inline]
4028    pub fn colon_token(&self) -> Option<SyntaxToken> {
4029        support::token(&self.syntax, SyntaxKind::COLON)
4030    }
4031}
4032
4033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4034pub struct ColonEq {
4035    pub(crate) syntax: SyntaxNode,
4036}
4037impl ColonEq {
4038    #[inline]
4039    pub fn colon_token(&self) -> Option<SyntaxToken> {
4040        support::token(&self.syntax, SyntaxKind::COLON)
4041    }
4042    #[inline]
4043    pub fn eq_token(&self) -> Option<SyntaxToken> {
4044        support::token(&self.syntax, SyntaxKind::EQ)
4045    }
4046}
4047
4048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4049pub struct Column {
4050    pub(crate) syntax: SyntaxNode,
4051}
4052impl Column {
4053    #[inline]
4054    pub fn collate(&self) -> Option<Collate> {
4055        support::child(&self.syntax)
4056    }
4057    #[inline]
4058    pub fn compression_method(&self) -> Option<CompressionMethod> {
4059        support::child(&self.syntax)
4060    }
4061    #[inline]
4062    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
4063        support::children(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4067        support::child(&self.syntax)
4068    }
4069    #[inline]
4070    pub fn enforced(&self) -> Option<Enforced> {
4071        support::child(&self.syntax)
4072    }
4073    #[inline]
4074    pub fn field_expr(&self) -> Option<FieldExpr> {
4075        support::child(&self.syntax)
4076    }
4077    #[inline]
4078    pub fn index_expr(&self) -> Option<IndexExpr> {
4079        support::child(&self.syntax)
4080    }
4081    #[inline]
4082    pub fn initially_deferred_constraint_option(
4083        &self,
4084    ) -> Option<InitiallyDeferredConstraintOption> {
4085        support::child(&self.syntax)
4086    }
4087    #[inline]
4088    pub fn initially_immediate_constraint_option(
4089        &self,
4090    ) -> Option<InitiallyImmediateConstraintOption> {
4091        support::child(&self.syntax)
4092    }
4093    #[inline]
4094    pub fn name(&self) -> Option<Name> {
4095        support::child(&self.syntax)
4096    }
4097    #[inline]
4098    pub fn name_ref(&self) -> Option<NameRef> {
4099        support::child(&self.syntax)
4100    }
4101    #[inline]
4102    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4103        support::child(&self.syntax)
4104    }
4105    #[inline]
4106    pub fn not_enforced(&self) -> Option<NotEnforced> {
4107        support::child(&self.syntax)
4108    }
4109    #[inline]
4110    pub fn storage(&self) -> Option<Storage> {
4111        support::child(&self.syntax)
4112    }
4113    #[inline]
4114    pub fn ty(&self) -> Option<Type> {
4115        support::child(&self.syntax)
4116    }
4117    #[inline]
4118    pub fn with_options(&self) -> Option<WithOptions> {
4119        support::child(&self.syntax)
4120    }
4121    #[inline]
4122    pub fn period_token(&self) -> Option<SyntaxToken> {
4123        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
4124    }
4125}
4126
4127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4128pub struct ColumnList {
4129    pub(crate) syntax: SyntaxNode,
4130}
4131impl ColumnList {
4132    #[inline]
4133    pub fn columns(&self) -> AstChildren<Column> {
4134        support::children(&self.syntax)
4135    }
4136    #[inline]
4137    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4138        support::token(&self.syntax, SyntaxKind::L_PAREN)
4139    }
4140    #[inline]
4141    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4142        support::token(&self.syntax, SyntaxKind::R_PAREN)
4143    }
4144}
4145
4146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4147pub struct CommentOn {
4148    pub(crate) syntax: SyntaxNode,
4149}
4150impl CommentOn {
4151    #[inline]
4152    pub fn aggregate(&self) -> Option<Aggregate> {
4153        support::child(&self.syntax)
4154    }
4155    #[inline]
4156    pub fn cast_sig(&self) -> Option<CastSig> {
4157        support::child(&self.syntax)
4158    }
4159    #[inline]
4160    pub fn function_sig(&self) -> Option<FunctionSig> {
4161        support::child(&self.syntax)
4162    }
4163    #[inline]
4164    pub fn literal(&self) -> Option<Literal> {
4165        support::child(&self.syntax)
4166    }
4167    #[inline]
4168    pub fn name_ref(&self) -> Option<NameRef> {
4169        support::child(&self.syntax)
4170    }
4171    #[inline]
4172    pub fn op(&self) -> Option<Op> {
4173        support::child(&self.syntax)
4174    }
4175    #[inline]
4176    pub fn path(&self) -> Option<Path> {
4177        support::child(&self.syntax)
4178    }
4179    #[inline]
4180    pub fn ty(&self) -> Option<Type> {
4181        support::child(&self.syntax)
4182    }
4183    #[inline]
4184    pub fn using_method(&self) -> Option<UsingMethod> {
4185        support::child(&self.syntax)
4186    }
4187    #[inline]
4188    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4189        support::token(&self.syntax, SyntaxKind::L_PAREN)
4190    }
4191    #[inline]
4192    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4193        support::token(&self.syntax, SyntaxKind::R_PAREN)
4194    }
4195    #[inline]
4196    pub fn comma_token(&self) -> Option<SyntaxToken> {
4197        support::token(&self.syntax, SyntaxKind::COMMA)
4198    }
4199    #[inline]
4200    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4201        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4202    }
4203    #[inline]
4204    pub fn access_token(&self) -> Option<SyntaxToken> {
4205        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
4206    }
4207    #[inline]
4208    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
4209        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
4210    }
4211    #[inline]
4212    pub fn cast_token(&self) -> Option<SyntaxToken> {
4213        support::token(&self.syntax, SyntaxKind::CAST_KW)
4214    }
4215    #[inline]
4216    pub fn class_token(&self) -> Option<SyntaxToken> {
4217        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4218    }
4219    #[inline]
4220    pub fn collation_token(&self) -> Option<SyntaxToken> {
4221        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
4222    }
4223    #[inline]
4224    pub fn column_token(&self) -> Option<SyntaxToken> {
4225        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
4226    }
4227    #[inline]
4228    pub fn comment_token(&self) -> Option<SyntaxToken> {
4229        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
4230    }
4231    #[inline]
4232    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4233        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4234    }
4235    #[inline]
4236    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4237        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4238    }
4239    #[inline]
4240    pub fn conversion_token(&self) -> Option<SyntaxToken> {
4241        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
4242    }
4243    #[inline]
4244    pub fn data_token(&self) -> Option<SyntaxToken> {
4245        support::token(&self.syntax, SyntaxKind::DATA_KW)
4246    }
4247    #[inline]
4248    pub fn database_token(&self) -> Option<SyntaxToken> {
4249        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
4250    }
4251    #[inline]
4252    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4253        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4254    }
4255    #[inline]
4256    pub fn domain_token(&self) -> Option<SyntaxToken> {
4257        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4258    }
4259    #[inline]
4260    pub fn event_token(&self) -> Option<SyntaxToken> {
4261        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4262    }
4263    #[inline]
4264    pub fn extension_token(&self) -> Option<SyntaxToken> {
4265        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4266    }
4267    #[inline]
4268    pub fn family_token(&self) -> Option<SyntaxToken> {
4269        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4270    }
4271    #[inline]
4272    pub fn for_token(&self) -> Option<SyntaxToken> {
4273        support::token(&self.syntax, SyntaxKind::FOR_KW)
4274    }
4275    #[inline]
4276    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4277        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4278    }
4279    #[inline]
4280    pub fn function_token(&self) -> Option<SyntaxToken> {
4281        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4282    }
4283    #[inline]
4284    pub fn graph_token(&self) -> Option<SyntaxToken> {
4285        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4286    }
4287    #[inline]
4288    pub fn index_token(&self) -> Option<SyntaxToken> {
4289        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4290    }
4291    #[inline]
4292    pub fn is_token(&self) -> Option<SyntaxToken> {
4293        support::token(&self.syntax, SyntaxKind::IS_KW)
4294    }
4295    #[inline]
4296    pub fn language_token(&self) -> Option<SyntaxToken> {
4297        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4298    }
4299    #[inline]
4300    pub fn large_token(&self) -> Option<SyntaxToken> {
4301        support::token(&self.syntax, SyntaxKind::LARGE_KW)
4302    }
4303    #[inline]
4304    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4305        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4306    }
4307    #[inline]
4308    pub fn method_token(&self) -> Option<SyntaxToken> {
4309        support::token(&self.syntax, SyntaxKind::METHOD_KW)
4310    }
4311    #[inline]
4312    pub fn null_token(&self) -> Option<SyntaxToken> {
4313        support::token(&self.syntax, SyntaxKind::NULL_KW)
4314    }
4315    #[inline]
4316    pub fn object_token(&self) -> Option<SyntaxToken> {
4317        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
4318    }
4319    #[inline]
4320    pub fn on_token(&self) -> Option<SyntaxToken> {
4321        support::token(&self.syntax, SyntaxKind::ON_KW)
4322    }
4323    #[inline]
4324    pub fn operator_token(&self) -> Option<SyntaxToken> {
4325        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4326    }
4327    #[inline]
4328    pub fn parser_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4330    }
4331    #[inline]
4332    pub fn policy_token(&self) -> Option<SyntaxToken> {
4333        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4334    }
4335    #[inline]
4336    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4337        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4338    }
4339    #[inline]
4340    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4341        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4342    }
4343    #[inline]
4344    pub fn property_token(&self) -> Option<SyntaxToken> {
4345        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4346    }
4347    #[inline]
4348    pub fn publication_token(&self) -> Option<SyntaxToken> {
4349        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4350    }
4351    #[inline]
4352    pub fn role_token(&self) -> Option<SyntaxToken> {
4353        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4354    }
4355    #[inline]
4356    pub fn routine_token(&self) -> Option<SyntaxToken> {
4357        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
4358    }
4359    #[inline]
4360    pub fn rule_token(&self) -> Option<SyntaxToken> {
4361        support::token(&self.syntax, SyntaxKind::RULE_KW)
4362    }
4363    #[inline]
4364    pub fn schema_token(&self) -> Option<SyntaxToken> {
4365        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4366    }
4367    #[inline]
4368    pub fn search_token(&self) -> Option<SyntaxToken> {
4369        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4370    }
4371    #[inline]
4372    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4373        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4374    }
4375    #[inline]
4376    pub fn server_token(&self) -> Option<SyntaxToken> {
4377        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4378    }
4379    #[inline]
4380    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4381        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4382    }
4383    #[inline]
4384    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4385        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4386    }
4387    #[inline]
4388    pub fn table_token(&self) -> Option<SyntaxToken> {
4389        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4390    }
4391    #[inline]
4392    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4393        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4394    }
4395    #[inline]
4396    pub fn template_token(&self) -> Option<SyntaxToken> {
4397        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4398    }
4399    #[inline]
4400    pub fn text_token(&self) -> Option<SyntaxToken> {
4401        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4402    }
4403    #[inline]
4404    pub fn transform_token(&self) -> Option<SyntaxToken> {
4405        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4406    }
4407    #[inline]
4408    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4409        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4410    }
4411    #[inline]
4412    pub fn type_token(&self) -> Option<SyntaxToken> {
4413        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4414    }
4415    #[inline]
4416    pub fn view_token(&self) -> Option<SyntaxToken> {
4417        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4418    }
4419    #[inline]
4420    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4421        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4422    }
4423}
4424
4425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4426pub struct Commit {
4427    pub(crate) syntax: SyntaxNode,
4428}
4429impl Commit {
4430    #[inline]
4431    pub fn literal(&self) -> Option<Literal> {
4432        support::child(&self.syntax)
4433    }
4434    #[inline]
4435    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4436        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4437    }
4438    #[inline]
4439    pub fn and_token(&self) -> Option<SyntaxToken> {
4440        support::token(&self.syntax, SyntaxKind::AND_KW)
4441    }
4442    #[inline]
4443    pub fn chain_token(&self) -> Option<SyntaxToken> {
4444        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
4445    }
4446    #[inline]
4447    pub fn commit_token(&self) -> Option<SyntaxToken> {
4448        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
4449    }
4450    #[inline]
4451    pub fn end_token(&self) -> Option<SyntaxToken> {
4452        support::token(&self.syntax, SyntaxKind::END_KW)
4453    }
4454    #[inline]
4455    pub fn no_token(&self) -> Option<SyntaxToken> {
4456        support::token(&self.syntax, SyntaxKind::NO_KW)
4457    }
4458    #[inline]
4459    pub fn prepared_token(&self) -> Option<SyntaxToken> {
4460        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
4461    }
4462    #[inline]
4463    pub fn transaction_token(&self) -> Option<SyntaxToken> {
4464        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
4465    }
4466    #[inline]
4467    pub fn work_token(&self) -> Option<SyntaxToken> {
4468        support::token(&self.syntax, SyntaxKind::WORK_KW)
4469    }
4470}
4471
4472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4473pub struct CompoundSelect {
4474    pub(crate) syntax: SyntaxNode,
4475}
4476impl CompoundSelect {
4477    #[inline]
4478    pub fn fetch_clause(&self) -> Option<FetchClause> {
4479        support::child(&self.syntax)
4480    }
4481    #[inline]
4482    pub fn limit_clause(&self) -> Option<LimitClause> {
4483        support::child(&self.syntax)
4484    }
4485    #[inline]
4486    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
4487        support::children(&self.syntax)
4488    }
4489    #[inline]
4490    pub fn offset_clause(&self) -> Option<OffsetClause> {
4491        support::child(&self.syntax)
4492    }
4493    #[inline]
4494    pub fn order_by_clause(&self) -> Option<OrderByClause> {
4495        support::child(&self.syntax)
4496    }
4497    #[inline]
4498    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4499        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4500    }
4501    #[inline]
4502    pub fn all_token(&self) -> Option<SyntaxToken> {
4503        support::token(&self.syntax, SyntaxKind::ALL_KW)
4504    }
4505    #[inline]
4506    pub fn distinct_token(&self) -> Option<SyntaxToken> {
4507        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
4508    }
4509    #[inline]
4510    pub fn except_token(&self) -> Option<SyntaxToken> {
4511        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
4512    }
4513    #[inline]
4514    pub fn intersect_token(&self) -> Option<SyntaxToken> {
4515        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
4516    }
4517    #[inline]
4518    pub fn union_token(&self) -> Option<SyntaxToken> {
4519        support::token(&self.syntax, SyntaxKind::UNION_KW)
4520    }
4521}
4522
4523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4524pub struct CompressionMethod {
4525    pub(crate) syntax: SyntaxNode,
4526}
4527impl CompressionMethod {
4528    #[inline]
4529    pub fn compression_token(&self) -> Option<SyntaxToken> {
4530        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
4531    }
4532    #[inline]
4533    pub fn default_token(&self) -> Option<SyntaxToken> {
4534        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4535    }
4536    #[inline]
4537    pub fn ident_token(&self) -> Option<SyntaxToken> {
4538        support::token(&self.syntax, SyntaxKind::IDENT)
4539    }
4540}
4541
4542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4543pub struct ConflictDoNothing {
4544    pub(crate) syntax: SyntaxNode,
4545}
4546impl ConflictDoNothing {
4547    #[inline]
4548    pub fn do_token(&self) -> Option<SyntaxToken> {
4549        support::token(&self.syntax, SyntaxKind::DO_KW)
4550    }
4551    #[inline]
4552    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4553        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4554    }
4555}
4556
4557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4558pub struct ConflictDoSelect {
4559    pub(crate) syntax: SyntaxNode,
4560}
4561impl ConflictDoSelect {
4562    #[inline]
4563    pub fn locking_clause(&self) -> Option<LockingClause> {
4564        support::child(&self.syntax)
4565    }
4566    #[inline]
4567    pub fn where_clause(&self) -> Option<WhereClause> {
4568        support::child(&self.syntax)
4569    }
4570    #[inline]
4571    pub fn do_token(&self) -> Option<SyntaxToken> {
4572        support::token(&self.syntax, SyntaxKind::DO_KW)
4573    }
4574    #[inline]
4575    pub fn select_token(&self) -> Option<SyntaxToken> {
4576        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4577    }
4578}
4579
4580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4581pub struct ConflictDoUpdateSet {
4582    pub(crate) syntax: SyntaxNode,
4583}
4584impl ConflictDoUpdateSet {
4585    #[inline]
4586    pub fn set_clause(&self) -> Option<SetClause> {
4587        support::child(&self.syntax)
4588    }
4589    #[inline]
4590    pub fn where_clause(&self) -> Option<WhereClause> {
4591        support::child(&self.syntax)
4592    }
4593    #[inline]
4594    pub fn do_token(&self) -> Option<SyntaxToken> {
4595        support::token(&self.syntax, SyntaxKind::DO_KW)
4596    }
4597    #[inline]
4598    pub fn update_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4600    }
4601}
4602
4603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4604pub struct ConflictIndexItem {
4605    pub(crate) syntax: SyntaxNode,
4606}
4607impl ConflictIndexItem {
4608    #[inline]
4609    pub fn collate(&self) -> Option<Collate> {
4610        support::child(&self.syntax)
4611    }
4612    #[inline]
4613    pub fn expr(&self) -> Option<Expr> {
4614        support::child(&self.syntax)
4615    }
4616    #[inline]
4617    pub fn path(&self) -> Option<Path> {
4618        support::child(&self.syntax)
4619    }
4620}
4621
4622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4623pub struct ConflictIndexItemList {
4624    pub(crate) syntax: SyntaxNode,
4625}
4626impl ConflictIndexItemList {
4627    #[inline]
4628    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
4629        support::children(&self.syntax)
4630    }
4631    #[inline]
4632    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4633        support::token(&self.syntax, SyntaxKind::L_PAREN)
4634    }
4635    #[inline]
4636    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4637        support::token(&self.syntax, SyntaxKind::R_PAREN)
4638    }
4639}
4640
4641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4642pub struct ConflictOnConstraint {
4643    pub(crate) syntax: SyntaxNode,
4644}
4645impl ConflictOnConstraint {
4646    #[inline]
4647    pub fn name_ref(&self) -> Option<NameRef> {
4648        support::child(&self.syntax)
4649    }
4650    #[inline]
4651    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4652        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4653    }
4654    #[inline]
4655    pub fn on_token(&self) -> Option<SyntaxToken> {
4656        support::token(&self.syntax, SyntaxKind::ON_KW)
4657    }
4658}
4659
4660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4661pub struct ConflictOnIndex {
4662    pub(crate) syntax: SyntaxNode,
4663}
4664impl ConflictOnIndex {
4665    #[inline]
4666    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
4667        support::child(&self.syntax)
4668    }
4669    #[inline]
4670    pub fn where_clause(&self) -> Option<WhereClause> {
4671        support::child(&self.syntax)
4672    }
4673}
4674
4675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4676pub struct ConstraintExclusion {
4677    pub(crate) syntax: SyntaxNode,
4678}
4679impl ConstraintExclusion {
4680    #[inline]
4681    pub fn expr(&self) -> Option<Expr> {
4682        support::child(&self.syntax)
4683    }
4684    #[inline]
4685    pub fn op(&self) -> Option<Op> {
4686        support::child(&self.syntax)
4687    }
4688    #[inline]
4689    pub fn with_token(&self) -> Option<SyntaxToken> {
4690        support::token(&self.syntax, SyntaxKind::WITH_KW)
4691    }
4692}
4693
4694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4695pub struct ConstraintExclusionList {
4696    pub(crate) syntax: SyntaxNode,
4697}
4698impl ConstraintExclusionList {
4699    #[inline]
4700    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
4701        support::children(&self.syntax)
4702    }
4703    #[inline]
4704    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4705        support::token(&self.syntax, SyntaxKind::L_PAREN)
4706    }
4707    #[inline]
4708    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4709        support::token(&self.syntax, SyntaxKind::R_PAREN)
4710    }
4711}
4712
4713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4714pub struct ConstraintIncludeClause {
4715    pub(crate) syntax: SyntaxNode,
4716}
4717impl ConstraintIncludeClause {
4718    #[inline]
4719    pub fn column_list(&self) -> Option<ColumnList> {
4720        support::child(&self.syntax)
4721    }
4722    #[inline]
4723    pub fn include_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
4725    }
4726}
4727
4728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4729pub struct ConstraintIndexMethod {
4730    pub(crate) syntax: SyntaxNode,
4731}
4732impl ConstraintIndexMethod {
4733    #[inline]
4734    pub fn name_ref(&self) -> Option<NameRef> {
4735        support::child(&self.syntax)
4736    }
4737    #[inline]
4738    pub fn using_token(&self) -> Option<SyntaxToken> {
4739        support::token(&self.syntax, SyntaxKind::USING_KW)
4740    }
4741}
4742
4743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4744pub struct ConstraintIndexTablespace {
4745    pub(crate) syntax: SyntaxNode,
4746}
4747impl ConstraintIndexTablespace {
4748    #[inline]
4749    pub fn name_ref(&self) -> Option<NameRef> {
4750        support::child(&self.syntax)
4751    }
4752    #[inline]
4753    pub fn index_token(&self) -> Option<SyntaxToken> {
4754        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4755    }
4756    #[inline]
4757    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4758        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4759    }
4760    #[inline]
4761    pub fn using_token(&self) -> Option<SyntaxToken> {
4762        support::token(&self.syntax, SyntaxKind::USING_KW)
4763    }
4764}
4765
4766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4767pub struct ConstraintName {
4768    pub(crate) syntax: SyntaxNode,
4769}
4770impl ConstraintName {
4771    #[inline]
4772    pub fn name(&self) -> Option<Name> {
4773        support::child(&self.syntax)
4774    }
4775    #[inline]
4776    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4777        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4778    }
4779}
4780
4781#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4782pub struct Copy {
4783    pub(crate) syntax: SyntaxNode,
4784}
4785impl Copy {
4786    #[inline]
4787    pub fn column_list(&self) -> Option<ColumnList> {
4788        support::child(&self.syntax)
4789    }
4790    #[inline]
4791    pub fn copy_legacy_options(&self) -> AstChildren<CopyLegacyOption> {
4792        support::children(&self.syntax)
4793    }
4794    #[inline]
4795    pub fn copy_option_list(&self) -> Option<CopyOptionList> {
4796        support::child(&self.syntax)
4797    }
4798    #[inline]
4799    pub fn literal(&self) -> Option<Literal> {
4800        support::child(&self.syntax)
4801    }
4802    #[inline]
4803    pub fn path(&self) -> Option<Path> {
4804        support::child(&self.syntax)
4805    }
4806    #[inline]
4807    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
4808        support::child(&self.syntax)
4809    }
4810    #[inline]
4811    pub fn where_clause(&self) -> Option<WhereClause> {
4812        support::child(&self.syntax)
4813    }
4814    #[inline]
4815    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4816        support::token(&self.syntax, SyntaxKind::L_PAREN)
4817    }
4818    #[inline]
4819    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4820        support::token(&self.syntax, SyntaxKind::R_PAREN)
4821    }
4822    #[inline]
4823    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4824        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4825    }
4826    #[inline]
4827    pub fn binary_token(&self) -> Option<SyntaxToken> {
4828        support::token(&self.syntax, SyntaxKind::BINARY_KW)
4829    }
4830    #[inline]
4831    pub fn copy_token(&self) -> Option<SyntaxToken> {
4832        support::token(&self.syntax, SyntaxKind::COPY_KW)
4833    }
4834    #[inline]
4835    pub fn from_token(&self) -> Option<SyntaxToken> {
4836        support::token(&self.syntax, SyntaxKind::FROM_KW)
4837    }
4838    #[inline]
4839    pub fn program_token(&self) -> Option<SyntaxToken> {
4840        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
4841    }
4842    #[inline]
4843    pub fn stdin_token(&self) -> Option<SyntaxToken> {
4844        support::token(&self.syntax, SyntaxKind::STDIN_KW)
4845    }
4846    #[inline]
4847    pub fn stdout_token(&self) -> Option<SyntaxToken> {
4848        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
4849    }
4850    #[inline]
4851    pub fn to_token(&self) -> Option<SyntaxToken> {
4852        support::token(&self.syntax, SyntaxKind::TO_KW)
4853    }
4854    #[inline]
4855    pub fn with_token(&self) -> Option<SyntaxToken> {
4856        support::token(&self.syntax, SyntaxKind::WITH_KW)
4857    }
4858}
4859
4860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4861pub struct CopyLegacyOption {
4862    pub(crate) syntax: SyntaxNode,
4863}
4864impl CopyLegacyOption {
4865    #[inline]
4866    pub fn literal(&self) -> Option<Literal> {
4867        support::child(&self.syntax)
4868    }
4869    #[inline]
4870    pub fn name_refs(&self) -> AstChildren<NameRef> {
4871        support::children(&self.syntax)
4872    }
4873    #[inline]
4874    pub fn star_token(&self) -> Option<SyntaxToken> {
4875        support::token(&self.syntax, SyntaxKind::STAR)
4876    }
4877    #[inline]
4878    pub fn as_token(&self) -> Option<SyntaxToken> {
4879        support::token(&self.syntax, SyntaxKind::AS_KW)
4880    }
4881    #[inline]
4882    pub fn binary_token(&self) -> Option<SyntaxToken> {
4883        support::token(&self.syntax, SyntaxKind::BINARY_KW)
4884    }
4885    #[inline]
4886    pub fn csv_token(&self) -> Option<SyntaxToken> {
4887        support::token(&self.syntax, SyntaxKind::CSV_KW)
4888    }
4889    #[inline]
4890    pub fn delimiter_token(&self) -> Option<SyntaxToken> {
4891        support::token(&self.syntax, SyntaxKind::DELIMITER_KW)
4892    }
4893    #[inline]
4894    pub fn encoding_token(&self) -> Option<SyntaxToken> {
4895        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
4896    }
4897    #[inline]
4898    pub fn escape_token(&self) -> Option<SyntaxToken> {
4899        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
4900    }
4901    #[inline]
4902    pub fn force_token(&self) -> Option<SyntaxToken> {
4903        support::token(&self.syntax, SyntaxKind::FORCE_KW)
4904    }
4905    #[inline]
4906    pub fn freeze_token(&self) -> Option<SyntaxToken> {
4907        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
4908    }
4909    #[inline]
4910    pub fn header_token(&self) -> Option<SyntaxToken> {
4911        support::token(&self.syntax, SyntaxKind::HEADER_KW)
4912    }
4913    #[inline]
4914    pub fn json_token(&self) -> Option<SyntaxToken> {
4915        support::token(&self.syntax, SyntaxKind::JSON_KW)
4916    }
4917    #[inline]
4918    pub fn not_token(&self) -> Option<SyntaxToken> {
4919        support::token(&self.syntax, SyntaxKind::NOT_KW)
4920    }
4921    #[inline]
4922    pub fn null_token(&self) -> Option<SyntaxToken> {
4923        support::token(&self.syntax, SyntaxKind::NULL_KW)
4924    }
4925    #[inline]
4926    pub fn quote_token(&self) -> Option<SyntaxToken> {
4927        support::token(&self.syntax, SyntaxKind::QUOTE_KW)
4928    }
4929}
4930
4931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4932pub struct CopyOption {
4933    pub(crate) syntax: SyntaxNode,
4934}
4935impl CopyOption {
4936    #[inline]
4937    pub fn copy_option_list(&self) -> Option<CopyOptionList> {
4938        support::child(&self.syntax)
4939    }
4940    #[inline]
4941    pub fn literal(&self) -> Option<Literal> {
4942        support::child(&self.syntax)
4943    }
4944    #[inline]
4945    pub fn name(&self) -> Option<Name> {
4946        support::child(&self.syntax)
4947    }
4948    #[inline]
4949    pub fn star_token(&self) -> Option<SyntaxToken> {
4950        support::token(&self.syntax, SyntaxKind::STAR)
4951    }
4952    #[inline]
4953    pub fn default_token(&self) -> Option<SyntaxToken> {
4954        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4955    }
4956    #[inline]
4957    pub fn ident_token(&self) -> Option<SyntaxToken> {
4958        support::token(&self.syntax, SyntaxKind::IDENT)
4959    }
4960    #[inline]
4961    pub fn off_token(&self) -> Option<SyntaxToken> {
4962        support::token(&self.syntax, SyntaxKind::OFF_KW)
4963    }
4964    #[inline]
4965    pub fn on_token(&self) -> Option<SyntaxToken> {
4966        support::token(&self.syntax, SyntaxKind::ON_KW)
4967    }
4968}
4969
4970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4971pub struct CopyOptionList {
4972    pub(crate) syntax: SyntaxNode,
4973}
4974impl CopyOptionList {
4975    #[inline]
4976    pub fn copy_options(&self) -> AstChildren<CopyOption> {
4977        support::children(&self.syntax)
4978    }
4979    #[inline]
4980    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4981        support::token(&self.syntax, SyntaxKind::L_PAREN)
4982    }
4983    #[inline]
4984    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4985        support::token(&self.syntax, SyntaxKind::R_PAREN)
4986    }
4987}
4988
4989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4990pub struct CostFuncOption {
4991    pub(crate) syntax: SyntaxNode,
4992}
4993impl CostFuncOption {
4994    #[inline]
4995    pub fn literal(&self) -> Option<Literal> {
4996        support::child(&self.syntax)
4997    }
4998    #[inline]
4999    pub fn cost_token(&self) -> Option<SyntaxToken> {
5000        support::token(&self.syntax, SyntaxKind::COST_KW)
5001    }
5002}
5003
5004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5005pub struct CreateAccessMethod {
5006    pub(crate) syntax: SyntaxNode,
5007}
5008impl CreateAccessMethod {
5009    #[inline]
5010    pub fn handler_clause(&self) -> Option<HandlerClause> {
5011        support::child(&self.syntax)
5012    }
5013    #[inline]
5014    pub fn name(&self) -> Option<Path> {
5015        support::child(&self.syntax)
5016    }
5017    #[inline]
5018    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5019        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5020    }
5021    #[inline]
5022    pub fn access_token(&self) -> Option<SyntaxToken> {
5023        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5024    }
5025    #[inline]
5026    pub fn create_token(&self) -> Option<SyntaxToken> {
5027        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5028    }
5029    #[inline]
5030    pub fn index_token(&self) -> Option<SyntaxToken> {
5031        support::token(&self.syntax, SyntaxKind::INDEX_KW)
5032    }
5033    #[inline]
5034    pub fn method_token(&self) -> Option<SyntaxToken> {
5035        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5036    }
5037    #[inline]
5038    pub fn table_token(&self) -> Option<SyntaxToken> {
5039        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5040    }
5041    #[inline]
5042    pub fn type_token(&self) -> Option<SyntaxToken> {
5043        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5044    }
5045}
5046
5047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5048pub struct CreateAggregate {
5049    pub(crate) syntax: SyntaxNode,
5050}
5051impl CreateAggregate {
5052    #[inline]
5053    pub fn attribute_list(&self) -> Option<AttributeList> {
5054        support::child(&self.syntax)
5055    }
5056    #[inline]
5057    pub fn or_replace(&self) -> Option<OrReplace> {
5058        support::child(&self.syntax)
5059    }
5060    #[inline]
5061    pub fn param_list(&self) -> Option<ParamList> {
5062        support::child(&self.syntax)
5063    }
5064    #[inline]
5065    pub fn path(&self) -> Option<Path> {
5066        support::child(&self.syntax)
5067    }
5068    #[inline]
5069    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5070        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5071    }
5072    #[inline]
5073    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5074        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5075    }
5076    #[inline]
5077    pub fn create_token(&self) -> Option<SyntaxToken> {
5078        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5079    }
5080}
5081
5082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5083pub struct CreateCast {
5084    pub(crate) syntax: SyntaxNode,
5085}
5086impl CreateCast {
5087    #[inline]
5088    pub fn cast_sig(&self) -> Option<CastSig> {
5089        support::child(&self.syntax)
5090    }
5091    #[inline]
5092    pub fn function_sig(&self) -> Option<FunctionSig> {
5093        support::child(&self.syntax)
5094    }
5095    #[inline]
5096    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5097        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5098    }
5099    #[inline]
5100    pub fn as_token(&self) -> Option<SyntaxToken> {
5101        support::token(&self.syntax, SyntaxKind::AS_KW)
5102    }
5103    #[inline]
5104    pub fn assignment_token(&self) -> Option<SyntaxToken> {
5105        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
5106    }
5107    #[inline]
5108    pub fn cast_token(&self) -> Option<SyntaxToken> {
5109        support::token(&self.syntax, SyntaxKind::CAST_KW)
5110    }
5111    #[inline]
5112    pub fn create_token(&self) -> Option<SyntaxToken> {
5113        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5114    }
5115    #[inline]
5116    pub fn function_token(&self) -> Option<SyntaxToken> {
5117        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5118    }
5119    #[inline]
5120    pub fn implicit_token(&self) -> Option<SyntaxToken> {
5121        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
5122    }
5123    #[inline]
5124    pub fn inout_token(&self) -> Option<SyntaxToken> {
5125        support::token(&self.syntax, SyntaxKind::INOUT_KW)
5126    }
5127    #[inline]
5128    pub fn with_token(&self) -> Option<SyntaxToken> {
5129        support::token(&self.syntax, SyntaxKind::WITH_KW)
5130    }
5131    #[inline]
5132    pub fn without_token(&self) -> Option<SyntaxToken> {
5133        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5134    }
5135}
5136
5137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5138pub struct CreateCollation {
5139    pub(crate) syntax: SyntaxNode,
5140}
5141impl CreateCollation {
5142    #[inline]
5143    pub fn attribute_list(&self) -> Option<AttributeList> {
5144        support::child(&self.syntax)
5145    }
5146    #[inline]
5147    pub fn collation_from(&self) -> Option<CollationFrom> {
5148        support::child(&self.syntax)
5149    }
5150    #[inline]
5151    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5152        support::child(&self.syntax)
5153    }
5154    #[inline]
5155    pub fn path(&self) -> Option<Path> {
5156        support::child(&self.syntax)
5157    }
5158    #[inline]
5159    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5160        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5161    }
5162    #[inline]
5163    pub fn collation_token(&self) -> Option<SyntaxToken> {
5164        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5165    }
5166    #[inline]
5167    pub fn create_token(&self) -> Option<SyntaxToken> {
5168        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5169    }
5170}
5171
5172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5173pub struct CreateConversion {
5174    pub(crate) syntax: SyntaxNode,
5175}
5176impl CreateConversion {
5177    #[inline]
5178    pub fn literal(&self) -> Option<Literal> {
5179        support::child(&self.syntax)
5180    }
5181    #[inline]
5182    pub fn path(&self) -> Option<Path> {
5183        support::child(&self.syntax)
5184    }
5185    #[inline]
5186    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5187        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5188    }
5189    #[inline]
5190    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5191        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5192    }
5193    #[inline]
5194    pub fn create_token(&self) -> Option<SyntaxToken> {
5195        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5196    }
5197    #[inline]
5198    pub fn default_token(&self) -> Option<SyntaxToken> {
5199        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5200    }
5201    #[inline]
5202    pub fn for_token(&self) -> Option<SyntaxToken> {
5203        support::token(&self.syntax, SyntaxKind::FOR_KW)
5204    }
5205    #[inline]
5206    pub fn from_token(&self) -> Option<SyntaxToken> {
5207        support::token(&self.syntax, SyntaxKind::FROM_KW)
5208    }
5209    #[inline]
5210    pub fn to_token(&self) -> Option<SyntaxToken> {
5211        support::token(&self.syntax, SyntaxKind::TO_KW)
5212    }
5213}
5214
5215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5216pub struct CreateDatabase {
5217    pub(crate) syntax: SyntaxNode,
5218}
5219impl CreateDatabase {
5220    #[inline]
5221    pub fn database_option_list(&self) -> Option<DatabaseOptionList> {
5222        support::child(&self.syntax)
5223    }
5224    #[inline]
5225    pub fn name(&self) -> Option<Name> {
5226        support::child(&self.syntax)
5227    }
5228    #[inline]
5229    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5230        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5231    }
5232    #[inline]
5233    pub fn create_token(&self) -> Option<SyntaxToken> {
5234        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5235    }
5236    #[inline]
5237    pub fn database_token(&self) -> Option<SyntaxToken> {
5238        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5239    }
5240}
5241
5242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5243pub struct CreateDomain {
5244    pub(crate) syntax: SyntaxNode,
5245}
5246impl CreateDomain {
5247    #[inline]
5248    pub fn collate(&self) -> Option<Collate> {
5249        support::child(&self.syntax)
5250    }
5251    #[inline]
5252    pub fn constraints(&self) -> AstChildren<Constraint> {
5253        support::children(&self.syntax)
5254    }
5255    #[inline]
5256    pub fn path(&self) -> Option<Path> {
5257        support::child(&self.syntax)
5258    }
5259    #[inline]
5260    pub fn ty(&self) -> Option<Type> {
5261        support::child(&self.syntax)
5262    }
5263    #[inline]
5264    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5265        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5266    }
5267    #[inline]
5268    pub fn as_token(&self) -> Option<SyntaxToken> {
5269        support::token(&self.syntax, SyntaxKind::AS_KW)
5270    }
5271    #[inline]
5272    pub fn create_token(&self) -> Option<SyntaxToken> {
5273        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5274    }
5275    #[inline]
5276    pub fn domain_token(&self) -> Option<SyntaxToken> {
5277        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5278    }
5279}
5280
5281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5282pub struct CreateEventTrigger {
5283    pub(crate) syntax: SyntaxNode,
5284}
5285impl CreateEventTrigger {
5286    #[inline]
5287    pub fn call_expr(&self) -> Option<CallExpr> {
5288        support::child(&self.syntax)
5289    }
5290    #[inline]
5291    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
5292        support::child(&self.syntax)
5293    }
5294    #[inline]
5295    pub fn name(&self) -> Option<Name> {
5296        support::child(&self.syntax)
5297    }
5298    #[inline]
5299    pub fn name_ref(&self) -> Option<NameRef> {
5300        support::child(&self.syntax)
5301    }
5302    #[inline]
5303    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5304        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5305    }
5306    #[inline]
5307    pub fn create_token(&self) -> Option<SyntaxToken> {
5308        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5309    }
5310    #[inline]
5311    pub fn event_token(&self) -> Option<SyntaxToken> {
5312        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5313    }
5314    #[inline]
5315    pub fn execute_token(&self) -> Option<SyntaxToken> {
5316        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5317    }
5318    #[inline]
5319    pub fn function_token(&self) -> Option<SyntaxToken> {
5320        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5321    }
5322    #[inline]
5323    pub fn on_token(&self) -> Option<SyntaxToken> {
5324        support::token(&self.syntax, SyntaxKind::ON_KW)
5325    }
5326    #[inline]
5327    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5328        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5329    }
5330    #[inline]
5331    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5332        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5333    }
5334}
5335
5336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5337pub struct CreateExtension {
5338    pub(crate) syntax: SyntaxNode,
5339}
5340impl CreateExtension {
5341    #[inline]
5342    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5343        support::child(&self.syntax)
5344    }
5345    #[inline]
5346    pub fn literal(&self) -> Option<Literal> {
5347        support::child(&self.syntax)
5348    }
5349    #[inline]
5350    pub fn name(&self) -> Option<Name> {
5351        support::child(&self.syntax)
5352    }
5353    #[inline]
5354    pub fn name_ref(&self) -> Option<NameRef> {
5355        support::child(&self.syntax)
5356    }
5357    #[inline]
5358    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5359        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5360    }
5361    #[inline]
5362    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5363        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5364    }
5365    #[inline]
5366    pub fn create_token(&self) -> Option<SyntaxToken> {
5367        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5368    }
5369    #[inline]
5370    pub fn extension_token(&self) -> Option<SyntaxToken> {
5371        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5372    }
5373    #[inline]
5374    pub fn ident_token(&self) -> Option<SyntaxToken> {
5375        support::token(&self.syntax, SyntaxKind::IDENT)
5376    }
5377    #[inline]
5378    pub fn schema_token(&self) -> Option<SyntaxToken> {
5379        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
5380    }
5381    #[inline]
5382    pub fn version_token(&self) -> Option<SyntaxToken> {
5383        support::token(&self.syntax, SyntaxKind::VERSION_KW)
5384    }
5385    #[inline]
5386    pub fn with_token(&self) -> Option<SyntaxToken> {
5387        support::token(&self.syntax, SyntaxKind::WITH_KW)
5388    }
5389}
5390
5391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5392pub struct CreateForeignDataWrapper {
5393    pub(crate) syntax: SyntaxNode,
5394}
5395impl CreateForeignDataWrapper {
5396    #[inline]
5397    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5398        support::child(&self.syntax)
5399    }
5400    #[inline]
5401    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
5402        support::child(&self.syntax)
5403    }
5404    #[inline]
5405    pub fn name(&self) -> Option<Name> {
5406        support::child(&self.syntax)
5407    }
5408    #[inline]
5409    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5410        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5411    }
5412    #[inline]
5413    pub fn create_token(&self) -> Option<SyntaxToken> {
5414        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5415    }
5416    #[inline]
5417    pub fn data_token(&self) -> Option<SyntaxToken> {
5418        support::token(&self.syntax, SyntaxKind::DATA_KW)
5419    }
5420    #[inline]
5421    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5422        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5423    }
5424    #[inline]
5425    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5426        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5427    }
5428}
5429
5430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5431pub struct CreateForeignTable {
5432    pub(crate) syntax: SyntaxNode,
5433}
5434impl CreateForeignTable {
5435    #[inline]
5436    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5437        support::child(&self.syntax)
5438    }
5439    #[inline]
5440    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5441        support::child(&self.syntax)
5442    }
5443    #[inline]
5444    pub fn inherits(&self) -> Option<Inherits> {
5445        support::child(&self.syntax)
5446    }
5447    #[inline]
5448    pub fn partition_of(&self) -> Option<PartitionOf> {
5449        support::child(&self.syntax)
5450    }
5451    #[inline]
5452    pub fn partition_type(&self) -> Option<PartitionType> {
5453        support::child(&self.syntax)
5454    }
5455    #[inline]
5456    pub fn path(&self) -> Option<Path> {
5457        support::child(&self.syntax)
5458    }
5459    #[inline]
5460    pub fn server_name(&self) -> Option<ServerName> {
5461        support::child(&self.syntax)
5462    }
5463    #[inline]
5464    pub fn table_arg_list(&self) -> Option<TableArgList> {
5465        support::child(&self.syntax)
5466    }
5467    #[inline]
5468    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5469        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5470    }
5471    #[inline]
5472    pub fn create_token(&self) -> Option<SyntaxToken> {
5473        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5474    }
5475    #[inline]
5476    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5477        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5478    }
5479    #[inline]
5480    pub fn table_token(&self) -> Option<SyntaxToken> {
5481        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5482    }
5483}
5484
5485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5486pub struct CreateFunction {
5487    pub(crate) syntax: SyntaxNode,
5488}
5489impl CreateFunction {
5490    #[inline]
5491    pub fn option_list(&self) -> Option<FuncOptionList> {
5492        support::child(&self.syntax)
5493    }
5494    #[inline]
5495    pub fn or_replace(&self) -> Option<OrReplace> {
5496        support::child(&self.syntax)
5497    }
5498    #[inline]
5499    pub fn param_list(&self) -> Option<ParamList> {
5500        support::child(&self.syntax)
5501    }
5502    #[inline]
5503    pub fn path(&self) -> Option<Path> {
5504        support::child(&self.syntax)
5505    }
5506    #[inline]
5507    pub fn ret_type(&self) -> Option<RetType> {
5508        support::child(&self.syntax)
5509    }
5510    #[inline]
5511    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5512        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5513    }
5514    #[inline]
5515    pub fn create_token(&self) -> Option<SyntaxToken> {
5516        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5517    }
5518    #[inline]
5519    pub fn function_token(&self) -> Option<SyntaxToken> {
5520        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5521    }
5522}
5523
5524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5525pub struct CreateGroup {
5526    pub(crate) syntax: SyntaxNode,
5527}
5528impl CreateGroup {
5529    #[inline]
5530    pub fn name(&self) -> Option<Name> {
5531        support::child(&self.syntax)
5532    }
5533    #[inline]
5534    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5535        support::child(&self.syntax)
5536    }
5537    #[inline]
5538    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5540    }
5541    #[inline]
5542    pub fn create_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5544    }
5545    #[inline]
5546    pub fn group_token(&self) -> Option<SyntaxToken> {
5547        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5548    }
5549}
5550
5551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5552pub struct CreateIndex {
5553    pub(crate) syntax: SyntaxNode,
5554}
5555impl CreateIndex {
5556    #[inline]
5557    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
5558        support::child(&self.syntax)
5559    }
5560    #[inline]
5561    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5562        support::child(&self.syntax)
5563    }
5564    #[inline]
5565    pub fn name(&self) -> Option<Name> {
5566        support::child(&self.syntax)
5567    }
5568    #[inline]
5569    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
5570        support::child(&self.syntax)
5571    }
5572    #[inline]
5573    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
5574        support::child(&self.syntax)
5575    }
5576    #[inline]
5577    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
5578        support::child(&self.syntax)
5579    }
5580    #[inline]
5581    pub fn relation_name(&self) -> Option<RelationName> {
5582        support::child(&self.syntax)
5583    }
5584    #[inline]
5585    pub fn tablespace(&self) -> Option<Tablespace> {
5586        support::child(&self.syntax)
5587    }
5588    #[inline]
5589    pub fn using_method(&self) -> Option<UsingMethod> {
5590        support::child(&self.syntax)
5591    }
5592    #[inline]
5593    pub fn where_clause(&self) -> Option<WhereClause> {
5594        support::child(&self.syntax)
5595    }
5596    #[inline]
5597    pub fn with_params(&self) -> Option<WithParams> {
5598        support::child(&self.syntax)
5599    }
5600    #[inline]
5601    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5602        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5603    }
5604    #[inline]
5605    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
5606        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
5607    }
5608    #[inline]
5609    pub fn create_token(&self) -> Option<SyntaxToken> {
5610        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5611    }
5612    #[inline]
5613    pub fn index_token(&self) -> Option<SyntaxToken> {
5614        support::token(&self.syntax, SyntaxKind::INDEX_KW)
5615    }
5616    #[inline]
5617    pub fn on_token(&self) -> Option<SyntaxToken> {
5618        support::token(&self.syntax, SyntaxKind::ON_KW)
5619    }
5620    #[inline]
5621    pub fn unique_token(&self) -> Option<SyntaxToken> {
5622        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
5623    }
5624}
5625
5626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5627pub struct CreateLanguage {
5628    pub(crate) syntax: SyntaxNode,
5629}
5630impl CreateLanguage {
5631    #[inline]
5632    pub fn name(&self) -> Option<Name> {
5633        support::child(&self.syntax)
5634    }
5635    #[inline]
5636    pub fn or_replace(&self) -> Option<OrReplace> {
5637        support::child(&self.syntax)
5638    }
5639    #[inline]
5640    pub fn path(&self) -> Option<Path> {
5641        support::child(&self.syntax)
5642    }
5643    #[inline]
5644    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5645        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5646    }
5647    #[inline]
5648    pub fn create_token(&self) -> Option<SyntaxToken> {
5649        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5650    }
5651    #[inline]
5652    pub fn handler_token(&self) -> Option<SyntaxToken> {
5653        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
5654    }
5655    #[inline]
5656    pub fn inline_token(&self) -> Option<SyntaxToken> {
5657        support::token(&self.syntax, SyntaxKind::INLINE_KW)
5658    }
5659    #[inline]
5660    pub fn language_token(&self) -> Option<SyntaxToken> {
5661        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5662    }
5663    #[inline]
5664    pub fn procedural_token(&self) -> Option<SyntaxToken> {
5665        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
5666    }
5667    #[inline]
5668    pub fn trusted_token(&self) -> Option<SyntaxToken> {
5669        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
5670    }
5671    #[inline]
5672    pub fn validator_token(&self) -> Option<SyntaxToken> {
5673        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
5674    }
5675}
5676
5677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5678pub struct CreateMaterializedView {
5679    pub(crate) syntax: SyntaxNode,
5680}
5681impl CreateMaterializedView {
5682    #[inline]
5683    pub fn column_list(&self) -> Option<ColumnList> {
5684        support::child(&self.syntax)
5685    }
5686    #[inline]
5687    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5688        support::child(&self.syntax)
5689    }
5690    #[inline]
5691    pub fn path(&self) -> Option<Path> {
5692        support::child(&self.syntax)
5693    }
5694    #[inline]
5695    pub fn query(&self) -> Option<SelectVariant> {
5696        support::child(&self.syntax)
5697    }
5698    #[inline]
5699    pub fn tablespace(&self) -> Option<Tablespace> {
5700        support::child(&self.syntax)
5701    }
5702    #[inline]
5703    pub fn using_method(&self) -> Option<UsingMethod> {
5704        support::child(&self.syntax)
5705    }
5706    #[inline]
5707    pub fn with_data(&self) -> Option<WithData> {
5708        support::child(&self.syntax)
5709    }
5710    #[inline]
5711    pub fn with_no_data(&self) -> Option<WithNoData> {
5712        support::child(&self.syntax)
5713    }
5714    #[inline]
5715    pub fn with_params(&self) -> Option<WithParams> {
5716        support::child(&self.syntax)
5717    }
5718    #[inline]
5719    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5720        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5721    }
5722    #[inline]
5723    pub fn as_token(&self) -> Option<SyntaxToken> {
5724        support::token(&self.syntax, SyntaxKind::AS_KW)
5725    }
5726    #[inline]
5727    pub fn create_token(&self) -> Option<SyntaxToken> {
5728        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5729    }
5730    #[inline]
5731    pub fn materialized_token(&self) -> Option<SyntaxToken> {
5732        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
5733    }
5734    #[inline]
5735    pub fn view_token(&self) -> Option<SyntaxToken> {
5736        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5737    }
5738}
5739
5740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5741pub struct CreateOperator {
5742    pub(crate) syntax: SyntaxNode,
5743}
5744impl CreateOperator {
5745    #[inline]
5746    pub fn attribute_list(&self) -> Option<AttributeList> {
5747        support::child(&self.syntax)
5748    }
5749    #[inline]
5750    pub fn op(&self) -> Option<Op> {
5751        support::child(&self.syntax)
5752    }
5753    #[inline]
5754    pub fn path(&self) -> Option<Path> {
5755        support::child(&self.syntax)
5756    }
5757    #[inline]
5758    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5759        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5760    }
5761    #[inline]
5762    pub fn create_token(&self) -> Option<SyntaxToken> {
5763        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5764    }
5765    #[inline]
5766    pub fn operator_token(&self) -> Option<SyntaxToken> {
5767        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
5768    }
5769}
5770
5771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5772pub struct CreateOperatorClass {
5773    pub(crate) syntax: SyntaxNode,
5774}
5775impl CreateOperatorClass {
5776    #[inline]
5777    pub fn name_ref(&self) -> Option<NameRef> {
5778        support::child(&self.syntax)
5779    }
5780    #[inline]
5781    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
5782        support::child(&self.syntax)
5783    }
5784    #[inline]
5785    pub fn path(&self) -> Option<Path> {
5786        support::child(&self.syntax)
5787    }
5788    #[inline]
5789    pub fn ty(&self) -> Option<Type> {
5790        support::child(&self.syntax)
5791    }
5792    #[inline]
5793    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5794        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5795    }
5796    #[inline]
5797    pub fn as_token(&self) -> Option<SyntaxToken> {
5798        support::token(&self.syntax, SyntaxKind::AS_KW)
5799    }
5800    #[inline]
5801    pub fn class_token(&self) -> Option<SyntaxToken> {
5802        support::token(&self.syntax, SyntaxKind::CLASS_KW)
5803    }
5804    #[inline]
5805    pub fn create_token(&self) -> Option<SyntaxToken> {
5806        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5807    }
5808    #[inline]
5809    pub fn default_token(&self) -> Option<SyntaxToken> {
5810        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5811    }
5812    #[inline]
5813    pub fn family_token(&self) -> Option<SyntaxToken> {
5814        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
5815    }
5816    #[inline]
5817    pub fn for_token(&self) -> Option<SyntaxToken> {
5818        support::token(&self.syntax, SyntaxKind::FOR_KW)
5819    }
5820    #[inline]
5821    pub fn operator_token(&self) -> Option<SyntaxToken> {
5822        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
5823    }
5824    #[inline]
5825    pub fn type_token(&self) -> Option<SyntaxToken> {
5826        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5827    }
5828    #[inline]
5829    pub fn using_token(&self) -> Option<SyntaxToken> {
5830        support::token(&self.syntax, SyntaxKind::USING_KW)
5831    }
5832}
5833
5834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5835pub struct CreateOperatorFamily {
5836    pub(crate) syntax: SyntaxNode,
5837}
5838impl CreateOperatorFamily {
5839    #[inline]
5840    pub fn name_ref(&self) -> Option<NameRef> {
5841        support::child(&self.syntax)
5842    }
5843    #[inline]
5844    pub fn path(&self) -> Option<Path> {
5845        support::child(&self.syntax)
5846    }
5847    #[inline]
5848    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5849        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5850    }
5851    #[inline]
5852    pub fn create_token(&self) -> Option<SyntaxToken> {
5853        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5854    }
5855    #[inline]
5856    pub fn family_token(&self) -> Option<SyntaxToken> {
5857        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
5858    }
5859    #[inline]
5860    pub fn operator_token(&self) -> Option<SyntaxToken> {
5861        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
5862    }
5863    #[inline]
5864    pub fn using_token(&self) -> Option<SyntaxToken> {
5865        support::token(&self.syntax, SyntaxKind::USING_KW)
5866    }
5867}
5868
5869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5870pub struct CreatePolicy {
5871    pub(crate) syntax: SyntaxNode,
5872}
5873impl CreatePolicy {
5874    #[inline]
5875    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
5876        support::child(&self.syntax)
5877    }
5878    #[inline]
5879    pub fn name(&self) -> Option<Name> {
5880        support::child(&self.syntax)
5881    }
5882    #[inline]
5883    pub fn on_table(&self) -> Option<OnTable> {
5884        support::child(&self.syntax)
5885    }
5886    #[inline]
5887    pub fn role_ref_list(&self) -> Option<RoleRefList> {
5888        support::child(&self.syntax)
5889    }
5890    #[inline]
5891    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
5892        support::child(&self.syntax)
5893    }
5894    #[inline]
5895    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
5896        support::child(&self.syntax)
5897    }
5898    #[inline]
5899    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5900        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5901    }
5902    #[inline]
5903    pub fn all_token(&self) -> Option<SyntaxToken> {
5904        support::token(&self.syntax, SyntaxKind::ALL_KW)
5905    }
5906    #[inline]
5907    pub fn create_token(&self) -> Option<SyntaxToken> {
5908        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5909    }
5910    #[inline]
5911    pub fn delete_token(&self) -> Option<SyntaxToken> {
5912        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5913    }
5914    #[inline]
5915    pub fn for_token(&self) -> Option<SyntaxToken> {
5916        support::token(&self.syntax, SyntaxKind::FOR_KW)
5917    }
5918    #[inline]
5919    pub fn insert_token(&self) -> Option<SyntaxToken> {
5920        support::token(&self.syntax, SyntaxKind::INSERT_KW)
5921    }
5922    #[inline]
5923    pub fn policy_token(&self) -> Option<SyntaxToken> {
5924        support::token(&self.syntax, SyntaxKind::POLICY_KW)
5925    }
5926    #[inline]
5927    pub fn select_token(&self) -> Option<SyntaxToken> {
5928        support::token(&self.syntax, SyntaxKind::SELECT_KW)
5929    }
5930    #[inline]
5931    pub fn to_token(&self) -> Option<SyntaxToken> {
5932        support::token(&self.syntax, SyntaxKind::TO_KW)
5933    }
5934    #[inline]
5935    pub fn update_token(&self) -> Option<SyntaxToken> {
5936        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
5937    }
5938}
5939
5940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5941pub struct CreateProcedure {
5942    pub(crate) syntax: SyntaxNode,
5943}
5944impl CreateProcedure {
5945    #[inline]
5946    pub fn option_list(&self) -> Option<FuncOptionList> {
5947        support::child(&self.syntax)
5948    }
5949    #[inline]
5950    pub fn or_replace(&self) -> Option<OrReplace> {
5951        support::child(&self.syntax)
5952    }
5953    #[inline]
5954    pub fn param_list(&self) -> Option<ParamList> {
5955        support::child(&self.syntax)
5956    }
5957    #[inline]
5958    pub fn path(&self) -> Option<Path> {
5959        support::child(&self.syntax)
5960    }
5961    #[inline]
5962    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5963        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5964    }
5965    #[inline]
5966    pub fn create_token(&self) -> Option<SyntaxToken> {
5967        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5968    }
5969    #[inline]
5970    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5971        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5972    }
5973}
5974
5975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5976pub struct CreatePropertyGraph {
5977    pub(crate) syntax: SyntaxNode,
5978}
5979impl CreatePropertyGraph {
5980    #[inline]
5981    pub fn edge_tables(&self) -> Option<EdgeTables> {
5982        support::child(&self.syntax)
5983    }
5984    #[inline]
5985    pub fn path(&self) -> Option<Path> {
5986        support::child(&self.syntax)
5987    }
5988    #[inline]
5989    pub fn persistence(&self) -> Option<Persistence> {
5990        support::child(&self.syntax)
5991    }
5992    #[inline]
5993    pub fn vertex_tables(&self) -> Option<VertexTables> {
5994        support::child(&self.syntax)
5995    }
5996    #[inline]
5997    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5998        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5999    }
6000    #[inline]
6001    pub fn create_token(&self) -> Option<SyntaxToken> {
6002        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6003    }
6004    #[inline]
6005    pub fn graph_token(&self) -> Option<SyntaxToken> {
6006        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
6007    }
6008    #[inline]
6009    pub fn property_token(&self) -> Option<SyntaxToken> {
6010        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
6011    }
6012}
6013
6014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6015pub struct CreatePublication {
6016    pub(crate) syntax: SyntaxNode,
6017}
6018impl CreatePublication {
6019    #[inline]
6020    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
6021        support::child(&self.syntax)
6022    }
6023    #[inline]
6024    pub fn name(&self) -> Option<Name> {
6025        support::child(&self.syntax)
6026    }
6027    #[inline]
6028    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
6029        support::children(&self.syntax)
6030    }
6031    #[inline]
6032    pub fn with_params(&self) -> Option<WithParams> {
6033        support::child(&self.syntax)
6034    }
6035    #[inline]
6036    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6037        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6038    }
6039    #[inline]
6040    pub fn all_token(&self) -> Option<SyntaxToken> {
6041        support::token(&self.syntax, SyntaxKind::ALL_KW)
6042    }
6043    #[inline]
6044    pub fn create_token(&self) -> Option<SyntaxToken> {
6045        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6046    }
6047    #[inline]
6048    pub fn for_token(&self) -> Option<SyntaxToken> {
6049        support::token(&self.syntax, SyntaxKind::FOR_KW)
6050    }
6051    #[inline]
6052    pub fn publication_token(&self) -> Option<SyntaxToken> {
6053        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6054    }
6055    #[inline]
6056    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6057        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6058    }
6059    #[inline]
6060    pub fn tables_token(&self) -> Option<SyntaxToken> {
6061        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6062    }
6063}
6064
6065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6066pub struct CreateRole {
6067    pub(crate) syntax: SyntaxNode,
6068}
6069impl CreateRole {
6070    #[inline]
6071    pub fn name(&self) -> Option<Name> {
6072        support::child(&self.syntax)
6073    }
6074    #[inline]
6075    pub fn role_option_list(&self) -> Option<RoleOptionList> {
6076        support::child(&self.syntax)
6077    }
6078    #[inline]
6079    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6080        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6081    }
6082    #[inline]
6083    pub fn create_token(&self) -> Option<SyntaxToken> {
6084        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6085    }
6086    #[inline]
6087    pub fn role_token(&self) -> Option<SyntaxToken> {
6088        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6089    }
6090}
6091
6092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6093pub struct CreateRule {
6094    pub(crate) syntax: SyntaxNode,
6095}
6096impl CreateRule {
6097    #[inline]
6098    pub fn name(&self) -> Option<Name> {
6099        support::child(&self.syntax)
6100    }
6101    #[inline]
6102    pub fn or_replace(&self) -> Option<OrReplace> {
6103        support::child(&self.syntax)
6104    }
6105    #[inline]
6106    pub fn rule_do(&self) -> Option<RuleDo> {
6107        support::child(&self.syntax)
6108    }
6109    #[inline]
6110    pub fn rule_on(&self) -> Option<RuleOn> {
6111        support::child(&self.syntax)
6112    }
6113    #[inline]
6114    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6115        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6116    }
6117    #[inline]
6118    pub fn as_token(&self) -> Option<SyntaxToken> {
6119        support::token(&self.syntax, SyntaxKind::AS_KW)
6120    }
6121    #[inline]
6122    pub fn create_token(&self) -> Option<SyntaxToken> {
6123        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6124    }
6125    #[inline]
6126    pub fn rule_token(&self) -> Option<SyntaxToken> {
6127        support::token(&self.syntax, SyntaxKind::RULE_KW)
6128    }
6129}
6130
6131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6132pub struct CreateSchema {
6133    pub(crate) syntax: SyntaxNode,
6134}
6135impl CreateSchema {
6136    #[inline]
6137    pub fn if_not_exists(&self) -> Option<IfNotExists> {
6138        support::child(&self.syntax)
6139    }
6140    #[inline]
6141    pub fn name(&self) -> Option<Name> {
6142        support::child(&self.syntax)
6143    }
6144    #[inline]
6145    pub fn role(&self) -> Option<Role> {
6146        support::child(&self.syntax)
6147    }
6148    #[inline]
6149    pub fn role_ref(&self) -> Option<RoleRef> {
6150        support::child(&self.syntax)
6151    }
6152    #[inline]
6153    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
6154        support::children(&self.syntax)
6155    }
6156    #[inline]
6157    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6158        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6159    }
6160    #[inline]
6161    pub fn authorization_token(&self) -> Option<SyntaxToken> {
6162        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
6163    }
6164    #[inline]
6165    pub fn create_token(&self) -> Option<SyntaxToken> {
6166        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6167    }
6168    #[inline]
6169    pub fn schema_token(&self) -> Option<SyntaxToken> {
6170        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6171    }
6172}
6173
6174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6175pub struct CreateSequence {
6176    pub(crate) syntax: SyntaxNode,
6177}
6178impl CreateSequence {
6179    #[inline]
6180    pub fn if_not_exists(&self) -> Option<IfNotExists> {
6181        support::child(&self.syntax)
6182    }
6183    #[inline]
6184    pub fn path(&self) -> Option<Path> {
6185        support::child(&self.syntax)
6186    }
6187    #[inline]
6188    pub fn persistence(&self) -> Option<Persistence> {
6189        support::child(&self.syntax)
6190    }
6191    #[inline]
6192    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
6193        support::children(&self.syntax)
6194    }
6195    #[inline]
6196    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6197        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6198    }
6199    #[inline]
6200    pub fn create_token(&self) -> Option<SyntaxToken> {
6201        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6202    }
6203    #[inline]
6204    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6205        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6206    }
6207}
6208
6209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6210pub struct CreateServer {
6211    pub(crate) syntax: SyntaxNode,
6212}
6213impl CreateServer {
6214    #[inline]
6215    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
6216        support::child(&self.syntax)
6217    }
6218    #[inline]
6219    pub fn if_not_exists(&self) -> Option<IfNotExists> {
6220        support::child(&self.syntax)
6221    }
6222    #[inline]
6223    pub fn literal(&self) -> Option<Literal> {
6224        support::child(&self.syntax)
6225    }
6226    #[inline]
6227    pub fn name(&self) -> Option<Name> {
6228        support::child(&self.syntax)
6229    }
6230    #[inline]
6231    pub fn name_ref(&self) -> Option<NameRef> {
6232        support::child(&self.syntax)
6233    }
6234    #[inline]
6235    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6236        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6237    }
6238    #[inline]
6239    pub fn create_token(&self) -> Option<SyntaxToken> {
6240        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6241    }
6242    #[inline]
6243    pub fn data_token(&self) -> Option<SyntaxToken> {
6244        support::token(&self.syntax, SyntaxKind::DATA_KW)
6245    }
6246    #[inline]
6247    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6248        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6249    }
6250    #[inline]
6251    pub fn server_token(&self) -> Option<SyntaxToken> {
6252        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6253    }
6254    #[inline]
6255    pub fn type_token(&self) -> Option<SyntaxToken> {
6256        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6257    }
6258    #[inline]
6259    pub fn version_token(&self) -> Option<SyntaxToken> {
6260        support::token(&self.syntax, SyntaxKind::VERSION_KW)
6261    }
6262    #[inline]
6263    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6264        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6265    }
6266}
6267
6268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6269pub struct CreateStatistics {
6270    pub(crate) syntax: SyntaxNode,
6271}
6272impl CreateStatistics {
6273    #[inline]
6274    pub fn exprs(&self) -> AstChildren<Expr> {
6275        support::children(&self.syntax)
6276    }
6277    #[inline]
6278    pub fn from_table(&self) -> Option<FromTable> {
6279        support::child(&self.syntax)
6280    }
6281    #[inline]
6282    pub fn if_not_exists(&self) -> Option<IfNotExists> {
6283        support::child(&self.syntax)
6284    }
6285    #[inline]
6286    pub fn name_refs(&self) -> AstChildren<NameRef> {
6287        support::children(&self.syntax)
6288    }
6289    #[inline]
6290    pub fn path(&self) -> Option<Path> {
6291        support::child(&self.syntax)
6292    }
6293    #[inline]
6294    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6295        support::token(&self.syntax, SyntaxKind::L_PAREN)
6296    }
6297    #[inline]
6298    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6299        support::token(&self.syntax, SyntaxKind::R_PAREN)
6300    }
6301    #[inline]
6302    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6303        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6304    }
6305    #[inline]
6306    pub fn create_token(&self) -> Option<SyntaxToken> {
6307        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6308    }
6309    #[inline]
6310    pub fn on_token(&self) -> Option<SyntaxToken> {
6311        support::token(&self.syntax, SyntaxKind::ON_KW)
6312    }
6313    #[inline]
6314    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6315        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6316    }
6317}
6318
6319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6320pub struct CreateSubscription {
6321    pub(crate) syntax: SyntaxNode,
6322}
6323impl CreateSubscription {
6324    #[inline]
6325    pub fn literal(&self) -> Option<Literal> {
6326        support::child(&self.syntax)
6327    }
6328    #[inline]
6329    pub fn name(&self) -> Option<Name> {
6330        support::child(&self.syntax)
6331    }
6332    #[inline]
6333    pub fn name_ref(&self) -> Option<NameRef> {
6334        support::child(&self.syntax)
6335    }
6336    #[inline]
6337    pub fn name_refs(&self) -> AstChildren<NameRef> {
6338        support::children(&self.syntax)
6339    }
6340    #[inline]
6341    pub fn with_params(&self) -> Option<WithParams> {
6342        support::child(&self.syntax)
6343    }
6344    #[inline]
6345    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6346        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6347    }
6348    #[inline]
6349    pub fn connection_token(&self) -> Option<SyntaxToken> {
6350        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
6351    }
6352    #[inline]
6353    pub fn create_token(&self) -> Option<SyntaxToken> {
6354        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6355    }
6356    #[inline]
6357    pub fn publication_token(&self) -> Option<SyntaxToken> {
6358        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6359    }
6360    #[inline]
6361    pub fn server_token(&self) -> Option<SyntaxToken> {
6362        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6363    }
6364    #[inline]
6365    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6366        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6367    }
6368}
6369
6370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6371pub struct CreateTable {
6372    pub(crate) syntax: SyntaxNode,
6373}
6374impl CreateTable {
6375    #[inline]
6376    pub fn if_not_exists(&self) -> Option<IfNotExists> {
6377        support::child(&self.syntax)
6378    }
6379    #[inline]
6380    pub fn inherits(&self) -> Option<Inherits> {
6381        support::child(&self.syntax)
6382    }
6383    #[inline]
6384    pub fn of_type(&self) -> Option<OfType> {
6385        support::child(&self.syntax)
6386    }
6387    #[inline]
6388    pub fn on_commit(&self) -> Option<OnCommit> {
6389        support::child(&self.syntax)
6390    }
6391    #[inline]
6392    pub fn partition_by(&self) -> Option<PartitionBy> {
6393        support::child(&self.syntax)
6394    }
6395    #[inline]
6396    pub fn partition_of(&self) -> Option<PartitionOf> {
6397        support::child(&self.syntax)
6398    }
6399    #[inline]
6400    pub fn partition_type(&self) -> Option<PartitionType> {
6401        support::child(&self.syntax)
6402    }
6403    #[inline]
6404    pub fn path(&self) -> Option<Path> {
6405        support::child(&self.syntax)
6406    }
6407    #[inline]
6408    pub fn persistence(&self) -> Option<Persistence> {
6409        support::child(&self.syntax)
6410    }
6411    #[inline]
6412    pub fn table_arg_list(&self) -> Option<TableArgList> {
6413        support::child(&self.syntax)
6414    }
6415    #[inline]
6416    pub fn tablespace(&self) -> Option<Tablespace> {
6417        support::child(&self.syntax)
6418    }
6419    #[inline]
6420    pub fn using_method(&self) -> Option<UsingMethod> {
6421        support::child(&self.syntax)
6422    }
6423    #[inline]
6424    pub fn with_params(&self) -> Option<WithParams> {
6425        support::child(&self.syntax)
6426    }
6427    #[inline]
6428    pub fn without_oids(&self) -> Option<WithoutOids> {
6429        support::child(&self.syntax)
6430    }
6431    #[inline]
6432    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6433        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6434    }
6435    #[inline]
6436    pub fn create_token(&self) -> Option<SyntaxToken> {
6437        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6438    }
6439    #[inline]
6440    pub fn table_token(&self) -> Option<SyntaxToken> {
6441        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6442    }
6443}
6444
6445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6446pub struct CreateTableAs {
6447    pub(crate) syntax: SyntaxNode,
6448}
6449impl CreateTableAs {
6450    #[inline]
6451    pub fn if_not_exists(&self) -> Option<IfNotExists> {
6452        support::child(&self.syntax)
6453    }
6454    #[inline]
6455    pub fn on_commit(&self) -> Option<OnCommit> {
6456        support::child(&self.syntax)
6457    }
6458    #[inline]
6459    pub fn path(&self) -> Option<Path> {
6460        support::child(&self.syntax)
6461    }
6462    #[inline]
6463    pub fn persistence(&self) -> Option<Persistence> {
6464        support::child(&self.syntax)
6465    }
6466    #[inline]
6467    pub fn query(&self) -> Option<CreateTableAsQuery> {
6468        support::child(&self.syntax)
6469    }
6470    #[inline]
6471    pub fn table_arg_list(&self) -> Option<TableArgList> {
6472        support::child(&self.syntax)
6473    }
6474    #[inline]
6475    pub fn tablespace(&self) -> Option<Tablespace> {
6476        support::child(&self.syntax)
6477    }
6478    #[inline]
6479    pub fn using_method(&self) -> Option<UsingMethod> {
6480        support::child(&self.syntax)
6481    }
6482    #[inline]
6483    pub fn with_data(&self) -> Option<WithData> {
6484        support::child(&self.syntax)
6485    }
6486    #[inline]
6487    pub fn with_no_data(&self) -> Option<WithNoData> {
6488        support::child(&self.syntax)
6489    }
6490    #[inline]
6491    pub fn with_params(&self) -> Option<WithParams> {
6492        support::child(&self.syntax)
6493    }
6494    #[inline]
6495    pub fn without_oids(&self) -> Option<WithoutOids> {
6496        support::child(&self.syntax)
6497    }
6498    #[inline]
6499    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6500        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6501    }
6502    #[inline]
6503    pub fn as_token(&self) -> Option<SyntaxToken> {
6504        support::token(&self.syntax, SyntaxKind::AS_KW)
6505    }
6506    #[inline]
6507    pub fn create_token(&self) -> Option<SyntaxToken> {
6508        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6509    }
6510    #[inline]
6511    pub fn table_token(&self) -> Option<SyntaxToken> {
6512        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6513    }
6514}
6515
6516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6517pub struct CreateTablespace {
6518    pub(crate) syntax: SyntaxNode,
6519}
6520impl CreateTablespace {
6521    #[inline]
6522    pub fn literal(&self) -> Option<Literal> {
6523        support::child(&self.syntax)
6524    }
6525    #[inline]
6526    pub fn name(&self) -> Option<Name> {
6527        support::child(&self.syntax)
6528    }
6529    #[inline]
6530    pub fn role_ref(&self) -> Option<RoleRef> {
6531        support::child(&self.syntax)
6532    }
6533    #[inline]
6534    pub fn with_params(&self) -> Option<WithParams> {
6535        support::child(&self.syntax)
6536    }
6537    #[inline]
6538    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6539        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6540    }
6541    #[inline]
6542    pub fn create_token(&self) -> Option<SyntaxToken> {
6543        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6544    }
6545    #[inline]
6546    pub fn location_token(&self) -> Option<SyntaxToken> {
6547        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
6548    }
6549    #[inline]
6550    pub fn owner_token(&self) -> Option<SyntaxToken> {
6551        support::token(&self.syntax, SyntaxKind::OWNER_KW)
6552    }
6553    #[inline]
6554    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6555        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6556    }
6557}
6558
6559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6560pub struct CreateTextSearchConfiguration {
6561    pub(crate) syntax: SyntaxNode,
6562}
6563impl CreateTextSearchConfiguration {
6564    #[inline]
6565    pub fn attribute_list(&self) -> Option<AttributeList> {
6566        support::child(&self.syntax)
6567    }
6568    #[inline]
6569    pub fn path(&self) -> Option<Path> {
6570        support::child(&self.syntax)
6571    }
6572    #[inline]
6573    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6574        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6575    }
6576    #[inline]
6577    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6578        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6579    }
6580    #[inline]
6581    pub fn create_token(&self) -> Option<SyntaxToken> {
6582        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6583    }
6584    #[inline]
6585    pub fn search_token(&self) -> Option<SyntaxToken> {
6586        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6587    }
6588    #[inline]
6589    pub fn text_token(&self) -> Option<SyntaxToken> {
6590        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6591    }
6592}
6593
6594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6595pub struct CreateTextSearchDictionary {
6596    pub(crate) syntax: SyntaxNode,
6597}
6598impl CreateTextSearchDictionary {
6599    #[inline]
6600    pub fn attribute_list(&self) -> Option<AttributeList> {
6601        support::child(&self.syntax)
6602    }
6603    #[inline]
6604    pub fn path(&self) -> Option<Path> {
6605        support::child(&self.syntax)
6606    }
6607    #[inline]
6608    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6609        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6610    }
6611    #[inline]
6612    pub fn create_token(&self) -> Option<SyntaxToken> {
6613        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6614    }
6615    #[inline]
6616    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6617        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6618    }
6619    #[inline]
6620    pub fn search_token(&self) -> Option<SyntaxToken> {
6621        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6622    }
6623    #[inline]
6624    pub fn text_token(&self) -> Option<SyntaxToken> {
6625        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6626    }
6627}
6628
6629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6630pub struct CreateTextSearchParser {
6631    pub(crate) syntax: SyntaxNode,
6632}
6633impl CreateTextSearchParser {
6634    #[inline]
6635    pub fn attribute_list(&self) -> Option<AttributeList> {
6636        support::child(&self.syntax)
6637    }
6638    #[inline]
6639    pub fn path(&self) -> Option<Path> {
6640        support::child(&self.syntax)
6641    }
6642    #[inline]
6643    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6644        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6645    }
6646    #[inline]
6647    pub fn create_token(&self) -> Option<SyntaxToken> {
6648        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6649    }
6650    #[inline]
6651    pub fn parser_token(&self) -> Option<SyntaxToken> {
6652        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6653    }
6654    #[inline]
6655    pub fn search_token(&self) -> Option<SyntaxToken> {
6656        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6657    }
6658    #[inline]
6659    pub fn text_token(&self) -> Option<SyntaxToken> {
6660        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6661    }
6662}
6663
6664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6665pub struct CreateTextSearchTemplate {
6666    pub(crate) syntax: SyntaxNode,
6667}
6668impl CreateTextSearchTemplate {
6669    #[inline]
6670    pub fn attribute_list(&self) -> Option<AttributeList> {
6671        support::child(&self.syntax)
6672    }
6673    #[inline]
6674    pub fn path(&self) -> Option<Path> {
6675        support::child(&self.syntax)
6676    }
6677    #[inline]
6678    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6679        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6680    }
6681    #[inline]
6682    pub fn create_token(&self) -> Option<SyntaxToken> {
6683        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6684    }
6685    #[inline]
6686    pub fn search_token(&self) -> Option<SyntaxToken> {
6687        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6688    }
6689    #[inline]
6690    pub fn template_token(&self) -> Option<SyntaxToken> {
6691        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6692    }
6693    #[inline]
6694    pub fn text_token(&self) -> Option<SyntaxToken> {
6695        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6696    }
6697}
6698
6699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6700pub struct CreateTransform {
6701    pub(crate) syntax: SyntaxNode,
6702}
6703impl CreateTransform {
6704    #[inline]
6705    pub fn from_func(&self) -> Option<TransformFromFunc> {
6706        support::child(&self.syntax)
6707    }
6708    #[inline]
6709    pub fn language(&self) -> Option<NameRef> {
6710        support::child(&self.syntax)
6711    }
6712    #[inline]
6713    pub fn or_replace(&self) -> Option<OrReplace> {
6714        support::child(&self.syntax)
6715    }
6716    #[inline]
6717    pub fn to_func(&self) -> Option<TransformToFunc> {
6718        support::child(&self.syntax)
6719    }
6720    #[inline]
6721    pub fn ty(&self) -> Option<Type> {
6722        support::child(&self.syntax)
6723    }
6724    #[inline]
6725    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6726        support::token(&self.syntax, SyntaxKind::L_PAREN)
6727    }
6728    #[inline]
6729    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6730        support::token(&self.syntax, SyntaxKind::R_PAREN)
6731    }
6732    #[inline]
6733    pub fn comma_token(&self) -> Option<SyntaxToken> {
6734        support::token(&self.syntax, SyntaxKind::COMMA)
6735    }
6736    #[inline]
6737    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6738        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6739    }
6740    #[inline]
6741    pub fn create_token(&self) -> Option<SyntaxToken> {
6742        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6743    }
6744    #[inline]
6745    pub fn for_token(&self) -> Option<SyntaxToken> {
6746        support::token(&self.syntax, SyntaxKind::FOR_KW)
6747    }
6748    #[inline]
6749    pub fn language_token(&self) -> Option<SyntaxToken> {
6750        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6751    }
6752    #[inline]
6753    pub fn transform_token(&self) -> Option<SyntaxToken> {
6754        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6755    }
6756}
6757
6758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6759pub struct CreateTrigger {
6760    pub(crate) syntax: SyntaxNode,
6761}
6762impl CreateTrigger {
6763    #[inline]
6764    pub fn call_expr(&self) -> Option<CallExpr> {
6765        support::child(&self.syntax)
6766    }
6767    #[inline]
6768    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
6769        support::child(&self.syntax)
6770    }
6771    #[inline]
6772    pub fn from_table(&self) -> Option<FromTable> {
6773        support::child(&self.syntax)
6774    }
6775    #[inline]
6776    pub fn initially_deferred_constraint_option(
6777        &self,
6778    ) -> Option<InitiallyDeferredConstraintOption> {
6779        support::child(&self.syntax)
6780    }
6781    #[inline]
6782    pub fn initially_immediate_constraint_option(
6783        &self,
6784    ) -> Option<InitiallyImmediateConstraintOption> {
6785        support::child(&self.syntax)
6786    }
6787    #[inline]
6788    pub fn name(&self) -> Option<Name> {
6789        support::child(&self.syntax)
6790    }
6791    #[inline]
6792    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
6793        support::child(&self.syntax)
6794    }
6795    #[inline]
6796    pub fn on_table(&self) -> Option<OnTable> {
6797        support::child(&self.syntax)
6798    }
6799    #[inline]
6800    pub fn or_replace(&self) -> Option<OrReplace> {
6801        support::child(&self.syntax)
6802    }
6803    #[inline]
6804    pub fn referencing(&self) -> Option<Referencing> {
6805        support::child(&self.syntax)
6806    }
6807    #[inline]
6808    pub fn timing(&self) -> Option<Timing> {
6809        support::child(&self.syntax)
6810    }
6811    #[inline]
6812    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
6813        support::child(&self.syntax)
6814    }
6815    #[inline]
6816    pub fn when_condition(&self) -> Option<WhenCondition> {
6817        support::child(&self.syntax)
6818    }
6819    #[inline]
6820    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6821        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6822    }
6823    #[inline]
6824    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6825        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6826    }
6827    #[inline]
6828    pub fn create_token(&self) -> Option<SyntaxToken> {
6829        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6830    }
6831    #[inline]
6832    pub fn each_token(&self) -> Option<SyntaxToken> {
6833        support::token(&self.syntax, SyntaxKind::EACH_KW)
6834    }
6835    #[inline]
6836    pub fn execute_token(&self) -> Option<SyntaxToken> {
6837        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
6838    }
6839    #[inline]
6840    pub fn for_token(&self) -> Option<SyntaxToken> {
6841        support::token(&self.syntax, SyntaxKind::FOR_KW)
6842    }
6843    #[inline]
6844    pub fn function_token(&self) -> Option<SyntaxToken> {
6845        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6846    }
6847    #[inline]
6848    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6849        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6850    }
6851    #[inline]
6852    pub fn row_token(&self) -> Option<SyntaxToken> {
6853        support::token(&self.syntax, SyntaxKind::ROW_KW)
6854    }
6855    #[inline]
6856    pub fn statement_token(&self) -> Option<SyntaxToken> {
6857        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
6858    }
6859    #[inline]
6860    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6861        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6862    }
6863}
6864
6865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6866pub struct CreateType {
6867    pub(crate) syntax: SyntaxNode,
6868}
6869impl CreateType {
6870    #[inline]
6871    pub fn attribute_list(&self) -> Option<AttributeList> {
6872        support::child(&self.syntax)
6873    }
6874    #[inline]
6875    pub fn column_list(&self) -> Option<ColumnList> {
6876        support::child(&self.syntax)
6877    }
6878    #[inline]
6879    pub fn path(&self) -> Option<Path> {
6880        support::child(&self.syntax)
6881    }
6882    #[inline]
6883    pub fn variant_list(&self) -> Option<VariantList> {
6884        support::child(&self.syntax)
6885    }
6886    #[inline]
6887    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6888        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6889    }
6890    #[inline]
6891    pub fn as_token(&self) -> Option<SyntaxToken> {
6892        support::token(&self.syntax, SyntaxKind::AS_KW)
6893    }
6894    #[inline]
6895    pub fn create_token(&self) -> Option<SyntaxToken> {
6896        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6897    }
6898    #[inline]
6899    pub fn enum_token(&self) -> Option<SyntaxToken> {
6900        support::token(&self.syntax, SyntaxKind::ENUM_KW)
6901    }
6902    #[inline]
6903    pub fn range_token(&self) -> Option<SyntaxToken> {
6904        support::token(&self.syntax, SyntaxKind::RANGE_KW)
6905    }
6906    #[inline]
6907    pub fn type_token(&self) -> Option<SyntaxToken> {
6908        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6909    }
6910}
6911
6912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6913pub struct CreateUser {
6914    pub(crate) syntax: SyntaxNode,
6915}
6916impl CreateUser {
6917    #[inline]
6918    pub fn name(&self) -> Option<Name> {
6919        support::child(&self.syntax)
6920    }
6921    #[inline]
6922    pub fn role_option_list(&self) -> Option<RoleOptionList> {
6923        support::child(&self.syntax)
6924    }
6925    #[inline]
6926    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6927        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6928    }
6929    #[inline]
6930    pub fn create_token(&self) -> Option<SyntaxToken> {
6931        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6932    }
6933    #[inline]
6934    pub fn user_token(&self) -> Option<SyntaxToken> {
6935        support::token(&self.syntax, SyntaxKind::USER_KW)
6936    }
6937}
6938
6939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6940pub struct CreateUserMapping {
6941    pub(crate) syntax: SyntaxNode,
6942}
6943impl CreateUserMapping {
6944    #[inline]
6945    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
6946        support::child(&self.syntax)
6947    }
6948    #[inline]
6949    pub fn if_not_exists(&self) -> Option<IfNotExists> {
6950        support::child(&self.syntax)
6951    }
6952    #[inline]
6953    pub fn role_ref(&self) -> Option<RoleRef> {
6954        support::child(&self.syntax)
6955    }
6956    #[inline]
6957    pub fn server_name(&self) -> Option<ServerName> {
6958        support::child(&self.syntax)
6959    }
6960    #[inline]
6961    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6962        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6963    }
6964    #[inline]
6965    pub fn create_token(&self) -> Option<SyntaxToken> {
6966        support::token(&self.syntax, SyntaxKind::CREATE_KW)
6967    }
6968    #[inline]
6969    pub fn for_token(&self) -> Option<SyntaxToken> {
6970        support::token(&self.syntax, SyntaxKind::FOR_KW)
6971    }
6972    #[inline]
6973    pub fn mapping_token(&self) -> Option<SyntaxToken> {
6974        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
6975    }
6976    #[inline]
6977    pub fn user_token(&self) -> Option<SyntaxToken> {
6978        support::token(&self.syntax, SyntaxKind::USER_KW)
6979    }
6980}
6981
6982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6983pub struct CreateView {
6984    pub(crate) syntax: SyntaxNode,
6985}
6986impl CreateView {
6987    #[inline]
6988    pub fn column_list(&self) -> Option<ColumnList> {
6989        support::child(&self.syntax)
6990    }
6991    #[inline]
6992    pub fn or_replace(&self) -> Option<OrReplace> {
6993        support::child(&self.syntax)
6994    }
6995    #[inline]
6996    pub fn path(&self) -> Option<Path> {
6997        support::child(&self.syntax)
6998    }
6999    #[inline]
7000    pub fn persistence(&self) -> Option<Persistence> {
7001        support::child(&self.syntax)
7002    }
7003    #[inline]
7004    pub fn query(&self) -> Option<SelectVariant> {
7005        support::child(&self.syntax)
7006    }
7007    #[inline]
7008    pub fn with_params(&self) -> Option<WithParams> {
7009        support::child(&self.syntax)
7010    }
7011    #[inline]
7012    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7013        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7014    }
7015    #[inline]
7016    pub fn as_token(&self) -> Option<SyntaxToken> {
7017        support::token(&self.syntax, SyntaxKind::AS_KW)
7018    }
7019    #[inline]
7020    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
7021        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
7022    }
7023    #[inline]
7024    pub fn check_token(&self) -> Option<SyntaxToken> {
7025        support::token(&self.syntax, SyntaxKind::CHECK_KW)
7026    }
7027    #[inline]
7028    pub fn create_token(&self) -> Option<SyntaxToken> {
7029        support::token(&self.syntax, SyntaxKind::CREATE_KW)
7030    }
7031    #[inline]
7032    pub fn local_token(&self) -> Option<SyntaxToken> {
7033        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
7034    }
7035    #[inline]
7036    pub fn option_token(&self) -> Option<SyntaxToken> {
7037        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7038    }
7039    #[inline]
7040    pub fn recursive_token(&self) -> Option<SyntaxToken> {
7041        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
7042    }
7043    #[inline]
7044    pub fn view_token(&self) -> Option<SyntaxToken> {
7045        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7046    }
7047    #[inline]
7048    pub fn with_token(&self) -> Option<SyntaxToken> {
7049        support::token(&self.syntax, SyntaxKind::WITH_KW)
7050    }
7051}
7052
7053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7054pub struct CurrentRow {
7055    pub(crate) syntax: SyntaxNode,
7056}
7057impl CurrentRow {
7058    #[inline]
7059    pub fn current_token(&self) -> Option<SyntaxToken> {
7060        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
7061    }
7062    #[inline]
7063    pub fn row_token(&self) -> Option<SyntaxToken> {
7064        support::token(&self.syntax, SyntaxKind::ROW_KW)
7065    }
7066}
7067
7068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7069pub struct CustomOp {
7070    pub(crate) syntax: SyntaxNode,
7071}
7072impl CustomOp {
7073    #[inline]
7074    pub fn bang_token(&self) -> Option<SyntaxToken> {
7075        support::token(&self.syntax, SyntaxKind::BANG)
7076    }
7077    #[inline]
7078    pub fn pound_token(&self) -> Option<SyntaxToken> {
7079        support::token(&self.syntax, SyntaxKind::POUND)
7080    }
7081    #[inline]
7082    pub fn percent_token(&self) -> Option<SyntaxToken> {
7083        support::token(&self.syntax, SyntaxKind::PERCENT)
7084    }
7085    #[inline]
7086    pub fn amp_token(&self) -> Option<SyntaxToken> {
7087        support::token(&self.syntax, SyntaxKind::AMP)
7088    }
7089    #[inline]
7090    pub fn star_token(&self) -> Option<SyntaxToken> {
7091        support::token(&self.syntax, SyntaxKind::STAR)
7092    }
7093    #[inline]
7094    pub fn plus_token(&self) -> Option<SyntaxToken> {
7095        support::token(&self.syntax, SyntaxKind::PLUS)
7096    }
7097    #[inline]
7098    pub fn minus_token(&self) -> Option<SyntaxToken> {
7099        support::token(&self.syntax, SyntaxKind::MINUS)
7100    }
7101    #[inline]
7102    pub fn slash_token(&self) -> Option<SyntaxToken> {
7103        support::token(&self.syntax, SyntaxKind::SLASH)
7104    }
7105    #[inline]
7106    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
7107        support::token(&self.syntax, SyntaxKind::L_ANGLE)
7108    }
7109    #[inline]
7110    pub fn eq_token(&self) -> Option<SyntaxToken> {
7111        support::token(&self.syntax, SyntaxKind::EQ)
7112    }
7113    #[inline]
7114    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7115        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7116    }
7117    #[inline]
7118    pub fn question_token(&self) -> Option<SyntaxToken> {
7119        support::token(&self.syntax, SyntaxKind::QUESTION)
7120    }
7121    #[inline]
7122    pub fn at_token(&self) -> Option<SyntaxToken> {
7123        support::token(&self.syntax, SyntaxKind::AT)
7124    }
7125    #[inline]
7126    pub fn caret_token(&self) -> Option<SyntaxToken> {
7127        support::token(&self.syntax, SyntaxKind::CARET)
7128    }
7129    #[inline]
7130    pub fn backtick_token(&self) -> Option<SyntaxToken> {
7131        support::token(&self.syntax, SyntaxKind::BACKTICK)
7132    }
7133    #[inline]
7134    pub fn pipe_token(&self) -> Option<SyntaxToken> {
7135        support::token(&self.syntax, SyntaxKind::PIPE)
7136    }
7137    #[inline]
7138    pub fn tilde_token(&self) -> Option<SyntaxToken> {
7139        support::token(&self.syntax, SyntaxKind::TILDE)
7140    }
7141}
7142
7143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7144pub struct CycleClause {
7145    pub(crate) syntax: SyntaxNode,
7146}
7147impl CycleClause {
7148    #[inline]
7149    pub fn columns(&self) -> Option<CycleColumns> {
7150        support::child(&self.syntax)
7151    }
7152    #[inline]
7153    pub fn path(&self) -> Option<CyclePath> {
7154        support::child(&self.syntax)
7155    }
7156    #[inline]
7157    pub fn set_column(&self) -> Option<CycleSetColumn> {
7158        support::child(&self.syntax)
7159    }
7160    #[inline]
7161    pub fn cycle_token(&self) -> Option<SyntaxToken> {
7162        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
7163    }
7164}
7165
7166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7167pub struct CycleColumnTo {
7168    pub(crate) syntax: SyntaxNode,
7169}
7170impl CycleColumnTo {
7171    #[inline]
7172    pub fn default(&self) -> Option<CycleDefault> {
7173        support::child(&self.syntax)
7174    }
7175    #[inline]
7176    pub fn expr(&self) -> Option<Expr> {
7177        support::child(&self.syntax)
7178    }
7179    #[inline]
7180    pub fn to_token(&self) -> Option<SyntaxToken> {
7181        support::token(&self.syntax, SyntaxKind::TO_KW)
7182    }
7183}
7184
7185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7186pub struct CycleColumns {
7187    pub(crate) syntax: SyntaxNode,
7188}
7189impl CycleColumns {
7190    #[inline]
7191    pub fn name_refs(&self) -> AstChildren<NameRef> {
7192        support::children(&self.syntax)
7193    }
7194}
7195
7196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7197pub struct CycleDefault {
7198    pub(crate) syntax: SyntaxNode,
7199}
7200impl CycleDefault {
7201    #[inline]
7202    pub fn expr(&self) -> Option<Expr> {
7203        support::child(&self.syntax)
7204    }
7205    #[inline]
7206    pub fn default_token(&self) -> Option<SyntaxToken> {
7207        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7208    }
7209}
7210
7211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7212pub struct CyclePath {
7213    pub(crate) syntax: SyntaxNode,
7214}
7215impl CyclePath {
7216    #[inline]
7217    pub fn name_ref(&self) -> Option<NameRef> {
7218        support::child(&self.syntax)
7219    }
7220    #[inline]
7221    pub fn using_token(&self) -> Option<SyntaxToken> {
7222        support::token(&self.syntax, SyntaxKind::USING_KW)
7223    }
7224}
7225
7226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7227pub struct CycleSetColumn {
7228    pub(crate) syntax: SyntaxNode,
7229}
7230impl CycleSetColumn {
7231    #[inline]
7232    pub fn column_to(&self) -> Option<CycleColumnTo> {
7233        support::child(&self.syntax)
7234    }
7235    #[inline]
7236    pub fn name_ref(&self) -> Option<NameRef> {
7237        support::child(&self.syntax)
7238    }
7239    #[inline]
7240    pub fn set_token(&self) -> Option<SyntaxToken> {
7241        support::token(&self.syntax, SyntaxKind::SET_KW)
7242    }
7243}
7244
7245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7246pub struct DatabaseOption {
7247    pub(crate) syntax: SyntaxNode,
7248}
7249impl DatabaseOption {
7250    #[inline]
7251    pub fn literal(&self) -> Option<Literal> {
7252        support::child(&self.syntax)
7253    }
7254    #[inline]
7255    pub fn eq_token(&self) -> Option<SyntaxToken> {
7256        support::token(&self.syntax, SyntaxKind::EQ)
7257    }
7258    #[inline]
7259    pub fn connection_token(&self) -> Option<SyntaxToken> {
7260        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
7261    }
7262    #[inline]
7263    pub fn default_token(&self) -> Option<SyntaxToken> {
7264        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7265    }
7266    #[inline]
7267    pub fn encoding_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
7269    }
7270    #[inline]
7271    pub fn ident_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::IDENT)
7273    }
7274    #[inline]
7275    pub fn limit_token(&self) -> Option<SyntaxToken> {
7276        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
7277    }
7278    #[inline]
7279    pub fn owner_token(&self) -> Option<SyntaxToken> {
7280        support::token(&self.syntax, SyntaxKind::OWNER_KW)
7281    }
7282    #[inline]
7283    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7284        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7285    }
7286    #[inline]
7287    pub fn template_token(&self) -> Option<SyntaxToken> {
7288        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7289    }
7290}
7291
7292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7293pub struct DatabaseOptionList {
7294    pub(crate) syntax: SyntaxNode,
7295}
7296impl DatabaseOptionList {
7297    #[inline]
7298    pub fn database_options(&self) -> AstChildren<DatabaseOption> {
7299        support::children(&self.syntax)
7300    }
7301    #[inline]
7302    pub fn with_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::WITH_KW)
7304    }
7305}
7306
7307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7308pub struct Deallocate {
7309    pub(crate) syntax: SyntaxNode,
7310}
7311impl Deallocate {
7312    #[inline]
7313    pub fn name_ref(&self) -> Option<NameRef> {
7314        support::child(&self.syntax)
7315    }
7316    #[inline]
7317    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7318        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7319    }
7320    #[inline]
7321    pub fn all_token(&self) -> Option<SyntaxToken> {
7322        support::token(&self.syntax, SyntaxKind::ALL_KW)
7323    }
7324    #[inline]
7325    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
7326        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
7327    }
7328    #[inline]
7329    pub fn prepare_token(&self) -> Option<SyntaxToken> {
7330        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
7331    }
7332}
7333
7334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7335pub struct Declare {
7336    pub(crate) syntax: SyntaxNode,
7337}
7338impl Declare {
7339    #[inline]
7340    pub fn name(&self) -> Option<Name> {
7341        support::child(&self.syntax)
7342    }
7343    #[inline]
7344    pub fn query(&self) -> Option<SelectVariant> {
7345        support::child(&self.syntax)
7346    }
7347    #[inline]
7348    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7349        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7350    }
7351    #[inline]
7352    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
7353        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
7354    }
7355    #[inline]
7356    pub fn binary_token(&self) -> Option<SyntaxToken> {
7357        support::token(&self.syntax, SyntaxKind::BINARY_KW)
7358    }
7359    #[inline]
7360    pub fn cursor_token(&self) -> Option<SyntaxToken> {
7361        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
7362    }
7363    #[inline]
7364    pub fn declare_token(&self) -> Option<SyntaxToken> {
7365        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
7366    }
7367    #[inline]
7368    pub fn for_token(&self) -> Option<SyntaxToken> {
7369        support::token(&self.syntax, SyntaxKind::FOR_KW)
7370    }
7371    #[inline]
7372    pub fn hold_token(&self) -> Option<SyntaxToken> {
7373        support::token(&self.syntax, SyntaxKind::HOLD_KW)
7374    }
7375    #[inline]
7376    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
7377        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
7378    }
7379    #[inline]
7380    pub fn no_token(&self) -> Option<SyntaxToken> {
7381        support::token(&self.syntax, SyntaxKind::NO_KW)
7382    }
7383    #[inline]
7384    pub fn scroll_token(&self) -> Option<SyntaxToken> {
7385        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
7386    }
7387    #[inline]
7388    pub fn with_token(&self) -> Option<SyntaxToken> {
7389        support::token(&self.syntax, SyntaxKind::WITH_KW)
7390    }
7391    #[inline]
7392    pub fn without_token(&self) -> Option<SyntaxToken> {
7393        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
7394    }
7395}
7396
7397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7398pub struct DefaultConstraint {
7399    pub(crate) syntax: SyntaxNode,
7400}
7401impl DefaultConstraint {
7402    #[inline]
7403    pub fn constraint_name(&self) -> Option<ConstraintName> {
7404        support::child(&self.syntax)
7405    }
7406    #[inline]
7407    pub fn expr(&self) -> Option<Expr> {
7408        support::child(&self.syntax)
7409    }
7410    #[inline]
7411    pub fn default_token(&self) -> Option<SyntaxToken> {
7412        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7413    }
7414}
7415
7416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7417pub struct Deferrable {
7418    pub(crate) syntax: SyntaxNode,
7419}
7420impl Deferrable {
7421    #[inline]
7422    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
7423        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
7424    }
7425}
7426
7427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7428pub struct DeferrableConstraintOption {
7429    pub(crate) syntax: SyntaxNode,
7430}
7431impl DeferrableConstraintOption {
7432    #[inline]
7433    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
7434        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
7435    }
7436}
7437
7438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7439pub struct Delete {
7440    pub(crate) syntax: SyntaxNode,
7441}
7442impl Delete {
7443    #[inline]
7444    pub fn alias(&self) -> Option<Alias> {
7445        support::child(&self.syntax)
7446    }
7447    #[inline]
7448    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
7449        support::child(&self.syntax)
7450    }
7451    #[inline]
7452    pub fn relation_name(&self) -> Option<RelationName> {
7453        support::child(&self.syntax)
7454    }
7455    #[inline]
7456    pub fn returning_clause(&self) -> Option<ReturningClause> {
7457        support::child(&self.syntax)
7458    }
7459    #[inline]
7460    pub fn using_clause(&self) -> Option<UsingClause> {
7461        support::child(&self.syntax)
7462    }
7463    #[inline]
7464    pub fn where_clause(&self) -> Option<WhereClause> {
7465        support::child(&self.syntax)
7466    }
7467    #[inline]
7468    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
7469        support::child(&self.syntax)
7470    }
7471    #[inline]
7472    pub fn with_clause(&self) -> Option<WithClause> {
7473        support::child(&self.syntax)
7474    }
7475    #[inline]
7476    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7477        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7478    }
7479    #[inline]
7480    pub fn delete_token(&self) -> Option<SyntaxToken> {
7481        support::token(&self.syntax, SyntaxKind::DELETE_KW)
7482    }
7483    #[inline]
7484    pub fn from_token(&self) -> Option<SyntaxToken> {
7485        support::token(&self.syntax, SyntaxKind::FROM_KW)
7486    }
7487}
7488
7489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7490pub struct DeleteRows {
7491    pub(crate) syntax: SyntaxNode,
7492}
7493impl DeleteRows {
7494    #[inline]
7495    pub fn delete_token(&self) -> Option<SyntaxToken> {
7496        support::token(&self.syntax, SyntaxKind::DELETE_KW)
7497    }
7498    #[inline]
7499    pub fn rows_token(&self) -> Option<SyntaxToken> {
7500        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7501    }
7502}
7503
7504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7505pub struct DependsOnExtension {
7506    pub(crate) syntax: SyntaxNode,
7507}
7508impl DependsOnExtension {
7509    #[inline]
7510    pub fn name_ref(&self) -> Option<NameRef> {
7511        support::child(&self.syntax)
7512    }
7513    #[inline]
7514    pub fn depends_token(&self) -> Option<SyntaxToken> {
7515        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
7516    }
7517    #[inline]
7518    pub fn extension_token(&self) -> Option<SyntaxToken> {
7519        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
7520    }
7521    #[inline]
7522    pub fn on_token(&self) -> Option<SyntaxToken> {
7523        support::token(&self.syntax, SyntaxKind::ON_KW)
7524    }
7525}
7526
7527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7528pub struct DestVertexTable {
7529    pub(crate) syntax: SyntaxNode,
7530}
7531impl DestVertexTable {
7532    #[inline]
7533    pub fn column_list(&self) -> Option<ColumnList> {
7534        support::child(&self.syntax)
7535    }
7536    #[inline]
7537    pub fn name_ref(&self) -> Option<NameRef> {
7538        support::child(&self.syntax)
7539    }
7540    #[inline]
7541    pub fn references_table(&self) -> Option<ReferencesTable> {
7542        support::child(&self.syntax)
7543    }
7544    #[inline]
7545    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7546        support::token(&self.syntax, SyntaxKind::L_PAREN)
7547    }
7548    #[inline]
7549    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7550        support::token(&self.syntax, SyntaxKind::R_PAREN)
7551    }
7552    #[inline]
7553    pub fn destination_token(&self) -> Option<SyntaxToken> {
7554        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
7555    }
7556    #[inline]
7557    pub fn key_token(&self) -> Option<SyntaxToken> {
7558        support::token(&self.syntax, SyntaxKind::KEY_KW)
7559    }
7560}
7561
7562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7563pub struct DetachPartition {
7564    pub(crate) syntax: SyntaxNode,
7565}
7566impl DetachPartition {
7567    #[inline]
7568    pub fn path(&self) -> Option<Path> {
7569        support::child(&self.syntax)
7570    }
7571    #[inline]
7572    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
7573        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
7574    }
7575    #[inline]
7576    pub fn detach_token(&self) -> Option<SyntaxToken> {
7577        support::token(&self.syntax, SyntaxKind::DETACH_KW)
7578    }
7579    #[inline]
7580    pub fn finalize_token(&self) -> Option<SyntaxToken> {
7581        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
7582    }
7583    #[inline]
7584    pub fn partition_token(&self) -> Option<SyntaxToken> {
7585        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
7586    }
7587}
7588
7589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7590pub struct DisableRls {
7591    pub(crate) syntax: SyntaxNode,
7592}
7593impl DisableRls {
7594    #[inline]
7595    pub fn disable_token(&self) -> Option<SyntaxToken> {
7596        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
7597    }
7598    #[inline]
7599    pub fn level_token(&self) -> Option<SyntaxToken> {
7600        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7601    }
7602    #[inline]
7603    pub fn row_token(&self) -> Option<SyntaxToken> {
7604        support::token(&self.syntax, SyntaxKind::ROW_KW)
7605    }
7606    #[inline]
7607    pub fn security_token(&self) -> Option<SyntaxToken> {
7608        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7609    }
7610}
7611
7612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7613pub struct DisableRule {
7614    pub(crate) syntax: SyntaxNode,
7615}
7616impl DisableRule {
7617    #[inline]
7618    pub fn name_ref(&self) -> Option<NameRef> {
7619        support::child(&self.syntax)
7620    }
7621    #[inline]
7622    pub fn disable_token(&self) -> Option<SyntaxToken> {
7623        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
7624    }
7625    #[inline]
7626    pub fn rule_token(&self) -> Option<SyntaxToken> {
7627        support::token(&self.syntax, SyntaxKind::RULE_KW)
7628    }
7629}
7630
7631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7632pub struct DisableTrigger {
7633    pub(crate) syntax: SyntaxNode,
7634}
7635impl DisableTrigger {
7636    #[inline]
7637    pub fn name_ref(&self) -> Option<NameRef> {
7638        support::child(&self.syntax)
7639    }
7640    #[inline]
7641    pub fn all_token(&self) -> Option<SyntaxToken> {
7642        support::token(&self.syntax, SyntaxKind::ALL_KW)
7643    }
7644    #[inline]
7645    pub fn disable_token(&self) -> Option<SyntaxToken> {
7646        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
7647    }
7648    #[inline]
7649    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7650        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7651    }
7652    #[inline]
7653    pub fn user_token(&self) -> Option<SyntaxToken> {
7654        support::token(&self.syntax, SyntaxKind::USER_KW)
7655    }
7656}
7657
7658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7659pub struct Discard {
7660    pub(crate) syntax: SyntaxNode,
7661}
7662impl Discard {
7663    #[inline]
7664    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7665        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7666    }
7667    #[inline]
7668    pub fn all_token(&self) -> Option<SyntaxToken> {
7669        support::token(&self.syntax, SyntaxKind::ALL_KW)
7670    }
7671    #[inline]
7672    pub fn discard_token(&self) -> Option<SyntaxToken> {
7673        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
7674    }
7675    #[inline]
7676    pub fn plans_token(&self) -> Option<SyntaxToken> {
7677        support::token(&self.syntax, SyntaxKind::PLANS_KW)
7678    }
7679    #[inline]
7680    pub fn sequences_token(&self) -> Option<SyntaxToken> {
7681        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
7682    }
7683    #[inline]
7684    pub fn temp_token(&self) -> Option<SyntaxToken> {
7685        support::token(&self.syntax, SyntaxKind::TEMP_KW)
7686    }
7687    #[inline]
7688    pub fn temporary_token(&self) -> Option<SyntaxToken> {
7689        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
7690    }
7691}
7692
7693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7694pub struct DistinctClause {
7695    pub(crate) syntax: SyntaxNode,
7696}
7697impl DistinctClause {
7698    #[inline]
7699    pub fn exprs(&self) -> AstChildren<Expr> {
7700        support::children(&self.syntax)
7701    }
7702    #[inline]
7703    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7704        support::token(&self.syntax, SyntaxKind::L_PAREN)
7705    }
7706    #[inline]
7707    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7708        support::token(&self.syntax, SyntaxKind::R_PAREN)
7709    }
7710    #[inline]
7711    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7712        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7713    }
7714    #[inline]
7715    pub fn on_token(&self) -> Option<SyntaxToken> {
7716        support::token(&self.syntax, SyntaxKind::ON_KW)
7717    }
7718}
7719
7720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7721pub struct Do {
7722    pub(crate) syntax: SyntaxNode,
7723}
7724impl Do {
7725    #[inline]
7726    pub fn literal(&self) -> Option<Literal> {
7727        support::child(&self.syntax)
7728    }
7729    #[inline]
7730    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7731        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7732    }
7733    #[inline]
7734    pub fn do_token(&self) -> Option<SyntaxToken> {
7735        support::token(&self.syntax, SyntaxKind::DO_KW)
7736    }
7737    #[inline]
7738    pub fn ident_token(&self) -> Option<SyntaxToken> {
7739        support::token(&self.syntax, SyntaxKind::IDENT)
7740    }
7741    #[inline]
7742    pub fn language_token(&self) -> Option<SyntaxToken> {
7743        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7744    }
7745}
7746
7747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7748pub struct DoubleType {
7749    pub(crate) syntax: SyntaxNode,
7750}
7751impl DoubleType {
7752    #[inline]
7753    pub fn double_token(&self) -> Option<SyntaxToken> {
7754        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
7755    }
7756    #[inline]
7757    pub fn precision_token(&self) -> Option<SyntaxToken> {
7758        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
7759    }
7760    #[inline]
7761    pub fn setof_token(&self) -> Option<SyntaxToken> {
7762        support::token(&self.syntax, SyntaxKind::SETOF_KW)
7763    }
7764}
7765
7766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7767pub struct Drop {
7768    pub(crate) syntax: SyntaxNode,
7769}
7770impl Drop {
7771    #[inline]
7772    pub fn drop_token(&self) -> Option<SyntaxToken> {
7773        support::token(&self.syntax, SyntaxKind::DROP_KW)
7774    }
7775}
7776
7777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7778pub struct DropAccessMethod {
7779    pub(crate) syntax: SyntaxNode,
7780}
7781impl DropAccessMethod {
7782    #[inline]
7783    pub fn if_exists(&self) -> Option<IfExists> {
7784        support::child(&self.syntax)
7785    }
7786    #[inline]
7787    pub fn name_ref(&self) -> Option<NameRef> {
7788        support::child(&self.syntax)
7789    }
7790    #[inline]
7791    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7792        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7793    }
7794    #[inline]
7795    pub fn access_token(&self) -> Option<SyntaxToken> {
7796        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
7797    }
7798    #[inline]
7799    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7800        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7801    }
7802    #[inline]
7803    pub fn drop_token(&self) -> Option<SyntaxToken> {
7804        support::token(&self.syntax, SyntaxKind::DROP_KW)
7805    }
7806    #[inline]
7807    pub fn method_token(&self) -> Option<SyntaxToken> {
7808        support::token(&self.syntax, SyntaxKind::METHOD_KW)
7809    }
7810    #[inline]
7811    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7813    }
7814}
7815
7816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7817pub struct DropAggregate {
7818    pub(crate) syntax: SyntaxNode,
7819}
7820impl DropAggregate {
7821    #[inline]
7822    pub fn aggregates(&self) -> AstChildren<Aggregate> {
7823        support::children(&self.syntax)
7824    }
7825    #[inline]
7826    pub fn if_exists(&self) -> Option<IfExists> {
7827        support::child(&self.syntax)
7828    }
7829    #[inline]
7830    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7831        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7832    }
7833    #[inline]
7834    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
7835        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
7836    }
7837    #[inline]
7838    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7840    }
7841    #[inline]
7842    pub fn drop_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::DROP_KW)
7844    }
7845    #[inline]
7846    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7848    }
7849}
7850
7851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7852pub struct DropAttribute {
7853    pub(crate) syntax: SyntaxNode,
7854}
7855impl DropAttribute {
7856    #[inline]
7857    pub fn cascade(&self) -> Option<Cascade> {
7858        support::child(&self.syntax)
7859    }
7860    #[inline]
7861    pub fn if_exists(&self) -> Option<IfExists> {
7862        support::child(&self.syntax)
7863    }
7864    #[inline]
7865    pub fn name_ref(&self) -> Option<NameRef> {
7866        support::child(&self.syntax)
7867    }
7868    #[inline]
7869    pub fn restrict(&self) -> Option<Restrict> {
7870        support::child(&self.syntax)
7871    }
7872    #[inline]
7873    pub fn attribute_token(&self) -> Option<SyntaxToken> {
7874        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
7875    }
7876    #[inline]
7877    pub fn drop_token(&self) -> Option<SyntaxToken> {
7878        support::token(&self.syntax, SyntaxKind::DROP_KW)
7879    }
7880}
7881
7882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7883pub struct DropCast {
7884    pub(crate) syntax: SyntaxNode,
7885}
7886impl DropCast {
7887    #[inline]
7888    pub fn cast_sig(&self) -> Option<CastSig> {
7889        support::child(&self.syntax)
7890    }
7891    #[inline]
7892    pub fn if_exists(&self) -> Option<IfExists> {
7893        support::child(&self.syntax)
7894    }
7895    #[inline]
7896    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7897        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7898    }
7899    #[inline]
7900    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7901        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7902    }
7903    #[inline]
7904    pub fn cast_token(&self) -> Option<SyntaxToken> {
7905        support::token(&self.syntax, SyntaxKind::CAST_KW)
7906    }
7907    #[inline]
7908    pub fn drop_token(&self) -> Option<SyntaxToken> {
7909        support::token(&self.syntax, SyntaxKind::DROP_KW)
7910    }
7911    #[inline]
7912    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7913        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7914    }
7915}
7916
7917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7918pub struct DropCollation {
7919    pub(crate) syntax: SyntaxNode,
7920}
7921impl DropCollation {
7922    #[inline]
7923    pub fn if_exists(&self) -> Option<IfExists> {
7924        support::child(&self.syntax)
7925    }
7926    #[inline]
7927    pub fn paths(&self) -> AstChildren<Path> {
7928        support::children(&self.syntax)
7929    }
7930    #[inline]
7931    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7932        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7933    }
7934    #[inline]
7935    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7936        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7937    }
7938    #[inline]
7939    pub fn collation_token(&self) -> Option<SyntaxToken> {
7940        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
7941    }
7942    #[inline]
7943    pub fn drop_token(&self) -> Option<SyntaxToken> {
7944        support::token(&self.syntax, SyntaxKind::DROP_KW)
7945    }
7946    #[inline]
7947    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7948        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7949    }
7950}
7951
7952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7953pub struct DropColumn {
7954    pub(crate) syntax: SyntaxNode,
7955}
7956impl DropColumn {
7957    #[inline]
7958    pub fn if_exists(&self) -> Option<IfExists> {
7959        support::child(&self.syntax)
7960    }
7961    #[inline]
7962    pub fn name_ref(&self) -> Option<NameRef> {
7963        support::child(&self.syntax)
7964    }
7965    #[inline]
7966    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7967        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7968    }
7969    #[inline]
7970    pub fn column_token(&self) -> Option<SyntaxToken> {
7971        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
7972    }
7973    #[inline]
7974    pub fn drop_token(&self) -> Option<SyntaxToken> {
7975        support::token(&self.syntax, SyntaxKind::DROP_KW)
7976    }
7977    #[inline]
7978    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7979        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7980    }
7981}
7982
7983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7984pub struct DropConstraint {
7985    pub(crate) syntax: SyntaxNode,
7986}
7987impl DropConstraint {
7988    #[inline]
7989    pub fn if_exists(&self) -> Option<IfExists> {
7990        support::child(&self.syntax)
7991    }
7992    #[inline]
7993    pub fn name_ref(&self) -> Option<NameRef> {
7994        support::child(&self.syntax)
7995    }
7996    #[inline]
7997    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7998        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7999    }
8000    #[inline]
8001    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8002        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8003    }
8004    #[inline]
8005    pub fn drop_token(&self) -> Option<SyntaxToken> {
8006        support::token(&self.syntax, SyntaxKind::DROP_KW)
8007    }
8008    #[inline]
8009    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8010        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8011    }
8012}
8013
8014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8015pub struct DropConversion {
8016    pub(crate) syntax: SyntaxNode,
8017}
8018impl DropConversion {
8019    #[inline]
8020    pub fn if_exists(&self) -> Option<IfExists> {
8021        support::child(&self.syntax)
8022    }
8023    #[inline]
8024    pub fn path(&self) -> Option<Path> {
8025        support::child(&self.syntax)
8026    }
8027    #[inline]
8028    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8029        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8030    }
8031    #[inline]
8032    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8033        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8034    }
8035    #[inline]
8036    pub fn conversion_token(&self) -> Option<SyntaxToken> {
8037        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
8038    }
8039    #[inline]
8040    pub fn drop_token(&self) -> Option<SyntaxToken> {
8041        support::token(&self.syntax, SyntaxKind::DROP_KW)
8042    }
8043    #[inline]
8044    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8045        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8046    }
8047}
8048
8049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8050pub struct DropDatabase {
8051    pub(crate) syntax: SyntaxNode,
8052}
8053impl DropDatabase {
8054    #[inline]
8055    pub fn if_exists(&self) -> Option<IfExists> {
8056        support::child(&self.syntax)
8057    }
8058    #[inline]
8059    pub fn name_ref(&self) -> Option<NameRef> {
8060        support::child(&self.syntax)
8061    }
8062    #[inline]
8063    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8064        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8065    }
8066    #[inline]
8067    pub fn database_token(&self) -> Option<SyntaxToken> {
8068        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
8069    }
8070    #[inline]
8071    pub fn drop_token(&self) -> Option<SyntaxToken> {
8072        support::token(&self.syntax, SyntaxKind::DROP_KW)
8073    }
8074}
8075
8076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8077pub struct DropDefault {
8078    pub(crate) syntax: SyntaxNode,
8079}
8080impl DropDefault {
8081    #[inline]
8082    pub fn default_token(&self) -> Option<SyntaxToken> {
8083        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8084    }
8085    #[inline]
8086    pub fn drop_token(&self) -> Option<SyntaxToken> {
8087        support::token(&self.syntax, SyntaxKind::DROP_KW)
8088    }
8089}
8090
8091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8092pub struct DropDomain {
8093    pub(crate) syntax: SyntaxNode,
8094}
8095impl DropDomain {
8096    #[inline]
8097    pub fn if_exists(&self) -> Option<IfExists> {
8098        support::child(&self.syntax)
8099    }
8100    #[inline]
8101    pub fn paths(&self) -> AstChildren<Path> {
8102        support::children(&self.syntax)
8103    }
8104    #[inline]
8105    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8106        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8107    }
8108    #[inline]
8109    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8110        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8111    }
8112    #[inline]
8113    pub fn domain_token(&self) -> Option<SyntaxToken> {
8114        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
8115    }
8116    #[inline]
8117    pub fn drop_token(&self) -> Option<SyntaxToken> {
8118        support::token(&self.syntax, SyntaxKind::DROP_KW)
8119    }
8120    #[inline]
8121    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8122        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8123    }
8124}
8125
8126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8127pub struct DropEdgeTables {
8128    pub(crate) syntax: SyntaxNode,
8129}
8130impl DropEdgeTables {
8131    #[inline]
8132    pub fn names(&self) -> AstChildren<Name> {
8133        support::children(&self.syntax)
8134    }
8135    #[inline]
8136    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8137        support::token(&self.syntax, SyntaxKind::L_PAREN)
8138    }
8139    #[inline]
8140    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8141        support::token(&self.syntax, SyntaxKind::R_PAREN)
8142    }
8143    #[inline]
8144    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8145        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8146    }
8147    #[inline]
8148    pub fn drop_token(&self) -> Option<SyntaxToken> {
8149        support::token(&self.syntax, SyntaxKind::DROP_KW)
8150    }
8151    #[inline]
8152    pub fn edge_token(&self) -> Option<SyntaxToken> {
8153        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8154    }
8155    #[inline]
8156    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8157        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8158    }
8159    #[inline]
8160    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8161        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8162    }
8163    #[inline]
8164    pub fn tables_token(&self) -> Option<SyntaxToken> {
8165        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8166    }
8167}
8168
8169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8170pub struct DropEventTrigger {
8171    pub(crate) syntax: SyntaxNode,
8172}
8173impl DropEventTrigger {
8174    #[inline]
8175    pub fn if_exists(&self) -> Option<IfExists> {
8176        support::child(&self.syntax)
8177    }
8178    #[inline]
8179    pub fn name_ref(&self) -> Option<NameRef> {
8180        support::child(&self.syntax)
8181    }
8182    #[inline]
8183    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8184        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8185    }
8186    #[inline]
8187    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8188        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8189    }
8190    #[inline]
8191    pub fn drop_token(&self) -> Option<SyntaxToken> {
8192        support::token(&self.syntax, SyntaxKind::DROP_KW)
8193    }
8194    #[inline]
8195    pub fn event_token(&self) -> Option<SyntaxToken> {
8196        support::token(&self.syntax, SyntaxKind::EVENT_KW)
8197    }
8198    #[inline]
8199    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8200        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8201    }
8202    #[inline]
8203    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8204        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8205    }
8206}
8207
8208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8209pub struct DropExpression {
8210    pub(crate) syntax: SyntaxNode,
8211}
8212impl DropExpression {
8213    #[inline]
8214    pub fn if_exists(&self) -> Option<IfExists> {
8215        support::child(&self.syntax)
8216    }
8217    #[inline]
8218    pub fn drop_token(&self) -> Option<SyntaxToken> {
8219        support::token(&self.syntax, SyntaxKind::DROP_KW)
8220    }
8221    #[inline]
8222    pub fn expression_token(&self) -> Option<SyntaxToken> {
8223        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
8224    }
8225}
8226
8227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8228pub struct DropExtension {
8229    pub(crate) syntax: SyntaxNode,
8230}
8231impl DropExtension {
8232    #[inline]
8233    pub fn if_exists(&self) -> Option<IfExists> {
8234        support::child(&self.syntax)
8235    }
8236    #[inline]
8237    pub fn name_refs(&self) -> AstChildren<NameRef> {
8238        support::children(&self.syntax)
8239    }
8240    #[inline]
8241    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8242        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8243    }
8244    #[inline]
8245    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8246        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8247    }
8248    #[inline]
8249    pub fn drop_token(&self) -> Option<SyntaxToken> {
8250        support::token(&self.syntax, SyntaxKind::DROP_KW)
8251    }
8252    #[inline]
8253    pub fn extension_token(&self) -> Option<SyntaxToken> {
8254        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
8255    }
8256    #[inline]
8257    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8258        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8259    }
8260}
8261
8262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8263pub struct DropForeignDataWrapper {
8264    pub(crate) syntax: SyntaxNode,
8265}
8266impl DropForeignDataWrapper {
8267    #[inline]
8268    pub fn if_exists(&self) -> Option<IfExists> {
8269        support::child(&self.syntax)
8270    }
8271    #[inline]
8272    pub fn name_refs(&self) -> AstChildren<NameRef> {
8273        support::children(&self.syntax)
8274    }
8275    #[inline]
8276    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8277        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8278    }
8279    #[inline]
8280    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8281        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8282    }
8283    #[inline]
8284    pub fn data_token(&self) -> Option<SyntaxToken> {
8285        support::token(&self.syntax, SyntaxKind::DATA_KW)
8286    }
8287    #[inline]
8288    pub fn drop_token(&self) -> Option<SyntaxToken> {
8289        support::token(&self.syntax, SyntaxKind::DROP_KW)
8290    }
8291    #[inline]
8292    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8293        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8294    }
8295    #[inline]
8296    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8297        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8298    }
8299    #[inline]
8300    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
8301        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
8302    }
8303}
8304
8305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8306pub struct DropForeignTable {
8307    pub(crate) syntax: SyntaxNode,
8308}
8309impl DropForeignTable {
8310    #[inline]
8311    pub fn if_exists(&self) -> Option<IfExists> {
8312        support::child(&self.syntax)
8313    }
8314    #[inline]
8315    pub fn paths(&self) -> AstChildren<Path> {
8316        support::children(&self.syntax)
8317    }
8318    #[inline]
8319    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8320        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8321    }
8322    #[inline]
8323    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8324        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8325    }
8326    #[inline]
8327    pub fn drop_token(&self) -> Option<SyntaxToken> {
8328        support::token(&self.syntax, SyntaxKind::DROP_KW)
8329    }
8330    #[inline]
8331    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8332        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8333    }
8334    #[inline]
8335    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8336        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8337    }
8338    #[inline]
8339    pub fn table_token(&self) -> Option<SyntaxToken> {
8340        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8341    }
8342}
8343
8344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8345pub struct DropFunction {
8346    pub(crate) syntax: SyntaxNode,
8347}
8348impl DropFunction {
8349    #[inline]
8350    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
8351        support::child(&self.syntax)
8352    }
8353    #[inline]
8354    pub fn if_exists(&self) -> Option<IfExists> {
8355        support::child(&self.syntax)
8356    }
8357    #[inline]
8358    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8359        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8360    }
8361    #[inline]
8362    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8363        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8364    }
8365    #[inline]
8366    pub fn drop_token(&self) -> Option<SyntaxToken> {
8367        support::token(&self.syntax, SyntaxKind::DROP_KW)
8368    }
8369    #[inline]
8370    pub fn function_token(&self) -> Option<SyntaxToken> {
8371        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
8372    }
8373    #[inline]
8374    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8375        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8376    }
8377}
8378
8379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8380pub struct DropGroup {
8381    pub(crate) syntax: SyntaxNode,
8382}
8383impl DropGroup {
8384    #[inline]
8385    pub fn if_exists(&self) -> Option<IfExists> {
8386        support::child(&self.syntax)
8387    }
8388    #[inline]
8389    pub fn name_refs(&self) -> AstChildren<NameRef> {
8390        support::children(&self.syntax)
8391    }
8392    #[inline]
8393    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8394        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8395    }
8396    #[inline]
8397    pub fn drop_token(&self) -> Option<SyntaxToken> {
8398        support::token(&self.syntax, SyntaxKind::DROP_KW)
8399    }
8400    #[inline]
8401    pub fn group_token(&self) -> Option<SyntaxToken> {
8402        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8403    }
8404}
8405
8406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8407pub struct DropIdentity {
8408    pub(crate) syntax: SyntaxNode,
8409}
8410impl DropIdentity {
8411    #[inline]
8412    pub fn if_exists(&self) -> Option<IfExists> {
8413        support::child(&self.syntax)
8414    }
8415    #[inline]
8416    pub fn drop_token(&self) -> Option<SyntaxToken> {
8417        support::token(&self.syntax, SyntaxKind::DROP_KW)
8418    }
8419    #[inline]
8420    pub fn identity_token(&self) -> Option<SyntaxToken> {
8421        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8422    }
8423}
8424
8425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8426pub struct DropIndex {
8427    pub(crate) syntax: SyntaxNode,
8428}
8429impl DropIndex {
8430    #[inline]
8431    pub fn if_exists(&self) -> Option<IfExists> {
8432        support::child(&self.syntax)
8433    }
8434    #[inline]
8435    pub fn paths(&self) -> AstChildren<Path> {
8436        support::children(&self.syntax)
8437    }
8438    #[inline]
8439    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8440        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8441    }
8442    #[inline]
8443    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8444        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8445    }
8446    #[inline]
8447    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
8448        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
8449    }
8450    #[inline]
8451    pub fn drop_token(&self) -> Option<SyntaxToken> {
8452        support::token(&self.syntax, SyntaxKind::DROP_KW)
8453    }
8454    #[inline]
8455    pub fn index_token(&self) -> Option<SyntaxToken> {
8456        support::token(&self.syntax, SyntaxKind::INDEX_KW)
8457    }
8458    #[inline]
8459    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8460        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8461    }
8462}
8463
8464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8465pub struct DropLanguage {
8466    pub(crate) syntax: SyntaxNode,
8467}
8468impl DropLanguage {
8469    #[inline]
8470    pub fn if_exists(&self) -> Option<IfExists> {
8471        support::child(&self.syntax)
8472    }
8473    #[inline]
8474    pub fn name_ref(&self) -> Option<NameRef> {
8475        support::child(&self.syntax)
8476    }
8477    #[inline]
8478    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8479        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8480    }
8481    #[inline]
8482    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8483        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8484    }
8485    #[inline]
8486    pub fn drop_token(&self) -> Option<SyntaxToken> {
8487        support::token(&self.syntax, SyntaxKind::DROP_KW)
8488    }
8489    #[inline]
8490    pub fn language_token(&self) -> Option<SyntaxToken> {
8491        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
8492    }
8493    #[inline]
8494    pub fn procedural_token(&self) -> Option<SyntaxToken> {
8495        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
8496    }
8497    #[inline]
8498    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8499        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8500    }
8501}
8502
8503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8504pub struct DropMaterializedView {
8505    pub(crate) syntax: SyntaxNode,
8506}
8507impl DropMaterializedView {
8508    #[inline]
8509    pub fn if_exists(&self) -> Option<IfExists> {
8510        support::child(&self.syntax)
8511    }
8512    #[inline]
8513    pub fn paths(&self) -> AstChildren<Path> {
8514        support::children(&self.syntax)
8515    }
8516    #[inline]
8517    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8518        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8519    }
8520    #[inline]
8521    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8522        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8523    }
8524    #[inline]
8525    pub fn drop_token(&self) -> Option<SyntaxToken> {
8526        support::token(&self.syntax, SyntaxKind::DROP_KW)
8527    }
8528    #[inline]
8529    pub fn materialized_token(&self) -> Option<SyntaxToken> {
8530        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
8531    }
8532    #[inline]
8533    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8534        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8535    }
8536    #[inline]
8537    pub fn view_token(&self) -> Option<SyntaxToken> {
8538        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8539    }
8540}
8541
8542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8543pub struct DropNotNull {
8544    pub(crate) syntax: SyntaxNode,
8545}
8546impl DropNotNull {
8547    #[inline]
8548    pub fn drop_token(&self) -> Option<SyntaxToken> {
8549        support::token(&self.syntax, SyntaxKind::DROP_KW)
8550    }
8551    #[inline]
8552    pub fn not_token(&self) -> Option<SyntaxToken> {
8553        support::token(&self.syntax, SyntaxKind::NOT_KW)
8554    }
8555    #[inline]
8556    pub fn null_token(&self) -> Option<SyntaxToken> {
8557        support::token(&self.syntax, SyntaxKind::NULL_KW)
8558    }
8559}
8560
8561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8562pub struct DropOpClassOption {
8563    pub(crate) syntax: SyntaxNode,
8564}
8565impl DropOpClassOption {
8566    #[inline]
8567    pub fn literal(&self) -> Option<Literal> {
8568        support::child(&self.syntax)
8569    }
8570    #[inline]
8571    pub fn param_list(&self) -> Option<ParamList> {
8572        support::child(&self.syntax)
8573    }
8574    #[inline]
8575    pub fn function_token(&self) -> Option<SyntaxToken> {
8576        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
8577    }
8578    #[inline]
8579    pub fn operator_token(&self) -> Option<SyntaxToken> {
8580        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
8581    }
8582}
8583
8584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8585pub struct DropOpClassOptionList {
8586    pub(crate) syntax: SyntaxNode,
8587}
8588impl DropOpClassOptionList {
8589    #[inline]
8590    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
8591        support::children(&self.syntax)
8592    }
8593}
8594
8595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8596pub struct DropOpClassOptions {
8597    pub(crate) syntax: SyntaxNode,
8598}
8599impl DropOpClassOptions {
8600    #[inline]
8601    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
8602        support::child(&self.syntax)
8603    }
8604    #[inline]
8605    pub fn drop_token(&self) -> Option<SyntaxToken> {
8606        support::token(&self.syntax, SyntaxKind::DROP_KW)
8607    }
8608}
8609
8610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8611pub struct DropOperator {
8612    pub(crate) syntax: SyntaxNode,
8613}
8614impl DropOperator {
8615    #[inline]
8616    pub fn if_exists(&self) -> Option<IfExists> {
8617        support::child(&self.syntax)
8618    }
8619    #[inline]
8620    pub fn op_sig_list(&self) -> Option<OpSigList> {
8621        support::child(&self.syntax)
8622    }
8623    #[inline]
8624    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8625        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8626    }
8627    #[inline]
8628    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8629        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8630    }
8631    #[inline]
8632    pub fn drop_token(&self) -> Option<SyntaxToken> {
8633        support::token(&self.syntax, SyntaxKind::DROP_KW)
8634    }
8635    #[inline]
8636    pub fn operator_token(&self) -> Option<SyntaxToken> {
8637        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
8638    }
8639    #[inline]
8640    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8642    }
8643}
8644
8645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8646pub struct DropOperatorClass {
8647    pub(crate) syntax: SyntaxNode,
8648}
8649impl DropOperatorClass {
8650    #[inline]
8651    pub fn if_exists(&self) -> Option<IfExists> {
8652        support::child(&self.syntax)
8653    }
8654    #[inline]
8655    pub fn name_ref(&self) -> Option<NameRef> {
8656        support::child(&self.syntax)
8657    }
8658    #[inline]
8659    pub fn path(&self) -> Option<Path> {
8660        support::child(&self.syntax)
8661    }
8662    #[inline]
8663    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8665    }
8666    #[inline]
8667    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8668        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8669    }
8670    #[inline]
8671    pub fn class_token(&self) -> Option<SyntaxToken> {
8672        support::token(&self.syntax, SyntaxKind::CLASS_KW)
8673    }
8674    #[inline]
8675    pub fn drop_token(&self) -> Option<SyntaxToken> {
8676        support::token(&self.syntax, SyntaxKind::DROP_KW)
8677    }
8678    #[inline]
8679    pub fn operator_token(&self) -> Option<SyntaxToken> {
8680        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
8681    }
8682    #[inline]
8683    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8684        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8685    }
8686    #[inline]
8687    pub fn using_token(&self) -> Option<SyntaxToken> {
8688        support::token(&self.syntax, SyntaxKind::USING_KW)
8689    }
8690}
8691
8692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8693pub struct DropOperatorFamily {
8694    pub(crate) syntax: SyntaxNode,
8695}
8696impl DropOperatorFamily {
8697    #[inline]
8698    pub fn if_exists(&self) -> Option<IfExists> {
8699        support::child(&self.syntax)
8700    }
8701    #[inline]
8702    pub fn name_ref(&self) -> Option<NameRef> {
8703        support::child(&self.syntax)
8704    }
8705    #[inline]
8706    pub fn path(&self) -> Option<Path> {
8707        support::child(&self.syntax)
8708    }
8709    #[inline]
8710    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8711        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8712    }
8713    #[inline]
8714    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8715        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8716    }
8717    #[inline]
8718    pub fn drop_token(&self) -> Option<SyntaxToken> {
8719        support::token(&self.syntax, SyntaxKind::DROP_KW)
8720    }
8721    #[inline]
8722    pub fn family_token(&self) -> Option<SyntaxToken> {
8723        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
8724    }
8725    #[inline]
8726    pub fn operator_token(&self) -> Option<SyntaxToken> {
8727        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
8728    }
8729    #[inline]
8730    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8731        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8732    }
8733    #[inline]
8734    pub fn using_token(&self) -> Option<SyntaxToken> {
8735        support::token(&self.syntax, SyntaxKind::USING_KW)
8736    }
8737}
8738
8739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8740pub struct DropOwned {
8741    pub(crate) syntax: SyntaxNode,
8742}
8743impl DropOwned {
8744    #[inline]
8745    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8746        support::child(&self.syntax)
8747    }
8748    #[inline]
8749    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8750        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8751    }
8752    #[inline]
8753    pub fn by_token(&self) -> Option<SyntaxToken> {
8754        support::token(&self.syntax, SyntaxKind::BY_KW)
8755    }
8756    #[inline]
8757    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8758        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8759    }
8760    #[inline]
8761    pub fn drop_token(&self) -> Option<SyntaxToken> {
8762        support::token(&self.syntax, SyntaxKind::DROP_KW)
8763    }
8764    #[inline]
8765    pub fn owned_token(&self) -> Option<SyntaxToken> {
8766        support::token(&self.syntax, SyntaxKind::OWNED_KW)
8767    }
8768    #[inline]
8769    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8770        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8771    }
8772}
8773
8774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8775pub struct DropPolicy {
8776    pub(crate) syntax: SyntaxNode,
8777}
8778impl DropPolicy {
8779    #[inline]
8780    pub fn if_exists(&self) -> Option<IfExists> {
8781        support::child(&self.syntax)
8782    }
8783    #[inline]
8784    pub fn name_ref(&self) -> Option<NameRef> {
8785        support::child(&self.syntax)
8786    }
8787    #[inline]
8788    pub fn on_table(&self) -> Option<OnTable> {
8789        support::child(&self.syntax)
8790    }
8791    #[inline]
8792    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8793        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8794    }
8795    #[inline]
8796    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8797        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8798    }
8799    #[inline]
8800    pub fn drop_token(&self) -> Option<SyntaxToken> {
8801        support::token(&self.syntax, SyntaxKind::DROP_KW)
8802    }
8803    #[inline]
8804    pub fn policy_token(&self) -> Option<SyntaxToken> {
8805        support::token(&self.syntax, SyntaxKind::POLICY_KW)
8806    }
8807    #[inline]
8808    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8809        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8810    }
8811}
8812
8813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8814pub struct DropProcedure {
8815    pub(crate) syntax: SyntaxNode,
8816}
8817impl DropProcedure {
8818    #[inline]
8819    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
8820        support::child(&self.syntax)
8821    }
8822    #[inline]
8823    pub fn if_exists(&self) -> Option<IfExists> {
8824        support::child(&self.syntax)
8825    }
8826    #[inline]
8827    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8828        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8829    }
8830    #[inline]
8831    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8832        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8833    }
8834    #[inline]
8835    pub fn drop_token(&self) -> Option<SyntaxToken> {
8836        support::token(&self.syntax, SyntaxKind::DROP_KW)
8837    }
8838    #[inline]
8839    pub fn procedure_token(&self) -> Option<SyntaxToken> {
8840        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
8841    }
8842    #[inline]
8843    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8845    }
8846}
8847
8848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8849pub struct DropPropertyGraph {
8850    pub(crate) syntax: SyntaxNode,
8851}
8852impl DropPropertyGraph {
8853    #[inline]
8854    pub fn if_exists(&self) -> Option<IfExists> {
8855        support::child(&self.syntax)
8856    }
8857    #[inline]
8858    pub fn path(&self) -> Option<Path> {
8859        support::child(&self.syntax)
8860    }
8861    #[inline]
8862    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8863        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8864    }
8865    #[inline]
8866    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8867        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8868    }
8869    #[inline]
8870    pub fn drop_token(&self) -> Option<SyntaxToken> {
8871        support::token(&self.syntax, SyntaxKind::DROP_KW)
8872    }
8873    #[inline]
8874    pub fn graph_token(&self) -> Option<SyntaxToken> {
8875        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
8876    }
8877    #[inline]
8878    pub fn property_token(&self) -> Option<SyntaxToken> {
8879        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
8880    }
8881    #[inline]
8882    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8883        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8884    }
8885}
8886
8887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8888pub struct DropPublication {
8889    pub(crate) syntax: SyntaxNode,
8890}
8891impl DropPublication {
8892    #[inline]
8893    pub fn if_exists(&self) -> Option<IfExists> {
8894        support::child(&self.syntax)
8895    }
8896    #[inline]
8897    pub fn name_refs(&self) -> AstChildren<NameRef> {
8898        support::children(&self.syntax)
8899    }
8900    #[inline]
8901    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8902        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8903    }
8904    #[inline]
8905    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8906        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8907    }
8908    #[inline]
8909    pub fn drop_token(&self) -> Option<SyntaxToken> {
8910        support::token(&self.syntax, SyntaxKind::DROP_KW)
8911    }
8912    #[inline]
8913    pub fn publication_token(&self) -> Option<SyntaxToken> {
8914        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
8915    }
8916    #[inline]
8917    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8918        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8919    }
8920}
8921
8922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8923pub struct DropRole {
8924    pub(crate) syntax: SyntaxNode,
8925}
8926impl DropRole {
8927    #[inline]
8928    pub fn if_exists(&self) -> Option<IfExists> {
8929        support::child(&self.syntax)
8930    }
8931    #[inline]
8932    pub fn name_refs(&self) -> AstChildren<NameRef> {
8933        support::children(&self.syntax)
8934    }
8935    #[inline]
8936    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8937        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8938    }
8939    #[inline]
8940    pub fn drop_token(&self) -> Option<SyntaxToken> {
8941        support::token(&self.syntax, SyntaxKind::DROP_KW)
8942    }
8943    #[inline]
8944    pub fn role_token(&self) -> Option<SyntaxToken> {
8945        support::token(&self.syntax, SyntaxKind::ROLE_KW)
8946    }
8947}
8948
8949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8950pub struct DropRoutine {
8951    pub(crate) syntax: SyntaxNode,
8952}
8953impl DropRoutine {
8954    #[inline]
8955    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
8956        support::child(&self.syntax)
8957    }
8958    #[inline]
8959    pub fn if_exists(&self) -> Option<IfExists> {
8960        support::child(&self.syntax)
8961    }
8962    #[inline]
8963    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8964        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8965    }
8966    #[inline]
8967    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8968        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8969    }
8970    #[inline]
8971    pub fn drop_token(&self) -> Option<SyntaxToken> {
8972        support::token(&self.syntax, SyntaxKind::DROP_KW)
8973    }
8974    #[inline]
8975    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8976        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8977    }
8978    #[inline]
8979    pub fn routine_token(&self) -> Option<SyntaxToken> {
8980        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
8981    }
8982}
8983
8984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8985pub struct DropRule {
8986    pub(crate) syntax: SyntaxNode,
8987}
8988impl DropRule {
8989    #[inline]
8990    pub fn if_exists(&self) -> Option<IfExists> {
8991        support::child(&self.syntax)
8992    }
8993    #[inline]
8994    pub fn name_ref(&self) -> Option<NameRef> {
8995        support::child(&self.syntax)
8996    }
8997    #[inline]
8998    pub fn on_table(&self) -> Option<OnTable> {
8999        support::child(&self.syntax)
9000    }
9001    #[inline]
9002    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9003        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9004    }
9005    #[inline]
9006    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9007        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9008    }
9009    #[inline]
9010    pub fn drop_token(&self) -> Option<SyntaxToken> {
9011        support::token(&self.syntax, SyntaxKind::DROP_KW)
9012    }
9013    #[inline]
9014    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9015        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9016    }
9017    #[inline]
9018    pub fn rule_token(&self) -> Option<SyntaxToken> {
9019        support::token(&self.syntax, SyntaxKind::RULE_KW)
9020    }
9021}
9022
9023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9024pub struct DropSchema {
9025    pub(crate) syntax: SyntaxNode,
9026}
9027impl DropSchema {
9028    #[inline]
9029    pub fn if_exists(&self) -> Option<IfExists> {
9030        support::child(&self.syntax)
9031    }
9032    #[inline]
9033    pub fn name_refs(&self) -> AstChildren<NameRef> {
9034        support::children(&self.syntax)
9035    }
9036    #[inline]
9037    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9038        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9039    }
9040    #[inline]
9041    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9042        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9043    }
9044    #[inline]
9045    pub fn drop_token(&self) -> Option<SyntaxToken> {
9046        support::token(&self.syntax, SyntaxKind::DROP_KW)
9047    }
9048    #[inline]
9049    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9050        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9051    }
9052    #[inline]
9053    pub fn schema_token(&self) -> Option<SyntaxToken> {
9054        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9055    }
9056}
9057
9058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9059pub struct DropSequence {
9060    pub(crate) syntax: SyntaxNode,
9061}
9062impl DropSequence {
9063    #[inline]
9064    pub fn if_exists(&self) -> Option<IfExists> {
9065        support::child(&self.syntax)
9066    }
9067    #[inline]
9068    pub fn paths(&self) -> AstChildren<Path> {
9069        support::children(&self.syntax)
9070    }
9071    #[inline]
9072    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9073        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9074    }
9075    #[inline]
9076    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9077        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9078    }
9079    #[inline]
9080    pub fn drop_token(&self) -> Option<SyntaxToken> {
9081        support::token(&self.syntax, SyntaxKind::DROP_KW)
9082    }
9083    #[inline]
9084    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9085        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9086    }
9087    #[inline]
9088    pub fn sequence_token(&self) -> Option<SyntaxToken> {
9089        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
9090    }
9091}
9092
9093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9094pub struct DropServer {
9095    pub(crate) syntax: SyntaxNode,
9096}
9097impl DropServer {
9098    #[inline]
9099    pub fn if_exists(&self) -> Option<IfExists> {
9100        support::child(&self.syntax)
9101    }
9102    #[inline]
9103    pub fn name_ref(&self) -> Option<NameRef> {
9104        support::child(&self.syntax)
9105    }
9106    #[inline]
9107    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9108        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9109    }
9110    #[inline]
9111    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9112        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9113    }
9114    #[inline]
9115    pub fn drop_token(&self) -> Option<SyntaxToken> {
9116        support::token(&self.syntax, SyntaxKind::DROP_KW)
9117    }
9118    #[inline]
9119    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9120        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9121    }
9122    #[inline]
9123    pub fn server_token(&self) -> Option<SyntaxToken> {
9124        support::token(&self.syntax, SyntaxKind::SERVER_KW)
9125    }
9126}
9127
9128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9129pub struct DropStatistics {
9130    pub(crate) syntax: SyntaxNode,
9131}
9132impl DropStatistics {
9133    #[inline]
9134    pub fn if_exists(&self) -> Option<IfExists> {
9135        support::child(&self.syntax)
9136    }
9137    #[inline]
9138    pub fn paths(&self) -> AstChildren<Path> {
9139        support::children(&self.syntax)
9140    }
9141    #[inline]
9142    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9143        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9144    }
9145    #[inline]
9146    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9147        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9148    }
9149    #[inline]
9150    pub fn drop_token(&self) -> Option<SyntaxToken> {
9151        support::token(&self.syntax, SyntaxKind::DROP_KW)
9152    }
9153    #[inline]
9154    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9155        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9156    }
9157    #[inline]
9158    pub fn statistics_token(&self) -> Option<SyntaxToken> {
9159        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
9160    }
9161}
9162
9163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9164pub struct DropSubscription {
9165    pub(crate) syntax: SyntaxNode,
9166}
9167impl DropSubscription {
9168    #[inline]
9169    pub fn if_exists(&self) -> Option<IfExists> {
9170        support::child(&self.syntax)
9171    }
9172    #[inline]
9173    pub fn name_ref(&self) -> Option<NameRef> {
9174        support::child(&self.syntax)
9175    }
9176    #[inline]
9177    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9178        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9179    }
9180    #[inline]
9181    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9182        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9183    }
9184    #[inline]
9185    pub fn drop_token(&self) -> Option<SyntaxToken> {
9186        support::token(&self.syntax, SyntaxKind::DROP_KW)
9187    }
9188    #[inline]
9189    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9190        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9191    }
9192    #[inline]
9193    pub fn subscription_token(&self) -> Option<SyntaxToken> {
9194        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
9195    }
9196}
9197
9198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9199pub struct DropTable {
9200    pub(crate) syntax: SyntaxNode,
9201}
9202impl DropTable {
9203    #[inline]
9204    pub fn if_exists(&self) -> Option<IfExists> {
9205        support::child(&self.syntax)
9206    }
9207    #[inline]
9208    pub fn paths(&self) -> AstChildren<Path> {
9209        support::children(&self.syntax)
9210    }
9211    #[inline]
9212    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9213        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9214    }
9215    #[inline]
9216    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9217        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9218    }
9219    #[inline]
9220    pub fn drop_token(&self) -> Option<SyntaxToken> {
9221        support::token(&self.syntax, SyntaxKind::DROP_KW)
9222    }
9223    #[inline]
9224    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9225        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9226    }
9227    #[inline]
9228    pub fn table_token(&self) -> Option<SyntaxToken> {
9229        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9230    }
9231}
9232
9233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9234pub struct DropTablespace {
9235    pub(crate) syntax: SyntaxNode,
9236}
9237impl DropTablespace {
9238    #[inline]
9239    pub fn if_exists(&self) -> Option<IfExists> {
9240        support::child(&self.syntax)
9241    }
9242    #[inline]
9243    pub fn name_ref(&self) -> Option<NameRef> {
9244        support::child(&self.syntax)
9245    }
9246    #[inline]
9247    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9248        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9249    }
9250    #[inline]
9251    pub fn drop_token(&self) -> Option<SyntaxToken> {
9252        support::token(&self.syntax, SyntaxKind::DROP_KW)
9253    }
9254    #[inline]
9255    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
9256        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
9257    }
9258}
9259
9260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9261pub struct DropTextSearchConfig {
9262    pub(crate) syntax: SyntaxNode,
9263}
9264impl DropTextSearchConfig {
9265    #[inline]
9266    pub fn if_exists(&self) -> Option<IfExists> {
9267        support::child(&self.syntax)
9268    }
9269    #[inline]
9270    pub fn path(&self) -> Option<Path> {
9271        support::child(&self.syntax)
9272    }
9273    #[inline]
9274    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9275        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9276    }
9277    #[inline]
9278    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9279        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9280    }
9281    #[inline]
9282    pub fn configuration_token(&self) -> Option<SyntaxToken> {
9283        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
9284    }
9285    #[inline]
9286    pub fn drop_token(&self) -> Option<SyntaxToken> {
9287        support::token(&self.syntax, SyntaxKind::DROP_KW)
9288    }
9289    #[inline]
9290    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9291        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9292    }
9293    #[inline]
9294    pub fn search_token(&self) -> Option<SyntaxToken> {
9295        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
9296    }
9297    #[inline]
9298    pub fn text_token(&self) -> Option<SyntaxToken> {
9299        support::token(&self.syntax, SyntaxKind::TEXT_KW)
9300    }
9301}
9302
9303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9304pub struct DropTextSearchDict {
9305    pub(crate) syntax: SyntaxNode,
9306}
9307impl DropTextSearchDict {
9308    #[inline]
9309    pub fn if_exists(&self) -> Option<IfExists> {
9310        support::child(&self.syntax)
9311    }
9312    #[inline]
9313    pub fn path(&self) -> Option<Path> {
9314        support::child(&self.syntax)
9315    }
9316    #[inline]
9317    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9318        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9319    }
9320    #[inline]
9321    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9322        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9323    }
9324    #[inline]
9325    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
9326        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
9327    }
9328    #[inline]
9329    pub fn drop_token(&self) -> Option<SyntaxToken> {
9330        support::token(&self.syntax, SyntaxKind::DROP_KW)
9331    }
9332    #[inline]
9333    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9334        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9335    }
9336    #[inline]
9337    pub fn search_token(&self) -> Option<SyntaxToken> {
9338        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
9339    }
9340    #[inline]
9341    pub fn text_token(&self) -> Option<SyntaxToken> {
9342        support::token(&self.syntax, SyntaxKind::TEXT_KW)
9343    }
9344}
9345
9346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9347pub struct DropTextSearchParser {
9348    pub(crate) syntax: SyntaxNode,
9349}
9350impl DropTextSearchParser {
9351    #[inline]
9352    pub fn if_exists(&self) -> Option<IfExists> {
9353        support::child(&self.syntax)
9354    }
9355    #[inline]
9356    pub fn path(&self) -> Option<Path> {
9357        support::child(&self.syntax)
9358    }
9359    #[inline]
9360    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9361        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9362    }
9363    #[inline]
9364    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9365        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9366    }
9367    #[inline]
9368    pub fn drop_token(&self) -> Option<SyntaxToken> {
9369        support::token(&self.syntax, SyntaxKind::DROP_KW)
9370    }
9371    #[inline]
9372    pub fn parser_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::PARSER_KW)
9374    }
9375    #[inline]
9376    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9378    }
9379    #[inline]
9380    pub fn search_token(&self) -> Option<SyntaxToken> {
9381        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
9382    }
9383    #[inline]
9384    pub fn text_token(&self) -> Option<SyntaxToken> {
9385        support::token(&self.syntax, SyntaxKind::TEXT_KW)
9386    }
9387}
9388
9389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9390pub struct DropTextSearchTemplate {
9391    pub(crate) syntax: SyntaxNode,
9392}
9393impl DropTextSearchTemplate {
9394    #[inline]
9395    pub fn if_exists(&self) -> Option<IfExists> {
9396        support::child(&self.syntax)
9397    }
9398    #[inline]
9399    pub fn path(&self) -> Option<Path> {
9400        support::child(&self.syntax)
9401    }
9402    #[inline]
9403    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9404        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9405    }
9406    #[inline]
9407    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9408        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9409    }
9410    #[inline]
9411    pub fn drop_token(&self) -> Option<SyntaxToken> {
9412        support::token(&self.syntax, SyntaxKind::DROP_KW)
9413    }
9414    #[inline]
9415    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9416        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9417    }
9418    #[inline]
9419    pub fn search_token(&self) -> Option<SyntaxToken> {
9420        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
9421    }
9422    #[inline]
9423    pub fn template_token(&self) -> Option<SyntaxToken> {
9424        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
9425    }
9426    #[inline]
9427    pub fn text_token(&self) -> Option<SyntaxToken> {
9428        support::token(&self.syntax, SyntaxKind::TEXT_KW)
9429    }
9430}
9431
9432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9433pub struct DropTransform {
9434    pub(crate) syntax: SyntaxNode,
9435}
9436impl DropTransform {
9437    #[inline]
9438    pub fn if_exists(&self) -> Option<IfExists> {
9439        support::child(&self.syntax)
9440    }
9441    #[inline]
9442    pub fn language(&self) -> Option<NameRef> {
9443        support::child(&self.syntax)
9444    }
9445    #[inline]
9446    pub fn ty(&self) -> Option<Type> {
9447        support::child(&self.syntax)
9448    }
9449    #[inline]
9450    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9451        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9452    }
9453    #[inline]
9454    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9455        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9456    }
9457    #[inline]
9458    pub fn drop_token(&self) -> Option<SyntaxToken> {
9459        support::token(&self.syntax, SyntaxKind::DROP_KW)
9460    }
9461    #[inline]
9462    pub fn for_token(&self) -> Option<SyntaxToken> {
9463        support::token(&self.syntax, SyntaxKind::FOR_KW)
9464    }
9465    #[inline]
9466    pub fn language_token(&self) -> Option<SyntaxToken> {
9467        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9468    }
9469    #[inline]
9470    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9471        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9472    }
9473    #[inline]
9474    pub fn transform_token(&self) -> Option<SyntaxToken> {
9475        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
9476    }
9477}
9478
9479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9480pub struct DropTrigger {
9481    pub(crate) syntax: SyntaxNode,
9482}
9483impl DropTrigger {
9484    #[inline]
9485    pub fn if_exists(&self) -> Option<IfExists> {
9486        support::child(&self.syntax)
9487    }
9488    #[inline]
9489    pub fn on_table(&self) -> Option<OnTable> {
9490        support::child(&self.syntax)
9491    }
9492    #[inline]
9493    pub fn path(&self) -> Option<Path> {
9494        support::child(&self.syntax)
9495    }
9496    #[inline]
9497    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9498        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9499    }
9500    #[inline]
9501    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9502        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9503    }
9504    #[inline]
9505    pub fn drop_token(&self) -> Option<SyntaxToken> {
9506        support::token(&self.syntax, SyntaxKind::DROP_KW)
9507    }
9508    #[inline]
9509    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9510        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9511    }
9512    #[inline]
9513    pub fn trigger_token(&self) -> Option<SyntaxToken> {
9514        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
9515    }
9516}
9517
9518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9519pub struct DropType {
9520    pub(crate) syntax: SyntaxNode,
9521}
9522impl DropType {
9523    #[inline]
9524    pub fn if_exists(&self) -> Option<IfExists> {
9525        support::child(&self.syntax)
9526    }
9527    #[inline]
9528    pub fn paths(&self) -> AstChildren<Path> {
9529        support::children(&self.syntax)
9530    }
9531    #[inline]
9532    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9533        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9534    }
9535    #[inline]
9536    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9537        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9538    }
9539    #[inline]
9540    pub fn drop_token(&self) -> Option<SyntaxToken> {
9541        support::token(&self.syntax, SyntaxKind::DROP_KW)
9542    }
9543    #[inline]
9544    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9545        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9546    }
9547    #[inline]
9548    pub fn type_token(&self) -> Option<SyntaxToken> {
9549        support::token(&self.syntax, SyntaxKind::TYPE_KW)
9550    }
9551}
9552
9553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9554pub struct DropUser {
9555    pub(crate) syntax: SyntaxNode,
9556}
9557impl DropUser {
9558    #[inline]
9559    pub fn if_exists(&self) -> Option<IfExists> {
9560        support::child(&self.syntax)
9561    }
9562    #[inline]
9563    pub fn name_refs(&self) -> AstChildren<NameRef> {
9564        support::children(&self.syntax)
9565    }
9566    #[inline]
9567    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9568        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9569    }
9570    #[inline]
9571    pub fn drop_token(&self) -> Option<SyntaxToken> {
9572        support::token(&self.syntax, SyntaxKind::DROP_KW)
9573    }
9574    #[inline]
9575    pub fn user_token(&self) -> Option<SyntaxToken> {
9576        support::token(&self.syntax, SyntaxKind::USER_KW)
9577    }
9578}
9579
9580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9581pub struct DropUserMapping {
9582    pub(crate) syntax: SyntaxNode,
9583}
9584impl DropUserMapping {
9585    #[inline]
9586    pub fn if_exists(&self) -> Option<IfExists> {
9587        support::child(&self.syntax)
9588    }
9589    #[inline]
9590    pub fn role_ref(&self) -> Option<RoleRef> {
9591        support::child(&self.syntax)
9592    }
9593    #[inline]
9594    pub fn server_name(&self) -> Option<ServerName> {
9595        support::child(&self.syntax)
9596    }
9597    #[inline]
9598    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9599        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9600    }
9601    #[inline]
9602    pub fn drop_token(&self) -> Option<SyntaxToken> {
9603        support::token(&self.syntax, SyntaxKind::DROP_KW)
9604    }
9605    #[inline]
9606    pub fn for_token(&self) -> Option<SyntaxToken> {
9607        support::token(&self.syntax, SyntaxKind::FOR_KW)
9608    }
9609    #[inline]
9610    pub fn mapping_token(&self) -> Option<SyntaxToken> {
9611        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
9612    }
9613    #[inline]
9614    pub fn user_token(&self) -> Option<SyntaxToken> {
9615        support::token(&self.syntax, SyntaxKind::USER_KW)
9616    }
9617}
9618
9619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9620pub struct DropVertexEdgeLabel {
9621    pub(crate) syntax: SyntaxNode,
9622}
9623impl DropVertexEdgeLabel {
9624    #[inline]
9625    pub fn name_ref(&self) -> Option<NameRef> {
9626        support::child(&self.syntax)
9627    }
9628    #[inline]
9629    pub fn alter_token(&self) -> Option<SyntaxToken> {
9630        support::token(&self.syntax, SyntaxKind::ALTER_KW)
9631    }
9632    #[inline]
9633    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9634        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9635    }
9636    #[inline]
9637    pub fn drop_token(&self) -> Option<SyntaxToken> {
9638        support::token(&self.syntax, SyntaxKind::DROP_KW)
9639    }
9640    #[inline]
9641    pub fn edge_token(&self) -> Option<SyntaxToken> {
9642        support::token(&self.syntax, SyntaxKind::EDGE_KW)
9643    }
9644    #[inline]
9645    pub fn label_token(&self) -> Option<SyntaxToken> {
9646        support::token(&self.syntax, SyntaxKind::LABEL_KW)
9647    }
9648    #[inline]
9649    pub fn node_token(&self) -> Option<SyntaxToken> {
9650        support::token(&self.syntax, SyntaxKind::NODE_KW)
9651    }
9652    #[inline]
9653    pub fn relationship_token(&self) -> Option<SyntaxToken> {
9654        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
9655    }
9656    #[inline]
9657    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9658        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9659    }
9660    #[inline]
9661    pub fn table_token(&self) -> Option<SyntaxToken> {
9662        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9663    }
9664    #[inline]
9665    pub fn vertex_token(&self) -> Option<SyntaxToken> {
9666        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
9667    }
9668}
9669
9670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9671pub struct DropVertexEdgeLabelProperties {
9672    pub(crate) syntax: SyntaxNode,
9673}
9674impl DropVertexEdgeLabelProperties {
9675    #[inline]
9676    pub fn name_ref(&self) -> Option<NameRef> {
9677        support::child(&self.syntax)
9678    }
9679    #[inline]
9680    pub fn names(&self) -> AstChildren<Name> {
9681        support::children(&self.syntax)
9682    }
9683    #[inline]
9684    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9685        support::token(&self.syntax, SyntaxKind::L_PAREN)
9686    }
9687    #[inline]
9688    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9689        support::token(&self.syntax, SyntaxKind::R_PAREN)
9690    }
9691    #[inline]
9692    pub fn alter_token(&self) -> Option<SyntaxToken> {
9693        support::token(&self.syntax, SyntaxKind::ALTER_KW)
9694    }
9695    #[inline]
9696    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9697        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9698    }
9699    #[inline]
9700    pub fn drop_token(&self) -> Option<SyntaxToken> {
9701        support::token(&self.syntax, SyntaxKind::DROP_KW)
9702    }
9703    #[inline]
9704    pub fn edge_token(&self) -> Option<SyntaxToken> {
9705        support::token(&self.syntax, SyntaxKind::EDGE_KW)
9706    }
9707    #[inline]
9708    pub fn label_token(&self) -> Option<SyntaxToken> {
9709        support::token(&self.syntax, SyntaxKind::LABEL_KW)
9710    }
9711    #[inline]
9712    pub fn node_token(&self) -> Option<SyntaxToken> {
9713        support::token(&self.syntax, SyntaxKind::NODE_KW)
9714    }
9715    #[inline]
9716    pub fn properties_token(&self) -> Option<SyntaxToken> {
9717        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
9718    }
9719    #[inline]
9720    pub fn relationship_token(&self) -> Option<SyntaxToken> {
9721        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
9722    }
9723    #[inline]
9724    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9725        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9726    }
9727    #[inline]
9728    pub fn table_token(&self) -> Option<SyntaxToken> {
9729        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9730    }
9731    #[inline]
9732    pub fn vertex_token(&self) -> Option<SyntaxToken> {
9733        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
9734    }
9735}
9736
9737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9738pub struct DropVertexTables {
9739    pub(crate) syntax: SyntaxNode,
9740}
9741impl DropVertexTables {
9742    #[inline]
9743    pub fn names(&self) -> AstChildren<Name> {
9744        support::children(&self.syntax)
9745    }
9746    #[inline]
9747    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9748        support::token(&self.syntax, SyntaxKind::L_PAREN)
9749    }
9750    #[inline]
9751    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9752        support::token(&self.syntax, SyntaxKind::R_PAREN)
9753    }
9754    #[inline]
9755    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9756        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9757    }
9758    #[inline]
9759    pub fn drop_token(&self) -> Option<SyntaxToken> {
9760        support::token(&self.syntax, SyntaxKind::DROP_KW)
9761    }
9762    #[inline]
9763    pub fn node_token(&self) -> Option<SyntaxToken> {
9764        support::token(&self.syntax, SyntaxKind::NODE_KW)
9765    }
9766    #[inline]
9767    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9768        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9769    }
9770    #[inline]
9771    pub fn tables_token(&self) -> Option<SyntaxToken> {
9772        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9773    }
9774    #[inline]
9775    pub fn vertex_token(&self) -> Option<SyntaxToken> {
9776        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
9777    }
9778}
9779
9780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9781pub struct DropView {
9782    pub(crate) syntax: SyntaxNode,
9783}
9784impl DropView {
9785    #[inline]
9786    pub fn if_exists(&self) -> Option<IfExists> {
9787        support::child(&self.syntax)
9788    }
9789    #[inline]
9790    pub fn paths(&self) -> AstChildren<Path> {
9791        support::children(&self.syntax)
9792    }
9793    #[inline]
9794    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9795        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9796    }
9797    #[inline]
9798    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9799        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9800    }
9801    #[inline]
9802    pub fn drop_token(&self) -> Option<SyntaxToken> {
9803        support::token(&self.syntax, SyntaxKind::DROP_KW)
9804    }
9805    #[inline]
9806    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9807        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9808    }
9809    #[inline]
9810    pub fn view_token(&self) -> Option<SyntaxToken> {
9811        support::token(&self.syntax, SyntaxKind::VIEW_KW)
9812    }
9813}
9814
9815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9816pub struct EdgeAny {
9817    pub(crate) syntax: SyntaxNode,
9818}
9819impl EdgeAny {
9820    #[inline]
9821    pub fn is_label(&self) -> Option<IsLabel> {
9822        support::child(&self.syntax)
9823    }
9824    #[inline]
9825    pub fn name(&self) -> Option<Name> {
9826        support::child(&self.syntax)
9827    }
9828    #[inline]
9829    pub fn where_clause(&self) -> Option<WhereClause> {
9830        support::child(&self.syntax)
9831    }
9832    #[inline]
9833    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9834        support::token(&self.syntax, SyntaxKind::L_BRACK)
9835    }
9836    #[inline]
9837    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9838        support::token(&self.syntax, SyntaxKind::R_BRACK)
9839    }
9840    #[inline]
9841    pub fn minus_token(&self) -> Option<SyntaxToken> {
9842        support::token(&self.syntax, SyntaxKind::MINUS)
9843    }
9844}
9845
9846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9847pub struct EdgeLeft {
9848    pub(crate) syntax: SyntaxNode,
9849}
9850impl EdgeLeft {
9851    #[inline]
9852    pub fn is_label(&self) -> Option<IsLabel> {
9853        support::child(&self.syntax)
9854    }
9855    #[inline]
9856    pub fn name(&self) -> Option<Name> {
9857        support::child(&self.syntax)
9858    }
9859    #[inline]
9860    pub fn where_clause(&self) -> Option<WhereClause> {
9861        support::child(&self.syntax)
9862    }
9863    #[inline]
9864    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9865        support::token(&self.syntax, SyntaxKind::L_BRACK)
9866    }
9867    #[inline]
9868    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9869        support::token(&self.syntax, SyntaxKind::R_BRACK)
9870    }
9871    #[inline]
9872    pub fn minus_token(&self) -> Option<SyntaxToken> {
9873        support::token(&self.syntax, SyntaxKind::MINUS)
9874    }
9875    #[inline]
9876    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
9877        support::token(&self.syntax, SyntaxKind::L_ANGLE)
9878    }
9879}
9880
9881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9882pub struct EdgeRight {
9883    pub(crate) syntax: SyntaxNode,
9884}
9885impl EdgeRight {
9886    #[inline]
9887    pub fn is_label(&self) -> Option<IsLabel> {
9888        support::child(&self.syntax)
9889    }
9890    #[inline]
9891    pub fn name(&self) -> Option<Name> {
9892        support::child(&self.syntax)
9893    }
9894    #[inline]
9895    pub fn where_clause(&self) -> Option<WhereClause> {
9896        support::child(&self.syntax)
9897    }
9898    #[inline]
9899    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9900        support::token(&self.syntax, SyntaxKind::L_BRACK)
9901    }
9902    #[inline]
9903    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9904        support::token(&self.syntax, SyntaxKind::R_BRACK)
9905    }
9906    #[inline]
9907    pub fn minus_token(&self) -> Option<SyntaxToken> {
9908        support::token(&self.syntax, SyntaxKind::MINUS)
9909    }
9910    #[inline]
9911    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9912        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9913    }
9914}
9915
9916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9917pub struct EdgeTableDef {
9918    pub(crate) syntax: SyntaxNode,
9919}
9920impl EdgeTableDef {
9921    #[inline]
9922    pub fn column_list(&self) -> Option<ColumnList> {
9923        support::child(&self.syntax)
9924    }
9925    #[inline]
9926    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
9927        support::child(&self.syntax)
9928    }
9929    #[inline]
9930    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
9931        support::child(&self.syntax)
9932    }
9933    #[inline]
9934    pub fn name(&self) -> Option<Name> {
9935        support::child(&self.syntax)
9936    }
9937    #[inline]
9938    pub fn path(&self) -> Option<Path> {
9939        support::child(&self.syntax)
9940    }
9941    #[inline]
9942    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
9943        support::child(&self.syntax)
9944    }
9945    #[inline]
9946    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9947        support::token(&self.syntax, SyntaxKind::L_PAREN)
9948    }
9949    #[inline]
9950    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9951        support::token(&self.syntax, SyntaxKind::R_PAREN)
9952    }
9953    #[inline]
9954    pub fn as_token(&self) -> Option<SyntaxToken> {
9955        support::token(&self.syntax, SyntaxKind::AS_KW)
9956    }
9957    #[inline]
9958    pub fn key_token(&self) -> Option<SyntaxToken> {
9959        support::token(&self.syntax, SyntaxKind::KEY_KW)
9960    }
9961}
9962
9963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9964pub struct EdgeTables {
9965    pub(crate) syntax: SyntaxNode,
9966}
9967impl EdgeTables {
9968    #[inline]
9969    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
9970        support::children(&self.syntax)
9971    }
9972    #[inline]
9973    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9974        support::token(&self.syntax, SyntaxKind::L_PAREN)
9975    }
9976    #[inline]
9977    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9978        support::token(&self.syntax, SyntaxKind::R_PAREN)
9979    }
9980    #[inline]
9981    pub fn edge_token(&self) -> Option<SyntaxToken> {
9982        support::token(&self.syntax, SyntaxKind::EDGE_KW)
9983    }
9984    #[inline]
9985    pub fn relationship_token(&self) -> Option<SyntaxToken> {
9986        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
9987    }
9988    #[inline]
9989    pub fn tables_token(&self) -> Option<SyntaxToken> {
9990        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9991    }
9992}
9993
9994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9995pub struct ElseClause {
9996    pub(crate) syntax: SyntaxNode,
9997}
9998impl ElseClause {
9999    #[inline]
10000    pub fn expr(&self) -> Option<Expr> {
10001        support::child(&self.syntax)
10002    }
10003    #[inline]
10004    pub fn else_token(&self) -> Option<SyntaxToken> {
10005        support::token(&self.syntax, SyntaxKind::ELSE_KW)
10006    }
10007}
10008
10009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10010pub struct EmptyStmt {
10011    pub(crate) syntax: SyntaxNode,
10012}
10013impl EmptyStmt {
10014    #[inline]
10015    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10016        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10017    }
10018}
10019
10020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10021pub struct EnableAlwaysRule {
10022    pub(crate) syntax: SyntaxNode,
10023}
10024impl EnableAlwaysRule {
10025    #[inline]
10026    pub fn name_ref(&self) -> Option<NameRef> {
10027        support::child(&self.syntax)
10028    }
10029    #[inline]
10030    pub fn always_token(&self) -> Option<SyntaxToken> {
10031        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
10032    }
10033    #[inline]
10034    pub fn enable_token(&self) -> Option<SyntaxToken> {
10035        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
10036    }
10037    #[inline]
10038    pub fn rule_token(&self) -> Option<SyntaxToken> {
10039        support::token(&self.syntax, SyntaxKind::RULE_KW)
10040    }
10041}
10042
10043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10044pub struct EnableAlwaysTrigger {
10045    pub(crate) syntax: SyntaxNode,
10046}
10047impl EnableAlwaysTrigger {
10048    #[inline]
10049    pub fn name_ref(&self) -> Option<NameRef> {
10050        support::child(&self.syntax)
10051    }
10052    #[inline]
10053    pub fn always_token(&self) -> Option<SyntaxToken> {
10054        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
10055    }
10056    #[inline]
10057    pub fn enable_token(&self) -> Option<SyntaxToken> {
10058        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
10059    }
10060    #[inline]
10061    pub fn trigger_token(&self) -> Option<SyntaxToken> {
10062        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
10063    }
10064}
10065
10066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10067pub struct EnableReplicaRule {
10068    pub(crate) syntax: SyntaxNode,
10069}
10070impl EnableReplicaRule {
10071    #[inline]
10072    pub fn name_ref(&self) -> Option<NameRef> {
10073        support::child(&self.syntax)
10074    }
10075    #[inline]
10076    pub fn enable_token(&self) -> Option<SyntaxToken> {
10077        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
10078    }
10079    #[inline]
10080    pub fn replica_token(&self) -> Option<SyntaxToken> {
10081        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
10082    }
10083    #[inline]
10084    pub fn rule_token(&self) -> Option<SyntaxToken> {
10085        support::token(&self.syntax, SyntaxKind::RULE_KW)
10086    }
10087}
10088
10089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10090pub struct EnableReplicaTrigger {
10091    pub(crate) syntax: SyntaxNode,
10092}
10093impl EnableReplicaTrigger {
10094    #[inline]
10095    pub fn name_ref(&self) -> Option<NameRef> {
10096        support::child(&self.syntax)
10097    }
10098    #[inline]
10099    pub fn enable_token(&self) -> Option<SyntaxToken> {
10100        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
10101    }
10102    #[inline]
10103    pub fn replica_token(&self) -> Option<SyntaxToken> {
10104        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
10105    }
10106    #[inline]
10107    pub fn trigger_token(&self) -> Option<SyntaxToken> {
10108        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
10109    }
10110}
10111
10112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10113pub struct EnableRls {
10114    pub(crate) syntax: SyntaxNode,
10115}
10116impl EnableRls {
10117    #[inline]
10118    pub fn enable_token(&self) -> Option<SyntaxToken> {
10119        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
10120    }
10121    #[inline]
10122    pub fn level_token(&self) -> Option<SyntaxToken> {
10123        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10124    }
10125    #[inline]
10126    pub fn row_token(&self) -> Option<SyntaxToken> {
10127        support::token(&self.syntax, SyntaxKind::ROW_KW)
10128    }
10129    #[inline]
10130    pub fn security_token(&self) -> Option<SyntaxToken> {
10131        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10132    }
10133}
10134
10135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10136pub struct EnableRule {
10137    pub(crate) syntax: SyntaxNode,
10138}
10139impl EnableRule {
10140    #[inline]
10141    pub fn name_ref(&self) -> Option<NameRef> {
10142        support::child(&self.syntax)
10143    }
10144    #[inline]
10145    pub fn enable_token(&self) -> Option<SyntaxToken> {
10146        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
10147    }
10148    #[inline]
10149    pub fn rule_token(&self) -> Option<SyntaxToken> {
10150        support::token(&self.syntax, SyntaxKind::RULE_KW)
10151    }
10152}
10153
10154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10155pub struct EnableTrigger {
10156    pub(crate) syntax: SyntaxNode,
10157}
10158impl EnableTrigger {
10159    #[inline]
10160    pub fn name_ref(&self) -> Option<NameRef> {
10161        support::child(&self.syntax)
10162    }
10163    #[inline]
10164    pub fn all_token(&self) -> Option<SyntaxToken> {
10165        support::token(&self.syntax, SyntaxKind::ALL_KW)
10166    }
10167    #[inline]
10168    pub fn enable_token(&self) -> Option<SyntaxToken> {
10169        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
10170    }
10171    #[inline]
10172    pub fn trigger_token(&self) -> Option<SyntaxToken> {
10173        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
10174    }
10175    #[inline]
10176    pub fn user_token(&self) -> Option<SyntaxToken> {
10177        support::token(&self.syntax, SyntaxKind::USER_KW)
10178    }
10179}
10180
10181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10182pub struct Enforced {
10183    pub(crate) syntax: SyntaxNode,
10184}
10185impl Enforced {
10186    #[inline]
10187    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10188        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10189    }
10190}
10191
10192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10193pub struct EventTriggerWhen {
10194    pub(crate) syntax: SyntaxNode,
10195}
10196impl EventTriggerWhen {
10197    #[inline]
10198    pub fn literals(&self) -> AstChildren<Literal> {
10199        support::children(&self.syntax)
10200    }
10201    #[inline]
10202    pub fn name_ref(&self) -> Option<NameRef> {
10203        support::child(&self.syntax)
10204    }
10205    #[inline]
10206    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10207        support::token(&self.syntax, SyntaxKind::L_PAREN)
10208    }
10209    #[inline]
10210    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10211        support::token(&self.syntax, SyntaxKind::R_PAREN)
10212    }
10213    #[inline]
10214    pub fn in_token(&self) -> Option<SyntaxToken> {
10215        support::token(&self.syntax, SyntaxKind::IN_KW)
10216    }
10217}
10218
10219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10220pub struct EventTriggerWhenClause {
10221    pub(crate) syntax: SyntaxNode,
10222}
10223impl EventTriggerWhenClause {
10224    #[inline]
10225    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
10226        support::children(&self.syntax)
10227    }
10228    #[inline]
10229    pub fn when_token(&self) -> Option<SyntaxToken> {
10230        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10231    }
10232}
10233
10234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10235pub struct ExceptTableClause {
10236    pub(crate) syntax: SyntaxNode,
10237}
10238impl ExceptTableClause {
10239    #[inline]
10240    pub fn except_table_names(&self) -> AstChildren<ExceptTableName> {
10241        support::children(&self.syntax)
10242    }
10243    #[inline]
10244    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10245        support::token(&self.syntax, SyntaxKind::L_PAREN)
10246    }
10247    #[inline]
10248    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10249        support::token(&self.syntax, SyntaxKind::R_PAREN)
10250    }
10251    #[inline]
10252    pub fn except_token(&self) -> Option<SyntaxToken> {
10253        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
10254    }
10255    #[inline]
10256    pub fn table_token(&self) -> Option<SyntaxToken> {
10257        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10258    }
10259}
10260
10261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10262pub struct ExceptTableName {
10263    pub(crate) syntax: SyntaxNode,
10264}
10265impl ExceptTableName {
10266    #[inline]
10267    pub fn relation_name(&self) -> Option<RelationName> {
10268        support::child(&self.syntax)
10269    }
10270    #[inline]
10271    pub fn table_token(&self) -> Option<SyntaxToken> {
10272        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10273    }
10274}
10275
10276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10277pub struct ExceptTables {
10278    pub(crate) syntax: SyntaxNode,
10279}
10280impl ExceptTables {
10281    #[inline]
10282    pub fn name_refs(&self) -> AstChildren<NameRef> {
10283        support::children(&self.syntax)
10284    }
10285    #[inline]
10286    pub fn except_token(&self) -> Option<SyntaxToken> {
10287        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
10288    }
10289}
10290
10291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10292pub struct ExcludeConstraint {
10293    pub(crate) syntax: SyntaxNode,
10294}
10295impl ExcludeConstraint {
10296    #[inline]
10297    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
10298        support::child(&self.syntax)
10299    }
10300    #[inline]
10301    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
10302        support::child(&self.syntax)
10303    }
10304    #[inline]
10305    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
10306        support::child(&self.syntax)
10307    }
10308    #[inline]
10309    pub fn constraint_index_tablespace(&self) -> Option<ConstraintIndexTablespace> {
10310        support::child(&self.syntax)
10311    }
10312    #[inline]
10313    pub fn constraint_name(&self) -> Option<ConstraintName> {
10314        support::child(&self.syntax)
10315    }
10316    #[inline]
10317    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
10318        support::child(&self.syntax)
10319    }
10320    #[inline]
10321    pub fn with_params(&self) -> Option<WithParams> {
10322        support::child(&self.syntax)
10323    }
10324    #[inline]
10325    pub fn exclude_token(&self) -> Option<SyntaxToken> {
10326        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
10327    }
10328}
10329
10330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10331pub struct Exclusive {
10332    pub(crate) syntax: SyntaxNode,
10333}
10334impl Exclusive {
10335    #[inline]
10336    pub fn exclusive_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::EXCLUSIVE_KW)
10338    }
10339}
10340
10341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10342pub struct Execute {
10343    pub(crate) syntax: SyntaxNode,
10344}
10345impl Execute {
10346    #[inline]
10347    pub fn arg_list(&self) -> Option<ArgList> {
10348        support::child(&self.syntax)
10349    }
10350    #[inline]
10351    pub fn name_ref(&self) -> Option<NameRef> {
10352        support::child(&self.syntax)
10353    }
10354    #[inline]
10355    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10356        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10357    }
10358    #[inline]
10359    pub fn execute_token(&self) -> Option<SyntaxToken> {
10360        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
10361    }
10362}
10363
10364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10365pub struct ExistsFn {
10366    pub(crate) syntax: SyntaxNode,
10367}
10368impl ExistsFn {
10369    #[inline]
10370    pub fn select_variant(&self) -> Option<SelectVariant> {
10371        support::child(&self.syntax)
10372    }
10373    #[inline]
10374    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10375        support::token(&self.syntax, SyntaxKind::L_PAREN)
10376    }
10377    #[inline]
10378    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10379        support::token(&self.syntax, SyntaxKind::R_PAREN)
10380    }
10381    #[inline]
10382    pub fn exists_token(&self) -> Option<SyntaxToken> {
10383        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10384    }
10385}
10386
10387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10388pub struct Explain {
10389    pub(crate) syntax: SyntaxNode,
10390}
10391impl Explain {
10392    #[inline]
10393    pub fn explain_option_list(&self) -> Option<ExplainOptionList> {
10394        support::child(&self.syntax)
10395    }
10396    #[inline]
10397    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
10398        support::child(&self.syntax)
10399    }
10400    #[inline]
10401    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10402        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10403    }
10404    #[inline]
10405    pub fn analyse_token(&self) -> Option<SyntaxToken> {
10406        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
10407    }
10408    #[inline]
10409    pub fn analyze_token(&self) -> Option<SyntaxToken> {
10410        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
10411    }
10412    #[inline]
10413    pub fn explain_token(&self) -> Option<SyntaxToken> {
10414        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
10415    }
10416    #[inline]
10417    pub fn verbose_token(&self) -> Option<SyntaxToken> {
10418        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
10419    }
10420}
10421
10422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10423pub struct ExplainOption {
10424    pub(crate) syntax: SyntaxNode,
10425}
10426impl ExplainOption {
10427    #[inline]
10428    pub fn explain_option_value(&self) -> Option<ExplainOptionValue> {
10429        support::child(&self.syntax)
10430    }
10431    #[inline]
10432    pub fn name(&self) -> Option<Name> {
10433        support::child(&self.syntax)
10434    }
10435}
10436
10437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10438pub struct ExplainOptionList {
10439    pub(crate) syntax: SyntaxNode,
10440}
10441impl ExplainOptionList {
10442    #[inline]
10443    pub fn explain_options(&self) -> AstChildren<ExplainOption> {
10444        support::children(&self.syntax)
10445    }
10446    #[inline]
10447    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10448        support::token(&self.syntax, SyntaxKind::L_PAREN)
10449    }
10450    #[inline]
10451    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10452        support::token(&self.syntax, SyntaxKind::R_PAREN)
10453    }
10454}
10455
10456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10457pub struct ExplainOptionValue {
10458    pub(crate) syntax: SyntaxNode,
10459}
10460impl ExplainOptionValue {
10461    #[inline]
10462    pub fn literal(&self) -> Option<Literal> {
10463        support::child(&self.syntax)
10464    }
10465    #[inline]
10466    pub fn binary_token(&self) -> Option<SyntaxToken> {
10467        support::token(&self.syntax, SyntaxKind::BINARY_KW)
10468    }
10469    #[inline]
10470    pub fn ident_token(&self) -> Option<SyntaxToken> {
10471        support::token(&self.syntax, SyntaxKind::IDENT)
10472    }
10473    #[inline]
10474    pub fn json_token(&self) -> Option<SyntaxToken> {
10475        support::token(&self.syntax, SyntaxKind::JSON_KW)
10476    }
10477    #[inline]
10478    pub fn none_token(&self) -> Option<SyntaxToken> {
10479        support::token(&self.syntax, SyntaxKind::NONE_KW)
10480    }
10481    #[inline]
10482    pub fn text_token(&self) -> Option<SyntaxToken> {
10483        support::token(&self.syntax, SyntaxKind::TEXT_KW)
10484    }
10485    #[inline]
10486    pub fn xml_token(&self) -> Option<SyntaxToken> {
10487        support::token(&self.syntax, SyntaxKind::XML_KW)
10488    }
10489}
10490
10491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10492pub struct ExprAsName {
10493    pub(crate) syntax: SyntaxNode,
10494}
10495impl ExprAsName {
10496    #[inline]
10497    pub fn as_name(&self) -> Option<AsName> {
10498        support::child(&self.syntax)
10499    }
10500    #[inline]
10501    pub fn expr(&self) -> Option<Expr> {
10502        support::child(&self.syntax)
10503    }
10504}
10505
10506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10507pub struct ExprAsNameList {
10508    pub(crate) syntax: SyntaxNode,
10509}
10510impl ExprAsNameList {
10511    #[inline]
10512    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
10513        support::children(&self.syntax)
10514    }
10515}
10516
10517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10518pub struct ExprFollowing {
10519    pub(crate) syntax: SyntaxNode,
10520}
10521impl ExprFollowing {
10522    #[inline]
10523    pub fn expr(&self) -> Option<Expr> {
10524        support::child(&self.syntax)
10525    }
10526    #[inline]
10527    pub fn following_token(&self) -> Option<SyntaxToken> {
10528        support::token(&self.syntax, SyntaxKind::FOLLOWING_KW)
10529    }
10530}
10531
10532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10533pub struct ExprPreceding {
10534    pub(crate) syntax: SyntaxNode,
10535}
10536impl ExprPreceding {
10537    #[inline]
10538    pub fn expr(&self) -> Option<Expr> {
10539        support::child(&self.syntax)
10540    }
10541    #[inline]
10542    pub fn preceding_token(&self) -> Option<SyntaxToken> {
10543        support::token(&self.syntax, SyntaxKind::PRECEDING_KW)
10544    }
10545}
10546
10547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10548pub struct ExprType {
10549    pub(crate) syntax: SyntaxNode,
10550}
10551impl ExprType {
10552    #[inline]
10553    pub fn expr(&self) -> Option<Expr> {
10554        support::child(&self.syntax)
10555    }
10556}
10557
10558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10559pub struct ExtractFn {
10560    pub(crate) syntax: SyntaxNode,
10561}
10562impl ExtractFn {
10563    #[inline]
10564    pub fn expr(&self) -> Option<Expr> {
10565        support::child(&self.syntax)
10566    }
10567    #[inline]
10568    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10569        support::token(&self.syntax, SyntaxKind::L_PAREN)
10570    }
10571    #[inline]
10572    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10573        support::token(&self.syntax, SyntaxKind::R_PAREN)
10574    }
10575    #[inline]
10576    pub fn day_token(&self) -> Option<SyntaxToken> {
10577        support::token(&self.syntax, SyntaxKind::DAY_KW)
10578    }
10579    #[inline]
10580    pub fn extract_token(&self) -> Option<SyntaxToken> {
10581        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
10582    }
10583    #[inline]
10584    pub fn from_token(&self) -> Option<SyntaxToken> {
10585        support::token(&self.syntax, SyntaxKind::FROM_KW)
10586    }
10587    #[inline]
10588    pub fn hour_token(&self) -> Option<SyntaxToken> {
10589        support::token(&self.syntax, SyntaxKind::HOUR_KW)
10590    }
10591    #[inline]
10592    pub fn ident_token(&self) -> Option<SyntaxToken> {
10593        support::token(&self.syntax, SyntaxKind::IDENT)
10594    }
10595    #[inline]
10596    pub fn minute_token(&self) -> Option<SyntaxToken> {
10597        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
10598    }
10599    #[inline]
10600    pub fn month_token(&self) -> Option<SyntaxToken> {
10601        support::token(&self.syntax, SyntaxKind::MONTH_KW)
10602    }
10603    #[inline]
10604    pub fn second_token(&self) -> Option<SyntaxToken> {
10605        support::token(&self.syntax, SyntaxKind::SECOND_KW)
10606    }
10607    #[inline]
10608    pub fn string_token(&self) -> Option<SyntaxToken> {
10609        support::token(&self.syntax, SyntaxKind::STRING_KW)
10610    }
10611    #[inline]
10612    pub fn year_token(&self) -> Option<SyntaxToken> {
10613        support::token(&self.syntax, SyntaxKind::YEAR_KW)
10614    }
10615}
10616
10617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10618pub struct FatArrow {
10619    pub(crate) syntax: SyntaxNode,
10620}
10621impl FatArrow {
10622    #[inline]
10623    pub fn eq_token(&self) -> Option<SyntaxToken> {
10624        support::token(&self.syntax, SyntaxKind::EQ)
10625    }
10626    #[inline]
10627    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10628        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10629    }
10630}
10631
10632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10633pub struct FdwOption {
10634    pub(crate) syntax: SyntaxNode,
10635}
10636impl FdwOption {
10637    #[inline]
10638    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
10639        support::child(&self.syntax)
10640    }
10641    #[inline]
10642    pub fn path(&self) -> Option<Path> {
10643        support::child(&self.syntax)
10644    }
10645    #[inline]
10646    pub fn connection_token(&self) -> Option<SyntaxToken> {
10647        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
10648    }
10649    #[inline]
10650    pub fn handler_token(&self) -> Option<SyntaxToken> {
10651        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
10652    }
10653    #[inline]
10654    pub fn no_token(&self) -> Option<SyntaxToken> {
10655        support::token(&self.syntax, SyntaxKind::NO_KW)
10656    }
10657    #[inline]
10658    pub fn validator_token(&self) -> Option<SyntaxToken> {
10659        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
10660    }
10661}
10662
10663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10664pub struct FdwOptionList {
10665    pub(crate) syntax: SyntaxNode,
10666}
10667impl FdwOptionList {
10668    #[inline]
10669    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
10670        support::children(&self.syntax)
10671    }
10672}
10673
10674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10675pub struct Fetch {
10676    pub(crate) syntax: SyntaxNode,
10677}
10678impl Fetch {
10679    #[inline]
10680    pub fn absolute(&self) -> Option<Absolute> {
10681        support::child(&self.syntax)
10682    }
10683    #[inline]
10684    pub fn all(&self) -> Option<All> {
10685        support::child(&self.syntax)
10686    }
10687    #[inline]
10688    pub fn backward(&self) -> Option<Backward> {
10689        support::child(&self.syntax)
10690    }
10691    #[inline]
10692    pub fn expr(&self) -> Option<Expr> {
10693        support::child(&self.syntax)
10694    }
10695    #[inline]
10696    pub fn first(&self) -> Option<First> {
10697        support::child(&self.syntax)
10698    }
10699    #[inline]
10700    pub fn forward(&self) -> Option<Forward> {
10701        support::child(&self.syntax)
10702    }
10703    #[inline]
10704    pub fn last(&self) -> Option<Last> {
10705        support::child(&self.syntax)
10706    }
10707    #[inline]
10708    pub fn name_ref(&self) -> Option<NameRef> {
10709        support::child(&self.syntax)
10710    }
10711    #[inline]
10712    pub fn next(&self) -> Option<Next> {
10713        support::child(&self.syntax)
10714    }
10715    #[inline]
10716    pub fn prior(&self) -> Option<Prior> {
10717        support::child(&self.syntax)
10718    }
10719    #[inline]
10720    pub fn relative(&self) -> Option<Relative> {
10721        support::child(&self.syntax)
10722    }
10723    #[inline]
10724    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10725        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10726    }
10727    #[inline]
10728    pub fn fetch_token(&self) -> Option<SyntaxToken> {
10729        support::token(&self.syntax, SyntaxKind::FETCH_KW)
10730    }
10731    #[inline]
10732    pub fn from_token(&self) -> Option<SyntaxToken> {
10733        support::token(&self.syntax, SyntaxKind::FROM_KW)
10734    }
10735    #[inline]
10736    pub fn in_token(&self) -> Option<SyntaxToken> {
10737        support::token(&self.syntax, SyntaxKind::IN_KW)
10738    }
10739}
10740
10741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10742pub struct FetchClause {
10743    pub(crate) syntax: SyntaxNode,
10744}
10745impl FetchClause {
10746    #[inline]
10747    pub fn expr(&self) -> Option<Expr> {
10748        support::child(&self.syntax)
10749    }
10750    #[inline]
10751    pub fn fetch_token(&self) -> Option<SyntaxToken> {
10752        support::token(&self.syntax, SyntaxKind::FETCH_KW)
10753    }
10754    #[inline]
10755    pub fn first_token(&self) -> Option<SyntaxToken> {
10756        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10757    }
10758    #[inline]
10759    pub fn next_token(&self) -> Option<SyntaxToken> {
10760        support::token(&self.syntax, SyntaxKind::NEXT_KW)
10761    }
10762    #[inline]
10763    pub fn only_token(&self) -> Option<SyntaxToken> {
10764        support::token(&self.syntax, SyntaxKind::ONLY_KW)
10765    }
10766    #[inline]
10767    pub fn row_token(&self) -> Option<SyntaxToken> {
10768        support::token(&self.syntax, SyntaxKind::ROW_KW)
10769    }
10770    #[inline]
10771    pub fn rows_token(&self) -> Option<SyntaxToken> {
10772        support::token(&self.syntax, SyntaxKind::ROWS_KW)
10773    }
10774    #[inline]
10775    pub fn ties_token(&self) -> Option<SyntaxToken> {
10776        support::token(&self.syntax, SyntaxKind::TIES_KW)
10777    }
10778    #[inline]
10779    pub fn with_token(&self) -> Option<SyntaxToken> {
10780        support::token(&self.syntax, SyntaxKind::WITH_KW)
10781    }
10782}
10783
10784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10785pub struct FieldExpr {
10786    pub(crate) syntax: SyntaxNode,
10787}
10788impl FieldExpr {
10789    #[inline]
10790    pub fn star_token(&self) -> Option<SyntaxToken> {
10791        support::token(&self.syntax, SyntaxKind::STAR)
10792    }
10793    #[inline]
10794    pub fn dot_token(&self) -> Option<SyntaxToken> {
10795        support::token(&self.syntax, SyntaxKind::DOT)
10796    }
10797}
10798
10799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10800pub struct FilterClause {
10801    pub(crate) syntax: SyntaxNode,
10802}
10803impl FilterClause {
10804    #[inline]
10805    pub fn expr(&self) -> Option<Expr> {
10806        support::child(&self.syntax)
10807    }
10808    #[inline]
10809    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10810        support::token(&self.syntax, SyntaxKind::L_PAREN)
10811    }
10812    #[inline]
10813    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10814        support::token(&self.syntax, SyntaxKind::R_PAREN)
10815    }
10816    #[inline]
10817    pub fn filter_token(&self) -> Option<SyntaxToken> {
10818        support::token(&self.syntax, SyntaxKind::FILTER_KW)
10819    }
10820    #[inline]
10821    pub fn where_token(&self) -> Option<SyntaxToken> {
10822        support::token(&self.syntax, SyntaxKind::WHERE_KW)
10823    }
10824}
10825
10826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10827pub struct First {
10828    pub(crate) syntax: SyntaxNode,
10829}
10830impl First {
10831    #[inline]
10832    pub fn first_token(&self) -> Option<SyntaxToken> {
10833        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10834    }
10835}
10836
10837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10838pub struct ForKeyShare {
10839    pub(crate) syntax: SyntaxNode,
10840}
10841impl ForKeyShare {
10842    #[inline]
10843    pub fn key_token(&self) -> Option<SyntaxToken> {
10844        support::token(&self.syntax, SyntaxKind::KEY_KW)
10845    }
10846    #[inline]
10847    pub fn share_token(&self) -> Option<SyntaxToken> {
10848        support::token(&self.syntax, SyntaxKind::SHARE_KW)
10849    }
10850}
10851
10852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10853pub struct ForNoKeyUpdate {
10854    pub(crate) syntax: SyntaxNode,
10855}
10856impl ForNoKeyUpdate {
10857    #[inline]
10858    pub fn key_token(&self) -> Option<SyntaxToken> {
10859        support::token(&self.syntax, SyntaxKind::KEY_KW)
10860    }
10861    #[inline]
10862    pub fn no_token(&self) -> Option<SyntaxToken> {
10863        support::token(&self.syntax, SyntaxKind::NO_KW)
10864    }
10865    #[inline]
10866    pub fn update_token(&self) -> Option<SyntaxToken> {
10867        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10868    }
10869}
10870
10871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10872pub struct ForPortionOf {
10873    pub(crate) syntax: SyntaxNode,
10874}
10875impl ForPortionOf {
10876    #[inline]
10877    pub fn expr(&self) -> Option<Expr> {
10878        support::child(&self.syntax)
10879    }
10880    #[inline]
10881    pub fn name_ref(&self) -> Option<NameRef> {
10882        support::child(&self.syntax)
10883    }
10884    #[inline]
10885    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10886        support::token(&self.syntax, SyntaxKind::L_PAREN)
10887    }
10888    #[inline]
10889    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10890        support::token(&self.syntax, SyntaxKind::R_PAREN)
10891    }
10892    #[inline]
10893    pub fn for_token(&self) -> Option<SyntaxToken> {
10894        support::token(&self.syntax, SyntaxKind::FOR_KW)
10895    }
10896    #[inline]
10897    pub fn from_token(&self) -> Option<SyntaxToken> {
10898        support::token(&self.syntax, SyntaxKind::FROM_KW)
10899    }
10900    #[inline]
10901    pub fn of_token(&self) -> Option<SyntaxToken> {
10902        support::token(&self.syntax, SyntaxKind::OF_KW)
10903    }
10904    #[inline]
10905    pub fn portion_token(&self) -> Option<SyntaxToken> {
10906        support::token(&self.syntax, SyntaxKind::PORTION_KW)
10907    }
10908    #[inline]
10909    pub fn to_token(&self) -> Option<SyntaxToken> {
10910        support::token(&self.syntax, SyntaxKind::TO_KW)
10911    }
10912}
10913
10914#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10915pub struct ForProvider {
10916    pub(crate) syntax: SyntaxNode,
10917}
10918impl ForProvider {
10919    #[inline]
10920    pub fn literal(&self) -> Option<Literal> {
10921        support::child(&self.syntax)
10922    }
10923    #[inline]
10924    pub fn name_ref(&self) -> Option<NameRef> {
10925        support::child(&self.syntax)
10926    }
10927    #[inline]
10928    pub fn for_token(&self) -> Option<SyntaxToken> {
10929        support::token(&self.syntax, SyntaxKind::FOR_KW)
10930    }
10931}
10932
10933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10934pub struct ForShare {
10935    pub(crate) syntax: SyntaxNode,
10936}
10937impl ForShare {
10938    #[inline]
10939    pub fn share_token(&self) -> Option<SyntaxToken> {
10940        support::token(&self.syntax, SyntaxKind::SHARE_KW)
10941    }
10942}
10943
10944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10945pub struct ForUpdate {
10946    pub(crate) syntax: SyntaxNode,
10947}
10948impl ForUpdate {
10949    #[inline]
10950    pub fn update_token(&self) -> Option<SyntaxToken> {
10951        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10952    }
10953}
10954
10955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10956pub struct ForceRls {
10957    pub(crate) syntax: SyntaxNode,
10958}
10959impl ForceRls {
10960    #[inline]
10961    pub fn force_token(&self) -> Option<SyntaxToken> {
10962        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10963    }
10964    #[inline]
10965    pub fn level_token(&self) -> Option<SyntaxToken> {
10966        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10967    }
10968    #[inline]
10969    pub fn row_token(&self) -> Option<SyntaxToken> {
10970        support::token(&self.syntax, SyntaxKind::ROW_KW)
10971    }
10972    #[inline]
10973    pub fn security_token(&self) -> Option<SyntaxToken> {
10974        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10975    }
10976}
10977
10978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10979pub struct ForeignKeyConstraint {
10980    pub(crate) syntax: SyntaxNode,
10981}
10982impl ForeignKeyConstraint {
10983    #[inline]
10984    pub fn constraint_name(&self) -> Option<ConstraintName> {
10985        support::child(&self.syntax)
10986    }
10987    #[inline]
10988    pub fn match_type(&self) -> Option<MatchType> {
10989        support::child(&self.syntax)
10990    }
10991    #[inline]
10992    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
10993        support::child(&self.syntax)
10994    }
10995    #[inline]
10996    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
10997        support::child(&self.syntax)
10998    }
10999    #[inline]
11000    pub fn path(&self) -> Option<Path> {
11001        support::child(&self.syntax)
11002    }
11003    #[inline]
11004    pub fn foreign_token(&self) -> Option<SyntaxToken> {
11005        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
11006    }
11007    #[inline]
11008    pub fn key_token(&self) -> Option<SyntaxToken> {
11009        support::token(&self.syntax, SyntaxKind::KEY_KW)
11010    }
11011    #[inline]
11012    pub fn references_token(&self) -> Option<SyntaxToken> {
11013        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
11014    }
11015}
11016
11017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11018pub struct Forward {
11019    pub(crate) syntax: SyntaxNode,
11020}
11021impl Forward {
11022    #[inline]
11023    pub fn expr(&self) -> Option<Expr> {
11024        support::child(&self.syntax)
11025    }
11026    #[inline]
11027    pub fn all_token(&self) -> Option<SyntaxToken> {
11028        support::token(&self.syntax, SyntaxKind::ALL_KW)
11029    }
11030    #[inline]
11031    pub fn forward_token(&self) -> Option<SyntaxToken> {
11032        support::token(&self.syntax, SyntaxKind::FORWARD_KW)
11033    }
11034}
11035
11036#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11037pub struct FrameBetween {
11038    pub(crate) syntax: SyntaxNode,
11039}
11040impl FrameBetween {
11041    #[inline]
11042    pub fn and_token(&self) -> Option<SyntaxToken> {
11043        support::token(&self.syntax, SyntaxKind::AND_KW)
11044    }
11045    #[inline]
11046    pub fn between_token(&self) -> Option<SyntaxToken> {
11047        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
11048    }
11049}
11050
11051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11052pub struct FrameClause {
11053    pub(crate) syntax: SyntaxNode,
11054}
11055impl FrameClause {
11056    #[inline]
11057    pub fn frame_between(&self) -> Option<FrameBetween> {
11058        support::child(&self.syntax)
11059    }
11060    #[inline]
11061    pub fn frame_bound(&self) -> Option<FrameBound> {
11062        support::child(&self.syntax)
11063    }
11064    #[inline]
11065    pub fn frame_exclude(&self) -> Option<FrameExclude> {
11066        support::child(&self.syntax)
11067    }
11068    #[inline]
11069    pub fn groups_token(&self) -> Option<SyntaxToken> {
11070        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
11071    }
11072    #[inline]
11073    pub fn range_token(&self) -> Option<SyntaxToken> {
11074        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11075    }
11076    #[inline]
11077    pub fn rows_token(&self) -> Option<SyntaxToken> {
11078        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11079    }
11080}
11081
11082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11083pub struct FrameExclude {
11084    pub(crate) syntax: SyntaxNode,
11085}
11086impl FrameExclude {
11087    #[inline]
11088    pub fn current_row(&self) -> Option<CurrentRow> {
11089        support::child(&self.syntax)
11090    }
11091    #[inline]
11092    pub fn group(&self) -> Option<Group> {
11093        support::child(&self.syntax)
11094    }
11095    #[inline]
11096    pub fn no_others(&self) -> Option<NoOthers> {
11097        support::child(&self.syntax)
11098    }
11099    #[inline]
11100    pub fn ties(&self) -> Option<Ties> {
11101        support::child(&self.syntax)
11102    }
11103    #[inline]
11104    pub fn exclude_token(&self) -> Option<SyntaxToken> {
11105        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
11106    }
11107}
11108
11109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11110pub struct FromClause {
11111    pub(crate) syntax: SyntaxNode,
11112}
11113impl FromClause {
11114    #[inline]
11115    pub fn from_items(&self) -> AstChildren<FromItem> {
11116        support::children(&self.syntax)
11117    }
11118    #[inline]
11119    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
11120        support::children(&self.syntax)
11121    }
11122    #[inline]
11123    pub fn from_token(&self) -> Option<SyntaxToken> {
11124        support::token(&self.syntax, SyntaxKind::FROM_KW)
11125    }
11126}
11127
11128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11129pub struct FromItem {
11130    pub(crate) syntax: SyntaxNode,
11131}
11132impl FromItem {
11133    #[inline]
11134    pub fn alias(&self) -> Option<Alias> {
11135        support::child(&self.syntax)
11136    }
11137    #[inline]
11138    pub fn call_expr(&self) -> Option<CallExpr> {
11139        support::child(&self.syntax)
11140    }
11141    #[inline]
11142    pub fn cast_expr(&self) -> Option<CastExpr> {
11143        support::child(&self.syntax)
11144    }
11145    #[inline]
11146    pub fn field_expr(&self) -> Option<FieldExpr> {
11147        support::child(&self.syntax)
11148    }
11149    #[inline]
11150    pub fn json_table(&self) -> Option<JsonTable> {
11151        support::child(&self.syntax)
11152    }
11153    #[inline]
11154    pub fn name_ref(&self) -> Option<NameRef> {
11155        support::child(&self.syntax)
11156    }
11157    #[inline]
11158    pub fn paren_expr(&self) -> Option<ParenExpr> {
11159        support::child(&self.syntax)
11160    }
11161    #[inline]
11162    pub fn paren_select(&self) -> Option<ParenSelect> {
11163        support::child(&self.syntax)
11164    }
11165    #[inline]
11166    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
11167        support::child(&self.syntax)
11168    }
11169    #[inline]
11170    pub fn xml_table(&self) -> Option<XmlTable> {
11171        support::child(&self.syntax)
11172    }
11173    #[inline]
11174    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11175        support::token(&self.syntax, SyntaxKind::L_PAREN)
11176    }
11177    #[inline]
11178    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11179        support::token(&self.syntax, SyntaxKind::R_PAREN)
11180    }
11181    #[inline]
11182    pub fn star_token(&self) -> Option<SyntaxToken> {
11183        support::token(&self.syntax, SyntaxKind::STAR)
11184    }
11185    #[inline]
11186    pub fn from_token(&self) -> Option<SyntaxToken> {
11187        support::token(&self.syntax, SyntaxKind::FROM_KW)
11188    }
11189    #[inline]
11190    pub fn lateral_token(&self) -> Option<SyntaxToken> {
11191        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
11192    }
11193    #[inline]
11194    pub fn only_token(&self) -> Option<SyntaxToken> {
11195        support::token(&self.syntax, SyntaxKind::ONLY_KW)
11196    }
11197    #[inline]
11198    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11199        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11200    }
11201    #[inline]
11202    pub fn rows_token(&self) -> Option<SyntaxToken> {
11203        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11204    }
11205    #[inline]
11206    pub fn with_token(&self) -> Option<SyntaxToken> {
11207        support::token(&self.syntax, SyntaxKind::WITH_KW)
11208    }
11209}
11210
11211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11212pub struct FromTable {
11213    pub(crate) syntax: SyntaxNode,
11214}
11215impl FromTable {
11216    #[inline]
11217    pub fn path(&self) -> Option<Path> {
11218        support::child(&self.syntax)
11219    }
11220    #[inline]
11221    pub fn from_token(&self) -> Option<SyntaxToken> {
11222        support::token(&self.syntax, SyntaxKind::FROM_KW)
11223    }
11224}
11225
11226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11227pub struct FuncOptionList {
11228    pub(crate) syntax: SyntaxNode,
11229}
11230impl FuncOptionList {
11231    #[inline]
11232    pub fn options(&self) -> AstChildren<FuncOption> {
11233        support::children(&self.syntax)
11234    }
11235}
11236
11237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11238pub struct FunctionSig {
11239    pub(crate) syntax: SyntaxNode,
11240}
11241impl FunctionSig {
11242    #[inline]
11243    pub fn param_list(&self) -> Option<ParamList> {
11244        support::child(&self.syntax)
11245    }
11246    #[inline]
11247    pub fn path(&self) -> Option<Path> {
11248        support::child(&self.syntax)
11249    }
11250}
11251
11252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11253pub struct FunctionSigList {
11254    pub(crate) syntax: SyntaxNode,
11255}
11256impl FunctionSigList {
11257    #[inline]
11258    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
11259        support::children(&self.syntax)
11260    }
11261}
11262
11263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11264pub struct GeneratedConstraint {
11265    pub(crate) syntax: SyntaxNode,
11266}
11267impl GeneratedConstraint {
11268    #[inline]
11269    pub fn constraint_name(&self) -> Option<ConstraintName> {
11270        support::child(&self.syntax)
11271    }
11272    #[inline]
11273    pub fn expr(&self) -> Option<Expr> {
11274        support::child(&self.syntax)
11275    }
11276    #[inline]
11277    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
11278        support::child(&self.syntax)
11279    }
11280    #[inline]
11281    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11282        support::token(&self.syntax, SyntaxKind::L_PAREN)
11283    }
11284    #[inline]
11285    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11286        support::token(&self.syntax, SyntaxKind::R_PAREN)
11287    }
11288    #[inline]
11289    pub fn always_token(&self) -> Option<SyntaxToken> {
11290        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
11291    }
11292    #[inline]
11293    pub fn as_token(&self) -> Option<SyntaxToken> {
11294        support::token(&self.syntax, SyntaxKind::AS_KW)
11295    }
11296    #[inline]
11297    pub fn by_token(&self) -> Option<SyntaxToken> {
11298        support::token(&self.syntax, SyntaxKind::BY_KW)
11299    }
11300    #[inline]
11301    pub fn default_token(&self) -> Option<SyntaxToken> {
11302        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11303    }
11304    #[inline]
11305    pub fn generated_token(&self) -> Option<SyntaxToken> {
11306        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11307    }
11308    #[inline]
11309    pub fn identity_token(&self) -> Option<SyntaxToken> {
11310        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11311    }
11312    #[inline]
11313    pub fn stored_token(&self) -> Option<SyntaxToken> {
11314        support::token(&self.syntax, SyntaxKind::STORED_KW)
11315    }
11316    #[inline]
11317    pub fn virtual_token(&self) -> Option<SyntaxToken> {
11318        support::token(&self.syntax, SyntaxKind::VIRTUAL_KW)
11319    }
11320}
11321
11322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11323pub struct Grant {
11324    pub(crate) syntax: SyntaxNode,
11325}
11326impl Grant {
11327    #[inline]
11328    pub fn column_list(&self) -> Option<ColumnList> {
11329        support::child(&self.syntax)
11330    }
11331    #[inline]
11332    pub fn grant_with_clause(&self) -> Option<GrantWithClause> {
11333        support::child(&self.syntax)
11334    }
11335    #[inline]
11336    pub fn privilege_objects(&self) -> Option<PrivilegeObjects> {
11337        support::child(&self.syntax)
11338    }
11339    #[inline]
11340    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
11341        support::child(&self.syntax)
11342    }
11343    #[inline]
11344    pub fn role_ref(&self) -> Option<RoleRef> {
11345        support::child(&self.syntax)
11346    }
11347    #[inline]
11348    pub fn role_ref_list(&self) -> Option<RoleRefList> {
11349        support::child(&self.syntax)
11350    }
11351    #[inline]
11352    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
11353        support::token(&self.syntax, SyntaxKind::SEMICOLON)
11354    }
11355    #[inline]
11356    pub fn all_token(&self) -> Option<SyntaxToken> {
11357        support::token(&self.syntax, SyntaxKind::ALL_KW)
11358    }
11359    #[inline]
11360    pub fn by_token(&self) -> Option<SyntaxToken> {
11361        support::token(&self.syntax, SyntaxKind::BY_KW)
11362    }
11363    #[inline]
11364    pub fn grant_token(&self) -> Option<SyntaxToken> {
11365        support::token(&self.syntax, SyntaxKind::GRANT_KW)
11366    }
11367    #[inline]
11368    pub fn granted_token(&self) -> Option<SyntaxToken> {
11369        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
11370    }
11371    #[inline]
11372    pub fn on_token(&self) -> Option<SyntaxToken> {
11373        support::token(&self.syntax, SyntaxKind::ON_KW)
11374    }
11375    #[inline]
11376    pub fn privileges_token(&self) -> Option<SyntaxToken> {
11377        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
11378    }
11379    #[inline]
11380    pub fn to_token(&self) -> Option<SyntaxToken> {
11381        support::token(&self.syntax, SyntaxKind::TO_KW)
11382    }
11383}
11384
11385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11386pub struct GrantDefaultPrivileges {
11387    pub(crate) syntax: SyntaxNode,
11388}
11389impl GrantDefaultPrivileges {
11390    #[inline]
11391    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
11392        support::child(&self.syntax)
11393    }
11394    #[inline]
11395    pub fn privileges(&self) -> Option<Privileges> {
11396        support::child(&self.syntax)
11397    }
11398    #[inline]
11399    pub fn role_ref_list(&self) -> Option<RoleRefList> {
11400        support::child(&self.syntax)
11401    }
11402    #[inline]
11403    pub fn grant_token(&self) -> Option<SyntaxToken> {
11404        support::token(&self.syntax, SyntaxKind::GRANT_KW)
11405    }
11406    #[inline]
11407    pub fn on_token(&self) -> Option<SyntaxToken> {
11408        support::token(&self.syntax, SyntaxKind::ON_KW)
11409    }
11410    #[inline]
11411    pub fn option_token(&self) -> Option<SyntaxToken> {
11412        support::token(&self.syntax, SyntaxKind::OPTION_KW)
11413    }
11414    #[inline]
11415    pub fn to_token(&self) -> Option<SyntaxToken> {
11416        support::token(&self.syntax, SyntaxKind::TO_KW)
11417    }
11418    #[inline]
11419    pub fn with_token(&self) -> Option<SyntaxToken> {
11420        support::token(&self.syntax, SyntaxKind::WITH_KW)
11421    }
11422}
11423
11424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11425pub struct GrantRoleOption {
11426    pub(crate) syntax: SyntaxNode,
11427}
11428impl GrantRoleOption {
11429    #[inline]
11430    pub fn name(&self) -> Option<Name> {
11431        support::child(&self.syntax)
11432    }
11433    #[inline]
11434    pub fn false_token(&self) -> Option<SyntaxToken> {
11435        support::token(&self.syntax, SyntaxKind::FALSE_KW)
11436    }
11437    #[inline]
11438    pub fn option_token(&self) -> Option<SyntaxToken> {
11439        support::token(&self.syntax, SyntaxKind::OPTION_KW)
11440    }
11441    #[inline]
11442    pub fn true_token(&self) -> Option<SyntaxToken> {
11443        support::token(&self.syntax, SyntaxKind::TRUE_KW)
11444    }
11445}
11446
11447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11448pub struct GrantRoleOptionList {
11449    pub(crate) syntax: SyntaxNode,
11450}
11451impl GrantRoleOptionList {
11452    #[inline]
11453    pub fn grant_role_options(&self) -> AstChildren<GrantRoleOption> {
11454        support::children(&self.syntax)
11455    }
11456}
11457
11458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11459pub struct GrantWithClause {
11460    pub(crate) syntax: SyntaxNode,
11461}
11462impl GrantWithClause {
11463    #[inline]
11464    pub fn grant_role_option_list(&self) -> Option<GrantRoleOptionList> {
11465        support::child(&self.syntax)
11466    }
11467    #[inline]
11468    pub fn grant_token(&self) -> Option<SyntaxToken> {
11469        support::token(&self.syntax, SyntaxKind::GRANT_KW)
11470    }
11471    #[inline]
11472    pub fn option_token(&self) -> Option<SyntaxToken> {
11473        support::token(&self.syntax, SyntaxKind::OPTION_KW)
11474    }
11475    #[inline]
11476    pub fn with_token(&self) -> Option<SyntaxToken> {
11477        support::token(&self.syntax, SyntaxKind::WITH_KW)
11478    }
11479}
11480
11481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11482pub struct GraphPatternQualifier {
11483    pub(crate) syntax: SyntaxNode,
11484}
11485impl GraphPatternQualifier {
11486    #[inline]
11487    pub fn literal(&self) -> Option<Literal> {
11488        support::child(&self.syntax)
11489    }
11490    #[inline]
11491    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
11492        support::token(&self.syntax, SyntaxKind::L_CURLY)
11493    }
11494    #[inline]
11495    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
11496        support::token(&self.syntax, SyntaxKind::R_CURLY)
11497    }
11498    #[inline]
11499    pub fn comma_token(&self) -> Option<SyntaxToken> {
11500        support::token(&self.syntax, SyntaxKind::COMMA)
11501    }
11502}
11503
11504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11505pub struct GraphTableFn {
11506    pub(crate) syntax: SyntaxNode,
11507}
11508impl GraphTableFn {
11509    #[inline]
11510    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
11511        support::child(&self.syntax)
11512    }
11513    #[inline]
11514    pub fn path(&self) -> Option<Path> {
11515        support::child(&self.syntax)
11516    }
11517    #[inline]
11518    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
11519        support::child(&self.syntax)
11520    }
11521    #[inline]
11522    pub fn where_clause(&self) -> Option<WhereClause> {
11523        support::child(&self.syntax)
11524    }
11525    #[inline]
11526    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11527        support::token(&self.syntax, SyntaxKind::L_PAREN)
11528    }
11529    #[inline]
11530    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11531        support::token(&self.syntax, SyntaxKind::R_PAREN)
11532    }
11533    #[inline]
11534    pub fn columns_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11536    }
11537    #[inline]
11538    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
11539        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
11540    }
11541    #[inline]
11542    pub fn match_token(&self) -> Option<SyntaxToken> {
11543        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11544    }
11545}
11546
11547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11548pub struct Group {
11549    pub(crate) syntax: SyntaxNode,
11550}
11551impl Group {
11552    #[inline]
11553    pub fn group_token(&self) -> Option<SyntaxToken> {
11554        support::token(&self.syntax, SyntaxKind::GROUP_KW)
11555    }
11556}
11557
11558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11559pub struct GroupByClause {
11560    pub(crate) syntax: SyntaxNode,
11561}
11562impl GroupByClause {
11563    #[inline]
11564    pub fn group_by_list(&self) -> Option<GroupByList> {
11565        support::child(&self.syntax)
11566    }
11567    #[inline]
11568    pub fn all_token(&self) -> Option<SyntaxToken> {
11569        support::token(&self.syntax, SyntaxKind::ALL_KW)
11570    }
11571    #[inline]
11572    pub fn by_token(&self) -> Option<SyntaxToken> {
11573        support::token(&self.syntax, SyntaxKind::BY_KW)
11574    }
11575    #[inline]
11576    pub fn distinct_token(&self) -> Option<SyntaxToken> {
11577        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
11578    }
11579    #[inline]
11580    pub fn group_token(&self) -> Option<SyntaxToken> {
11581        support::token(&self.syntax, SyntaxKind::GROUP_KW)
11582    }
11583}
11584
11585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11586pub struct GroupByList {
11587    pub(crate) syntax: SyntaxNode,
11588}
11589impl GroupByList {
11590    #[inline]
11591    pub fn group_bys(&self) -> AstChildren<GroupBy> {
11592        support::children(&self.syntax)
11593    }
11594}
11595
11596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11597pub struct GroupingCube {
11598    pub(crate) syntax: SyntaxNode,
11599}
11600impl GroupingCube {
11601    #[inline]
11602    pub fn exprs(&self) -> AstChildren<Expr> {
11603        support::children(&self.syntax)
11604    }
11605    #[inline]
11606    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11607        support::token(&self.syntax, SyntaxKind::L_PAREN)
11608    }
11609    #[inline]
11610    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11611        support::token(&self.syntax, SyntaxKind::R_PAREN)
11612    }
11613    #[inline]
11614    pub fn cube_token(&self) -> Option<SyntaxToken> {
11615        support::token(&self.syntax, SyntaxKind::CUBE_KW)
11616    }
11617}
11618
11619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11620pub struct GroupingExpr {
11621    pub(crate) syntax: SyntaxNode,
11622}
11623impl GroupingExpr {
11624    #[inline]
11625    pub fn expr(&self) -> Option<Expr> {
11626        support::child(&self.syntax)
11627    }
11628}
11629
11630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11631pub struct GroupingRollup {
11632    pub(crate) syntax: SyntaxNode,
11633}
11634impl GroupingRollup {
11635    #[inline]
11636    pub fn exprs(&self) -> AstChildren<Expr> {
11637        support::children(&self.syntax)
11638    }
11639    #[inline]
11640    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11641        support::token(&self.syntax, SyntaxKind::L_PAREN)
11642    }
11643    #[inline]
11644    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11645        support::token(&self.syntax, SyntaxKind::R_PAREN)
11646    }
11647    #[inline]
11648    pub fn rollup_token(&self) -> Option<SyntaxToken> {
11649        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
11650    }
11651}
11652
11653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11654pub struct GroupingSets {
11655    pub(crate) syntax: SyntaxNode,
11656}
11657impl GroupingSets {
11658    #[inline]
11659    pub fn group_bys(&self) -> AstChildren<GroupBy> {
11660        support::children(&self.syntax)
11661    }
11662    #[inline]
11663    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11664        support::token(&self.syntax, SyntaxKind::L_PAREN)
11665    }
11666    #[inline]
11667    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11668        support::token(&self.syntax, SyntaxKind::R_PAREN)
11669    }
11670    #[inline]
11671    pub fn grouping_token(&self) -> Option<SyntaxToken> {
11672        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
11673    }
11674    #[inline]
11675    pub fn sets_token(&self) -> Option<SyntaxToken> {
11676        support::token(&self.syntax, SyntaxKind::SETS_KW)
11677    }
11678}
11679
11680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11681pub struct Gteq {
11682    pub(crate) syntax: SyntaxNode,
11683}
11684impl Gteq {
11685    #[inline]
11686    pub fn eq_token(&self) -> Option<SyntaxToken> {
11687        support::token(&self.syntax, SyntaxKind::EQ)
11688    }
11689    #[inline]
11690    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11691        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11692    }
11693}
11694
11695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11696pub struct HandlerClause {
11697    pub(crate) syntax: SyntaxNode,
11698}
11699impl HandlerClause {
11700    #[inline]
11701    pub fn path(&self) -> Option<Path> {
11702        support::child(&self.syntax)
11703    }
11704    #[inline]
11705    pub fn handler_token(&self) -> Option<SyntaxToken> {
11706        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
11707    }
11708}
11709
11710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11711pub struct HavingClause {
11712    pub(crate) syntax: SyntaxNode,
11713}
11714impl HavingClause {
11715    #[inline]
11716    pub fn expr(&self) -> Option<Expr> {
11717        support::child(&self.syntax)
11718    }
11719    #[inline]
11720    pub fn having_token(&self) -> Option<SyntaxToken> {
11721        support::token(&self.syntax, SyntaxKind::HAVING_KW)
11722    }
11723}
11724
11725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11726pub struct IfExists {
11727    pub(crate) syntax: SyntaxNode,
11728}
11729impl IfExists {
11730    #[inline]
11731    pub fn exists_token(&self) -> Option<SyntaxToken> {
11732        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11733    }
11734    #[inline]
11735    pub fn if_token(&self) -> Option<SyntaxToken> {
11736        support::token(&self.syntax, SyntaxKind::IF_KW)
11737    }
11738}
11739
11740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11741pub struct IfNotExists {
11742    pub(crate) syntax: SyntaxNode,
11743}
11744impl IfNotExists {
11745    #[inline]
11746    pub fn exists_token(&self) -> Option<SyntaxToken> {
11747        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11748    }
11749    #[inline]
11750    pub fn if_token(&self) -> Option<SyntaxToken> {
11751        support::token(&self.syntax, SyntaxKind::IF_KW)
11752    }
11753    #[inline]
11754    pub fn not_token(&self) -> Option<SyntaxToken> {
11755        support::token(&self.syntax, SyntaxKind::NOT_KW)
11756    }
11757}
11758
11759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11760pub struct ImportForeignSchema {
11761    pub(crate) syntax: SyntaxNode,
11762}
11763impl ImportForeignSchema {
11764    #[inline]
11765    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
11766        support::child(&self.syntax)
11767    }
11768    #[inline]
11769    pub fn except_tables(&self) -> Option<ExceptTables> {
11770        support::child(&self.syntax)
11771    }
11772    #[inline]
11773    pub fn into_schema(&self) -> Option<IntoSchema> {
11774        support::child(&self.syntax)
11775    }
11776    #[inline]
11777    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
11778        support::child(&self.syntax)
11779    }
11780    #[inline]
11781    pub fn name_ref(&self) -> Option<NameRef> {
11782        support::child(&self.syntax)
11783    }
11784    #[inline]
11785    pub fn server_name(&self) -> Option<ServerName> {
11786        support::child(&self.syntax)
11787    }
11788    #[inline]
11789    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
11790        support::token(&self.syntax, SyntaxKind::SEMICOLON)
11791    }
11792    #[inline]
11793    pub fn foreign_token(&self) -> Option<SyntaxToken> {
11794        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
11795    }
11796    #[inline]
11797    pub fn from_token(&self) -> Option<SyntaxToken> {
11798        support::token(&self.syntax, SyntaxKind::FROM_KW)
11799    }
11800    #[inline]
11801    pub fn import_token(&self) -> Option<SyntaxToken> {
11802        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
11803    }
11804    #[inline]
11805    pub fn schema_token(&self) -> Option<SyntaxToken> {
11806        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
11807    }
11808}
11809
11810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11811pub struct IndexExpr {
11812    pub(crate) syntax: SyntaxNode,
11813}
11814impl IndexExpr {
11815    #[inline]
11816    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
11817        support::token(&self.syntax, SyntaxKind::L_BRACK)
11818    }
11819    #[inline]
11820    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
11821        support::token(&self.syntax, SyntaxKind::R_BRACK)
11822    }
11823}
11824
11825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11826pub struct Inherit {
11827    pub(crate) syntax: SyntaxNode,
11828}
11829impl Inherit {
11830    #[inline]
11831    pub fn path(&self) -> Option<Path> {
11832        support::child(&self.syntax)
11833    }
11834    #[inline]
11835    pub fn inherit_token(&self) -> Option<SyntaxToken> {
11836        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
11837    }
11838}
11839
11840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11841pub struct InheritTable {
11842    pub(crate) syntax: SyntaxNode,
11843}
11844impl InheritTable {
11845    #[inline]
11846    pub fn path(&self) -> Option<Path> {
11847        support::child(&self.syntax)
11848    }
11849    #[inline]
11850    pub fn inherit_token(&self) -> Option<SyntaxToken> {
11851        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
11852    }
11853}
11854
11855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11856pub struct Inherits {
11857    pub(crate) syntax: SyntaxNode,
11858}
11859impl Inherits {
11860    #[inline]
11861    pub fn paths(&self) -> AstChildren<Path> {
11862        support::children(&self.syntax)
11863    }
11864    #[inline]
11865    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11866        support::token(&self.syntax, SyntaxKind::L_PAREN)
11867    }
11868    #[inline]
11869    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11870        support::token(&self.syntax, SyntaxKind::R_PAREN)
11871    }
11872    #[inline]
11873    pub fn inherits_token(&self) -> Option<SyntaxToken> {
11874        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
11875    }
11876}
11877
11878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11879pub struct InitiallyDeferredConstraintOption {
11880    pub(crate) syntax: SyntaxNode,
11881}
11882impl InitiallyDeferredConstraintOption {
11883    #[inline]
11884    pub fn deferred_token(&self) -> Option<SyntaxToken> {
11885        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
11886    }
11887    #[inline]
11888    pub fn initially_token(&self) -> Option<SyntaxToken> {
11889        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
11890    }
11891}
11892
11893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11894pub struct InitiallyImmediateConstraintOption {
11895    pub(crate) syntax: SyntaxNode,
11896}
11897impl InitiallyImmediateConstraintOption {
11898    #[inline]
11899    pub fn immediate_token(&self) -> Option<SyntaxToken> {
11900        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
11901    }
11902    #[inline]
11903    pub fn initially_token(&self) -> Option<SyntaxToken> {
11904        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
11905    }
11906}
11907
11908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11909pub struct Insert {
11910    pub(crate) syntax: SyntaxNode,
11911}
11912impl Insert {
11913    #[inline]
11914    pub fn alias(&self) -> Option<Alias> {
11915        support::child(&self.syntax)
11916    }
11917    #[inline]
11918    pub fn column_list(&self) -> Option<ColumnList> {
11919        support::child(&self.syntax)
11920    }
11921    #[inline]
11922    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
11923        support::child(&self.syntax)
11924    }
11925    #[inline]
11926    pub fn path(&self) -> Option<Path> {
11927        support::child(&self.syntax)
11928    }
11929    #[inline]
11930    pub fn returning_clause(&self) -> Option<ReturningClause> {
11931        support::child(&self.syntax)
11932    }
11933    #[inline]
11934    pub fn select_variant(&self) -> Option<SelectVariant> {
11935        support::child(&self.syntax)
11936    }
11937    #[inline]
11938    pub fn with_clause(&self) -> Option<WithClause> {
11939        support::child(&self.syntax)
11940    }
11941    #[inline]
11942    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
11943        support::token(&self.syntax, SyntaxKind::SEMICOLON)
11944    }
11945    #[inline]
11946    pub fn default_token(&self) -> Option<SyntaxToken> {
11947        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11948    }
11949    #[inline]
11950    pub fn insert_token(&self) -> Option<SyntaxToken> {
11951        support::token(&self.syntax, SyntaxKind::INSERT_KW)
11952    }
11953    #[inline]
11954    pub fn into_token(&self) -> Option<SyntaxToken> {
11955        support::token(&self.syntax, SyntaxKind::INTO_KW)
11956    }
11957    #[inline]
11958    pub fn overriding_token(&self) -> Option<SyntaxToken> {
11959        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
11960    }
11961    #[inline]
11962    pub fn system_token(&self) -> Option<SyntaxToken> {
11963        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
11964    }
11965    #[inline]
11966    pub fn user_token(&self) -> Option<SyntaxToken> {
11967        support::token(&self.syntax, SyntaxKind::USER_KW)
11968    }
11969    #[inline]
11970    pub fn value_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11972    }
11973    #[inline]
11974    pub fn values_token(&self) -> Option<SyntaxToken> {
11975        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11976    }
11977}
11978
11979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11980pub struct IntervalType {
11981    pub(crate) syntax: SyntaxNode,
11982}
11983impl IntervalType {
11984    #[inline]
11985    pub fn literal(&self) -> Option<Literal> {
11986        support::child(&self.syntax)
11987    }
11988    #[inline]
11989    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11990        support::token(&self.syntax, SyntaxKind::L_PAREN)
11991    }
11992    #[inline]
11993    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::R_PAREN)
11995    }
11996    #[inline]
11997    pub fn day_token(&self) -> Option<SyntaxToken> {
11998        support::token(&self.syntax, SyntaxKind::DAY_KW)
11999    }
12000    #[inline]
12001    pub fn hour_token(&self) -> Option<SyntaxToken> {
12002        support::token(&self.syntax, SyntaxKind::HOUR_KW)
12003    }
12004    #[inline]
12005    pub fn interval_token(&self) -> Option<SyntaxToken> {
12006        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
12007    }
12008    #[inline]
12009    pub fn minute_token(&self) -> Option<SyntaxToken> {
12010        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
12011    }
12012    #[inline]
12013    pub fn month_token(&self) -> Option<SyntaxToken> {
12014        support::token(&self.syntax, SyntaxKind::MONTH_KW)
12015    }
12016    #[inline]
12017    pub fn second_token(&self) -> Option<SyntaxToken> {
12018        support::token(&self.syntax, SyntaxKind::SECOND_KW)
12019    }
12020    #[inline]
12021    pub fn setof_token(&self) -> Option<SyntaxToken> {
12022        support::token(&self.syntax, SyntaxKind::SETOF_KW)
12023    }
12024    #[inline]
12025    pub fn to_token(&self) -> Option<SyntaxToken> {
12026        support::token(&self.syntax, SyntaxKind::TO_KW)
12027    }
12028    #[inline]
12029    pub fn year_token(&self) -> Option<SyntaxToken> {
12030        support::token(&self.syntax, SyntaxKind::YEAR_KW)
12031    }
12032}
12033
12034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12035pub struct IntoClause {
12036    pub(crate) syntax: SyntaxNode,
12037}
12038impl IntoClause {
12039    #[inline]
12040    pub fn path(&self) -> Option<Path> {
12041        support::child(&self.syntax)
12042    }
12043    #[inline]
12044    pub fn persistence(&self) -> Option<Persistence> {
12045        support::child(&self.syntax)
12046    }
12047    #[inline]
12048    pub fn into_token(&self) -> Option<SyntaxToken> {
12049        support::token(&self.syntax, SyntaxKind::INTO_KW)
12050    }
12051    #[inline]
12052    pub fn table_token(&self) -> Option<SyntaxToken> {
12053        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12054    }
12055}
12056
12057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12058pub struct IntoSchema {
12059    pub(crate) syntax: SyntaxNode,
12060}
12061impl IntoSchema {
12062    #[inline]
12063    pub fn name_ref(&self) -> Option<NameRef> {
12064        support::child(&self.syntax)
12065    }
12066    #[inline]
12067    pub fn into_token(&self) -> Option<SyntaxToken> {
12068        support::token(&self.syntax, SyntaxKind::INTO_KW)
12069    }
12070}
12071
12072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12073pub struct IsDistinctFrom {
12074    pub(crate) syntax: SyntaxNode,
12075}
12076impl IsDistinctFrom {
12077    #[inline]
12078    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12079        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12080    }
12081    #[inline]
12082    pub fn from_token(&self) -> Option<SyntaxToken> {
12083        support::token(&self.syntax, SyntaxKind::FROM_KW)
12084    }
12085    #[inline]
12086    pub fn is_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::IS_KW)
12088    }
12089}
12090
12091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12092pub struct IsJson {
12093    pub(crate) syntax: SyntaxNode,
12094}
12095impl IsJson {
12096    #[inline]
12097    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12098        support::child(&self.syntax)
12099    }
12100    #[inline]
12101    pub fn is_token(&self) -> Option<SyntaxToken> {
12102        support::token(&self.syntax, SyntaxKind::IS_KW)
12103    }
12104    #[inline]
12105    pub fn json_token(&self) -> Option<SyntaxToken> {
12106        support::token(&self.syntax, SyntaxKind::JSON_KW)
12107    }
12108}
12109
12110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12111pub struct IsJsonArray {
12112    pub(crate) syntax: SyntaxNode,
12113}
12114impl IsJsonArray {
12115    #[inline]
12116    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12117        support::child(&self.syntax)
12118    }
12119    #[inline]
12120    pub fn array_token(&self) -> Option<SyntaxToken> {
12121        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
12122    }
12123    #[inline]
12124    pub fn is_token(&self) -> Option<SyntaxToken> {
12125        support::token(&self.syntax, SyntaxKind::IS_KW)
12126    }
12127    #[inline]
12128    pub fn json_token(&self) -> Option<SyntaxToken> {
12129        support::token(&self.syntax, SyntaxKind::JSON_KW)
12130    }
12131}
12132
12133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12134pub struct IsJsonObject {
12135    pub(crate) syntax: SyntaxNode,
12136}
12137impl IsJsonObject {
12138    #[inline]
12139    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12140        support::child(&self.syntax)
12141    }
12142    #[inline]
12143    pub fn is_token(&self) -> Option<SyntaxToken> {
12144        support::token(&self.syntax, SyntaxKind::IS_KW)
12145    }
12146    #[inline]
12147    pub fn json_token(&self) -> Option<SyntaxToken> {
12148        support::token(&self.syntax, SyntaxKind::JSON_KW)
12149    }
12150    #[inline]
12151    pub fn object_token(&self) -> Option<SyntaxToken> {
12152        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
12153    }
12154}
12155
12156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12157pub struct IsJsonScalar {
12158    pub(crate) syntax: SyntaxNode,
12159}
12160impl IsJsonScalar {
12161    #[inline]
12162    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12163        support::child(&self.syntax)
12164    }
12165    #[inline]
12166    pub fn is_token(&self) -> Option<SyntaxToken> {
12167        support::token(&self.syntax, SyntaxKind::IS_KW)
12168    }
12169    #[inline]
12170    pub fn json_token(&self) -> Option<SyntaxToken> {
12171        support::token(&self.syntax, SyntaxKind::JSON_KW)
12172    }
12173    #[inline]
12174    pub fn scalar_token(&self) -> Option<SyntaxToken> {
12175        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
12176    }
12177}
12178
12179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12180pub struct IsJsonValue {
12181    pub(crate) syntax: SyntaxNode,
12182}
12183impl IsJsonValue {
12184    #[inline]
12185    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12186        support::child(&self.syntax)
12187    }
12188    #[inline]
12189    pub fn is_token(&self) -> Option<SyntaxToken> {
12190        support::token(&self.syntax, SyntaxKind::IS_KW)
12191    }
12192    #[inline]
12193    pub fn json_token(&self) -> Option<SyntaxToken> {
12194        support::token(&self.syntax, SyntaxKind::JSON_KW)
12195    }
12196    #[inline]
12197    pub fn value_token(&self) -> Option<SyntaxToken> {
12198        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12199    }
12200}
12201
12202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12203pub struct IsLabel {
12204    pub(crate) syntax: SyntaxNode,
12205}
12206impl IsLabel {
12207    #[inline]
12208    pub fn expr(&self) -> Option<Expr> {
12209        support::child(&self.syntax)
12210    }
12211    #[inline]
12212    pub fn is_token(&self) -> Option<SyntaxToken> {
12213        support::token(&self.syntax, SyntaxKind::IS_KW)
12214    }
12215}
12216
12217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12218pub struct IsNormalized {
12219    pub(crate) syntax: SyntaxNode,
12220}
12221impl IsNormalized {
12222    #[inline]
12223    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
12224        support::child(&self.syntax)
12225    }
12226    #[inline]
12227    pub fn is_token(&self) -> Option<SyntaxToken> {
12228        support::token(&self.syntax, SyntaxKind::IS_KW)
12229    }
12230    #[inline]
12231    pub fn normalized_token(&self) -> Option<SyntaxToken> {
12232        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
12233    }
12234}
12235
12236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12237pub struct IsNot {
12238    pub(crate) syntax: SyntaxNode,
12239}
12240impl IsNot {
12241    #[inline]
12242    pub fn is_token(&self) -> Option<SyntaxToken> {
12243        support::token(&self.syntax, SyntaxKind::IS_KW)
12244    }
12245    #[inline]
12246    pub fn not_token(&self) -> Option<SyntaxToken> {
12247        support::token(&self.syntax, SyntaxKind::NOT_KW)
12248    }
12249}
12250
12251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12252pub struct IsNotDistinctFrom {
12253    pub(crate) syntax: SyntaxNode,
12254}
12255impl IsNotDistinctFrom {
12256    #[inline]
12257    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12258        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12259    }
12260    #[inline]
12261    pub fn from_token(&self) -> Option<SyntaxToken> {
12262        support::token(&self.syntax, SyntaxKind::FROM_KW)
12263    }
12264    #[inline]
12265    pub fn is_token(&self) -> Option<SyntaxToken> {
12266        support::token(&self.syntax, SyntaxKind::IS_KW)
12267    }
12268    #[inline]
12269    pub fn not_token(&self) -> Option<SyntaxToken> {
12270        support::token(&self.syntax, SyntaxKind::NOT_KW)
12271    }
12272}
12273
12274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12275pub struct IsNotJson {
12276    pub(crate) syntax: SyntaxNode,
12277}
12278impl IsNotJson {
12279    #[inline]
12280    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12281        support::child(&self.syntax)
12282    }
12283    #[inline]
12284    pub fn is_token(&self) -> Option<SyntaxToken> {
12285        support::token(&self.syntax, SyntaxKind::IS_KW)
12286    }
12287    #[inline]
12288    pub fn json_token(&self) -> Option<SyntaxToken> {
12289        support::token(&self.syntax, SyntaxKind::JSON_KW)
12290    }
12291    #[inline]
12292    pub fn not_token(&self) -> Option<SyntaxToken> {
12293        support::token(&self.syntax, SyntaxKind::NOT_KW)
12294    }
12295}
12296
12297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12298pub struct IsNotJsonArray {
12299    pub(crate) syntax: SyntaxNode,
12300}
12301impl IsNotJsonArray {
12302    #[inline]
12303    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12304        support::child(&self.syntax)
12305    }
12306    #[inline]
12307    pub fn array_token(&self) -> Option<SyntaxToken> {
12308        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
12309    }
12310    #[inline]
12311    pub fn is_token(&self) -> Option<SyntaxToken> {
12312        support::token(&self.syntax, SyntaxKind::IS_KW)
12313    }
12314    #[inline]
12315    pub fn json_token(&self) -> Option<SyntaxToken> {
12316        support::token(&self.syntax, SyntaxKind::JSON_KW)
12317    }
12318    #[inline]
12319    pub fn not_token(&self) -> Option<SyntaxToken> {
12320        support::token(&self.syntax, SyntaxKind::NOT_KW)
12321    }
12322}
12323
12324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12325pub struct IsNotJsonObject {
12326    pub(crate) syntax: SyntaxNode,
12327}
12328impl IsNotJsonObject {
12329    #[inline]
12330    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12331        support::child(&self.syntax)
12332    }
12333    #[inline]
12334    pub fn is_token(&self) -> Option<SyntaxToken> {
12335        support::token(&self.syntax, SyntaxKind::IS_KW)
12336    }
12337    #[inline]
12338    pub fn json_token(&self) -> Option<SyntaxToken> {
12339        support::token(&self.syntax, SyntaxKind::JSON_KW)
12340    }
12341    #[inline]
12342    pub fn not_token(&self) -> Option<SyntaxToken> {
12343        support::token(&self.syntax, SyntaxKind::NOT_KW)
12344    }
12345    #[inline]
12346    pub fn object_token(&self) -> Option<SyntaxToken> {
12347        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
12348    }
12349}
12350
12351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12352pub struct IsNotJsonScalar {
12353    pub(crate) syntax: SyntaxNode,
12354}
12355impl IsNotJsonScalar {
12356    #[inline]
12357    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12358        support::child(&self.syntax)
12359    }
12360    #[inline]
12361    pub fn is_token(&self) -> Option<SyntaxToken> {
12362        support::token(&self.syntax, SyntaxKind::IS_KW)
12363    }
12364    #[inline]
12365    pub fn json_token(&self) -> Option<SyntaxToken> {
12366        support::token(&self.syntax, SyntaxKind::JSON_KW)
12367    }
12368    #[inline]
12369    pub fn not_token(&self) -> Option<SyntaxToken> {
12370        support::token(&self.syntax, SyntaxKind::NOT_KW)
12371    }
12372    #[inline]
12373    pub fn scalar_token(&self) -> Option<SyntaxToken> {
12374        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
12375    }
12376}
12377
12378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12379pub struct IsNotJsonValue {
12380    pub(crate) syntax: SyntaxNode,
12381}
12382impl IsNotJsonValue {
12383    #[inline]
12384    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12385        support::child(&self.syntax)
12386    }
12387    #[inline]
12388    pub fn is_token(&self) -> Option<SyntaxToken> {
12389        support::token(&self.syntax, SyntaxKind::IS_KW)
12390    }
12391    #[inline]
12392    pub fn json_token(&self) -> Option<SyntaxToken> {
12393        support::token(&self.syntax, SyntaxKind::JSON_KW)
12394    }
12395    #[inline]
12396    pub fn not_token(&self) -> Option<SyntaxToken> {
12397        support::token(&self.syntax, SyntaxKind::NOT_KW)
12398    }
12399    #[inline]
12400    pub fn value_token(&self) -> Option<SyntaxToken> {
12401        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12402    }
12403}
12404
12405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12406pub struct IsNotNormalized {
12407    pub(crate) syntax: SyntaxNode,
12408}
12409impl IsNotNormalized {
12410    #[inline]
12411    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
12412        support::child(&self.syntax)
12413    }
12414    #[inline]
12415    pub fn is_token(&self) -> Option<SyntaxToken> {
12416        support::token(&self.syntax, SyntaxKind::IS_KW)
12417    }
12418    #[inline]
12419    pub fn normalized_token(&self) -> Option<SyntaxToken> {
12420        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
12421    }
12422    #[inline]
12423    pub fn not_token(&self) -> Option<SyntaxToken> {
12424        support::token(&self.syntax, SyntaxKind::NOT_KW)
12425    }
12426}
12427
12428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12429pub struct Join {
12430    pub(crate) syntax: SyntaxNode,
12431}
12432impl Join {
12433    #[inline]
12434    pub fn from_item(&self) -> Option<FromItem> {
12435        support::child(&self.syntax)
12436    }
12437    #[inline]
12438    pub fn join_type(&self) -> Option<JoinType> {
12439        support::child(&self.syntax)
12440    }
12441    #[inline]
12442    pub fn on_clause(&self) -> Option<OnClause> {
12443        support::child(&self.syntax)
12444    }
12445    #[inline]
12446    pub fn using_clause(&self) -> Option<JoinUsingClause> {
12447        support::child(&self.syntax)
12448    }
12449    #[inline]
12450    pub fn natural_token(&self) -> Option<SyntaxToken> {
12451        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
12452    }
12453}
12454
12455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12456pub struct JoinCross {
12457    pub(crate) syntax: SyntaxNode,
12458}
12459impl JoinCross {
12460    #[inline]
12461    pub fn cross_token(&self) -> Option<SyntaxToken> {
12462        support::token(&self.syntax, SyntaxKind::CROSS_KW)
12463    }
12464    #[inline]
12465    pub fn join_token(&self) -> Option<SyntaxToken> {
12466        support::token(&self.syntax, SyntaxKind::JOIN_KW)
12467    }
12468}
12469
12470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12471pub struct JoinExpr {
12472    pub(crate) syntax: SyntaxNode,
12473}
12474impl JoinExpr {
12475    #[inline]
12476    pub fn from_item(&self) -> Option<FromItem> {
12477        support::child(&self.syntax)
12478    }
12479    #[inline]
12480    pub fn join(&self) -> Option<Join> {
12481        support::child(&self.syntax)
12482    }
12483    #[inline]
12484    pub fn join_expr(&self) -> Option<JoinExpr> {
12485        support::child(&self.syntax)
12486    }
12487}
12488
12489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12490pub struct JoinFull {
12491    pub(crate) syntax: SyntaxNode,
12492}
12493impl JoinFull {
12494    #[inline]
12495    pub fn full_token(&self) -> Option<SyntaxToken> {
12496        support::token(&self.syntax, SyntaxKind::FULL_KW)
12497    }
12498    #[inline]
12499    pub fn join_token(&self) -> Option<SyntaxToken> {
12500        support::token(&self.syntax, SyntaxKind::JOIN_KW)
12501    }
12502    #[inline]
12503    pub fn outer_token(&self) -> Option<SyntaxToken> {
12504        support::token(&self.syntax, SyntaxKind::OUTER_KW)
12505    }
12506}
12507
12508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12509pub struct JoinInner {
12510    pub(crate) syntax: SyntaxNode,
12511}
12512impl JoinInner {
12513    #[inline]
12514    pub fn inner_token(&self) -> Option<SyntaxToken> {
12515        support::token(&self.syntax, SyntaxKind::INNER_KW)
12516    }
12517    #[inline]
12518    pub fn join_token(&self) -> Option<SyntaxToken> {
12519        support::token(&self.syntax, SyntaxKind::JOIN_KW)
12520    }
12521}
12522
12523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12524pub struct JoinLeft {
12525    pub(crate) syntax: SyntaxNode,
12526}
12527impl JoinLeft {
12528    #[inline]
12529    pub fn join_token(&self) -> Option<SyntaxToken> {
12530        support::token(&self.syntax, SyntaxKind::JOIN_KW)
12531    }
12532    #[inline]
12533    pub fn left_token(&self) -> Option<SyntaxToken> {
12534        support::token(&self.syntax, SyntaxKind::LEFT_KW)
12535    }
12536    #[inline]
12537    pub fn outer_token(&self) -> Option<SyntaxToken> {
12538        support::token(&self.syntax, SyntaxKind::OUTER_KW)
12539    }
12540}
12541
12542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12543pub struct JoinRight {
12544    pub(crate) syntax: SyntaxNode,
12545}
12546impl JoinRight {
12547    #[inline]
12548    pub fn join_token(&self) -> Option<SyntaxToken> {
12549        support::token(&self.syntax, SyntaxKind::JOIN_KW)
12550    }
12551    #[inline]
12552    pub fn outer_token(&self) -> Option<SyntaxToken> {
12553        support::token(&self.syntax, SyntaxKind::OUTER_KW)
12554    }
12555    #[inline]
12556    pub fn right_token(&self) -> Option<SyntaxToken> {
12557        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
12558    }
12559}
12560
12561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12562pub struct JoinUsingClause {
12563    pub(crate) syntax: SyntaxNode,
12564}
12565impl JoinUsingClause {
12566    #[inline]
12567    pub fn alias(&self) -> Option<Alias> {
12568        support::child(&self.syntax)
12569    }
12570    #[inline]
12571    pub fn column_list(&self) -> Option<ColumnList> {
12572        support::child(&self.syntax)
12573    }
12574    #[inline]
12575    pub fn using_token(&self) -> Option<SyntaxToken> {
12576        support::token(&self.syntax, SyntaxKind::USING_KW)
12577    }
12578}
12579
12580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12581pub struct JsonArrayAggFn {
12582    pub(crate) syntax: SyntaxNode,
12583}
12584impl JsonArrayAggFn {
12585    #[inline]
12586    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
12587        support::child(&self.syntax)
12588    }
12589    #[inline]
12590    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
12591        support::child(&self.syntax)
12592    }
12593    #[inline]
12594    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
12595        support::child(&self.syntax)
12596    }
12597    #[inline]
12598    pub fn order_by_clause(&self) -> Option<OrderByClause> {
12599        support::child(&self.syntax)
12600    }
12601    #[inline]
12602    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12603        support::token(&self.syntax, SyntaxKind::L_PAREN)
12604    }
12605    #[inline]
12606    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12607        support::token(&self.syntax, SyntaxKind::R_PAREN)
12608    }
12609    #[inline]
12610    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
12611        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
12612    }
12613}
12614
12615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12616pub struct JsonArrayFn {
12617    pub(crate) syntax: SyntaxNode,
12618}
12619impl JsonArrayFn {
12620    #[inline]
12621    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
12622        support::children(&self.syntax)
12623    }
12624    #[inline]
12625    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
12626        support::child(&self.syntax)
12627    }
12628    #[inline]
12629    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
12630        support::child(&self.syntax)
12631    }
12632    #[inline]
12633    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
12634        support::children(&self.syntax)
12635    }
12636    #[inline]
12637    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12638        support::token(&self.syntax, SyntaxKind::L_PAREN)
12639    }
12640    #[inline]
12641    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12642        support::token(&self.syntax, SyntaxKind::R_PAREN)
12643    }
12644    #[inline]
12645    pub fn json_array_token(&self) -> Option<SyntaxToken> {
12646        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
12647    }
12648}
12649
12650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12651pub struct JsonBehaviorDefault {
12652    pub(crate) syntax: SyntaxNode,
12653}
12654impl JsonBehaviorDefault {
12655    #[inline]
12656    pub fn expr(&self) -> Option<Expr> {
12657        support::child(&self.syntax)
12658    }
12659    #[inline]
12660    pub fn default_token(&self) -> Option<SyntaxToken> {
12661        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12662    }
12663}
12664
12665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12666pub struct JsonBehaviorEmptyArray {
12667    pub(crate) syntax: SyntaxNode,
12668}
12669impl JsonBehaviorEmptyArray {
12670    #[inline]
12671    pub fn array_token(&self) -> Option<SyntaxToken> {
12672        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
12673    }
12674    #[inline]
12675    pub fn empty_token(&self) -> Option<SyntaxToken> {
12676        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
12677    }
12678}
12679
12680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12681pub struct JsonBehaviorEmptyObject {
12682    pub(crate) syntax: SyntaxNode,
12683}
12684impl JsonBehaviorEmptyObject {
12685    #[inline]
12686    pub fn empty_token(&self) -> Option<SyntaxToken> {
12687        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
12688    }
12689    #[inline]
12690    pub fn object_token(&self) -> Option<SyntaxToken> {
12691        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
12692    }
12693}
12694
12695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12696pub struct JsonBehaviorError {
12697    pub(crate) syntax: SyntaxNode,
12698}
12699impl JsonBehaviorError {
12700    #[inline]
12701    pub fn error_token(&self) -> Option<SyntaxToken> {
12702        support::token(&self.syntax, SyntaxKind::ERROR_KW)
12703    }
12704}
12705
12706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12707pub struct JsonBehaviorFalse {
12708    pub(crate) syntax: SyntaxNode,
12709}
12710impl JsonBehaviorFalse {
12711    #[inline]
12712    pub fn false_token(&self) -> Option<SyntaxToken> {
12713        support::token(&self.syntax, SyntaxKind::FALSE_KW)
12714    }
12715}
12716
12717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12718pub struct JsonBehaviorNull {
12719    pub(crate) syntax: SyntaxNode,
12720}
12721impl JsonBehaviorNull {
12722    #[inline]
12723    pub fn null_token(&self) -> Option<SyntaxToken> {
12724        support::token(&self.syntax, SyntaxKind::NULL_KW)
12725    }
12726}
12727
12728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12729pub struct JsonBehaviorTrue {
12730    pub(crate) syntax: SyntaxNode,
12731}
12732impl JsonBehaviorTrue {
12733    #[inline]
12734    pub fn true_token(&self) -> Option<SyntaxToken> {
12735        support::token(&self.syntax, SyntaxKind::TRUE_KW)
12736    }
12737}
12738
12739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12740pub struct JsonBehaviorUnknown {
12741    pub(crate) syntax: SyntaxNode,
12742}
12743impl JsonBehaviorUnknown {
12744    #[inline]
12745    pub fn unknown_token(&self) -> Option<SyntaxToken> {
12746        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
12747    }
12748}
12749
12750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12751pub struct JsonEncodingClause {
12752    pub(crate) syntax: SyntaxNode,
12753}
12754impl JsonEncodingClause {
12755    #[inline]
12756    pub fn name_ref(&self) -> Option<NameRef> {
12757        support::child(&self.syntax)
12758    }
12759    #[inline]
12760    pub fn encoding_token(&self) -> Option<SyntaxToken> {
12761        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
12762    }
12763}
12764
12765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12766pub struct JsonExistsFn {
12767    pub(crate) syntax: SyntaxNode,
12768}
12769impl JsonExistsFn {
12770    #[inline]
12771    pub fn expr(&self) -> Option<Expr> {
12772        support::child(&self.syntax)
12773    }
12774    #[inline]
12775    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
12776        support::child(&self.syntax)
12777    }
12778    #[inline]
12779    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
12780        support::child(&self.syntax)
12781    }
12782    #[inline]
12783    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
12784        support::child(&self.syntax)
12785    }
12786    #[inline]
12787    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12788        support::token(&self.syntax, SyntaxKind::L_PAREN)
12789    }
12790    #[inline]
12791    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12792        support::token(&self.syntax, SyntaxKind::R_PAREN)
12793    }
12794    #[inline]
12795    pub fn comma_token(&self) -> Option<SyntaxToken> {
12796        support::token(&self.syntax, SyntaxKind::COMMA)
12797    }
12798    #[inline]
12799    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
12800        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
12801    }
12802}
12803
12804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12805pub struct JsonExprFormat {
12806    pub(crate) syntax: SyntaxNode,
12807}
12808impl JsonExprFormat {
12809    #[inline]
12810    pub fn expr(&self) -> Option<Expr> {
12811        support::child(&self.syntax)
12812    }
12813    #[inline]
12814    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
12815        support::child(&self.syntax)
12816    }
12817}
12818
12819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12820pub struct JsonFn {
12821    pub(crate) syntax: SyntaxNode,
12822}
12823impl JsonFn {
12824    #[inline]
12825    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
12826        support::child(&self.syntax)
12827    }
12828    #[inline]
12829    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12830        support::child(&self.syntax)
12831    }
12832    #[inline]
12833    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12834        support::token(&self.syntax, SyntaxKind::L_PAREN)
12835    }
12836    #[inline]
12837    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12838        support::token(&self.syntax, SyntaxKind::R_PAREN)
12839    }
12840    #[inline]
12841    pub fn json_token(&self) -> Option<SyntaxToken> {
12842        support::token(&self.syntax, SyntaxKind::JSON_KW)
12843    }
12844}
12845
12846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12847pub struct JsonFormatClause {
12848    pub(crate) syntax: SyntaxNode,
12849}
12850impl JsonFormatClause {
12851    #[inline]
12852    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
12853        support::child(&self.syntax)
12854    }
12855    #[inline]
12856    pub fn format_token(&self) -> Option<SyntaxToken> {
12857        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
12858    }
12859    #[inline]
12860    pub fn json_token(&self) -> Option<SyntaxToken> {
12861        support::token(&self.syntax, SyntaxKind::JSON_KW)
12862    }
12863}
12864
12865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12866pub struct JsonKeyValue {
12867    pub(crate) syntax: SyntaxNode,
12868}
12869impl JsonKeyValue {
12870    #[inline]
12871    pub fn expr(&self) -> Option<Expr> {
12872        support::child(&self.syntax)
12873    }
12874    #[inline]
12875    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
12876        support::child(&self.syntax)
12877    }
12878    #[inline]
12879    pub fn colon_token(&self) -> Option<SyntaxToken> {
12880        support::token(&self.syntax, SyntaxKind::COLON)
12881    }
12882    #[inline]
12883    pub fn value_token(&self) -> Option<SyntaxToken> {
12884        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12885    }
12886}
12887
12888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12889pub struct JsonKeysUniqueClause {
12890    pub(crate) syntax: SyntaxNode,
12891}
12892impl JsonKeysUniqueClause {
12893    #[inline]
12894    pub fn keys_token(&self) -> Option<SyntaxToken> {
12895        support::token(&self.syntax, SyntaxKind::KEYS_KW)
12896    }
12897    #[inline]
12898    pub fn unique_token(&self) -> Option<SyntaxToken> {
12899        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
12900    }
12901    #[inline]
12902    pub fn with_token(&self) -> Option<SyntaxToken> {
12903        support::token(&self.syntax, SyntaxKind::WITH_KW)
12904    }
12905    #[inline]
12906    pub fn without_token(&self) -> Option<SyntaxToken> {
12907        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
12908    }
12909}
12910
12911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12912pub struct JsonNullClause {
12913    pub(crate) syntax: SyntaxNode,
12914}
12915impl JsonNullClause {
12916    #[inline]
12917    pub fn absent_token(&self) -> Option<SyntaxToken> {
12918        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
12919    }
12920    #[inline]
12921    pub fn null_token(&self) -> Option<SyntaxToken> {
12922        support::token(&self.syntax, SyntaxKind::NULL_KW)
12923    }
12924    #[inline]
12925    pub fn on_token(&self) -> Option<SyntaxToken> {
12926        support::token(&self.syntax, SyntaxKind::ON_KW)
12927    }
12928}
12929
12930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12931pub struct JsonObjectAggFn {
12932    pub(crate) syntax: SyntaxNode,
12933}
12934impl JsonObjectAggFn {
12935    #[inline]
12936    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
12937        support::child(&self.syntax)
12938    }
12939    #[inline]
12940    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12941        support::child(&self.syntax)
12942    }
12943    #[inline]
12944    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
12945        support::child(&self.syntax)
12946    }
12947    #[inline]
12948    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
12949        support::child(&self.syntax)
12950    }
12951    #[inline]
12952    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12953        support::token(&self.syntax, SyntaxKind::L_PAREN)
12954    }
12955    #[inline]
12956    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12957        support::token(&self.syntax, SyntaxKind::R_PAREN)
12958    }
12959    #[inline]
12960    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
12961        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
12962    }
12963}
12964
12965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12966pub struct JsonObjectFn {
12967    pub(crate) syntax: SyntaxNode,
12968}
12969impl JsonObjectFn {
12970    #[inline]
12971    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
12972        support::children(&self.syntax)
12973    }
12974    #[inline]
12975    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
12976        support::child(&self.syntax)
12977    }
12978    #[inline]
12979    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
12980        support::child(&self.syntax)
12981    }
12982    #[inline]
12983    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
12984        support::child(&self.syntax)
12985    }
12986    #[inline]
12987    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12988        support::token(&self.syntax, SyntaxKind::L_PAREN)
12989    }
12990    #[inline]
12991    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12992        support::token(&self.syntax, SyntaxKind::R_PAREN)
12993    }
12994    #[inline]
12995    pub fn json_object_token(&self) -> Option<SyntaxToken> {
12996        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
12997    }
12998}
12999
13000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13001pub struct JsonOnEmptyClause {
13002    pub(crate) syntax: SyntaxNode,
13003}
13004impl JsonOnEmptyClause {
13005    #[inline]
13006    pub fn json_behavior(&self) -> Option<JsonBehavior> {
13007        support::child(&self.syntax)
13008    }
13009    #[inline]
13010    pub fn empty_token(&self) -> Option<SyntaxToken> {
13011        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
13012    }
13013    #[inline]
13014    pub fn on_token(&self) -> Option<SyntaxToken> {
13015        support::token(&self.syntax, SyntaxKind::ON_KW)
13016    }
13017}
13018
13019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13020pub struct JsonOnErrorClause {
13021    pub(crate) syntax: SyntaxNode,
13022}
13023impl JsonOnErrorClause {
13024    #[inline]
13025    pub fn json_behavior(&self) -> Option<JsonBehavior> {
13026        support::child(&self.syntax)
13027    }
13028    #[inline]
13029    pub fn error_token(&self) -> Option<SyntaxToken> {
13030        support::token(&self.syntax, SyntaxKind::ERROR_KW)
13031    }
13032    #[inline]
13033    pub fn on_token(&self) -> Option<SyntaxToken> {
13034        support::token(&self.syntax, SyntaxKind::ON_KW)
13035    }
13036}
13037
13038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13039pub struct JsonPassingArg {
13040    pub(crate) syntax: SyntaxNode,
13041}
13042impl JsonPassingArg {
13043    #[inline]
13044    pub fn expr(&self) -> Option<Expr> {
13045        support::child(&self.syntax)
13046    }
13047    #[inline]
13048    pub fn name(&self) -> Option<Name> {
13049        support::child(&self.syntax)
13050    }
13051    #[inline]
13052    pub fn as_token(&self) -> Option<SyntaxToken> {
13053        support::token(&self.syntax, SyntaxKind::AS_KW)
13054    }
13055}
13056
13057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13058pub struct JsonPassingClause {
13059    pub(crate) syntax: SyntaxNode,
13060}
13061impl JsonPassingClause {
13062    #[inline]
13063    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
13064        support::children(&self.syntax)
13065    }
13066    #[inline]
13067    pub fn passing_token(&self) -> Option<SyntaxToken> {
13068        support::token(&self.syntax, SyntaxKind::PASSING_KW)
13069    }
13070}
13071
13072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13073pub struct JsonPathClause {
13074    pub(crate) syntax: SyntaxNode,
13075}
13076impl JsonPathClause {
13077    #[inline]
13078    pub fn expr(&self) -> Option<Expr> {
13079        support::child(&self.syntax)
13080    }
13081    #[inline]
13082    pub fn path_token(&self) -> Option<SyntaxToken> {
13083        support::token(&self.syntax, SyntaxKind::PATH_KW)
13084    }
13085}
13086
13087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13088pub struct JsonQueryFn {
13089    pub(crate) syntax: SyntaxNode,
13090}
13091impl JsonQueryFn {
13092    #[inline]
13093    pub fn expr(&self) -> Option<Expr> {
13094        support::child(&self.syntax)
13095    }
13096    #[inline]
13097    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
13098        support::child(&self.syntax)
13099    }
13100    #[inline]
13101    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
13102        support::child(&self.syntax)
13103    }
13104    #[inline]
13105    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
13106        support::child(&self.syntax)
13107    }
13108    #[inline]
13109    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
13110        support::child(&self.syntax)
13111    }
13112    #[inline]
13113    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
13114        support::child(&self.syntax)
13115    }
13116    #[inline]
13117    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
13118        support::child(&self.syntax)
13119    }
13120    #[inline]
13121    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
13122        support::child(&self.syntax)
13123    }
13124    #[inline]
13125    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13126        support::token(&self.syntax, SyntaxKind::L_PAREN)
13127    }
13128    #[inline]
13129    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13130        support::token(&self.syntax, SyntaxKind::R_PAREN)
13131    }
13132    #[inline]
13133    pub fn comma_token(&self) -> Option<SyntaxToken> {
13134        support::token(&self.syntax, SyntaxKind::COMMA)
13135    }
13136    #[inline]
13137    pub fn json_query_token(&self) -> Option<SyntaxToken> {
13138        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
13139    }
13140}
13141
13142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13143pub struct JsonQuotesClause {
13144    pub(crate) syntax: SyntaxNode,
13145}
13146impl JsonQuotesClause {
13147    #[inline]
13148    pub fn keep_token(&self) -> Option<SyntaxToken> {
13149        support::token(&self.syntax, SyntaxKind::KEEP_KW)
13150    }
13151    #[inline]
13152    pub fn omit_token(&self) -> Option<SyntaxToken> {
13153        support::token(&self.syntax, SyntaxKind::OMIT_KW)
13154    }
13155    #[inline]
13156    pub fn on_token(&self) -> Option<SyntaxToken> {
13157        support::token(&self.syntax, SyntaxKind::ON_KW)
13158    }
13159    #[inline]
13160    pub fn quotes_token(&self) -> Option<SyntaxToken> {
13161        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
13162    }
13163    #[inline]
13164    pub fn scalar_token(&self) -> Option<SyntaxToken> {
13165        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
13166    }
13167    #[inline]
13168    pub fn string_token(&self) -> Option<SyntaxToken> {
13169        support::token(&self.syntax, SyntaxKind::STRING_KW)
13170    }
13171}
13172
13173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13174pub struct JsonReturningClause {
13175    pub(crate) syntax: SyntaxNode,
13176}
13177impl JsonReturningClause {
13178    #[inline]
13179    pub fn ty(&self) -> Option<Type> {
13180        support::child(&self.syntax)
13181    }
13182    #[inline]
13183    pub fn returning_token(&self) -> Option<SyntaxToken> {
13184        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
13185    }
13186}
13187
13188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13189pub struct JsonScalarFn {
13190    pub(crate) syntax: SyntaxNode,
13191}
13192impl JsonScalarFn {
13193    #[inline]
13194    pub fn expr(&self) -> Option<Expr> {
13195        support::child(&self.syntax)
13196    }
13197    #[inline]
13198    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13199        support::token(&self.syntax, SyntaxKind::L_PAREN)
13200    }
13201    #[inline]
13202    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13203        support::token(&self.syntax, SyntaxKind::R_PAREN)
13204    }
13205    #[inline]
13206    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
13207        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
13208    }
13209}
13210
13211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13212pub struct JsonSelectFormat {
13213    pub(crate) syntax: SyntaxNode,
13214}
13215impl JsonSelectFormat {
13216    #[inline]
13217    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
13218        support::child(&self.syntax)
13219    }
13220    #[inline]
13221    pub fn select_variant(&self) -> Option<SelectVariant> {
13222        support::child(&self.syntax)
13223    }
13224}
13225
13226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13227pub struct JsonSerializeFn {
13228    pub(crate) syntax: SyntaxNode,
13229}
13230impl JsonSerializeFn {
13231    #[inline]
13232    pub fn expr(&self) -> Option<Expr> {
13233        support::child(&self.syntax)
13234    }
13235    #[inline]
13236    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
13237        support::child(&self.syntax)
13238    }
13239    #[inline]
13240    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
13241        support::child(&self.syntax)
13242    }
13243    #[inline]
13244    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13245        support::token(&self.syntax, SyntaxKind::L_PAREN)
13246    }
13247    #[inline]
13248    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13249        support::token(&self.syntax, SyntaxKind::R_PAREN)
13250    }
13251    #[inline]
13252    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
13253        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
13254    }
13255}
13256
13257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13258pub struct JsonTable {
13259    pub(crate) syntax: SyntaxNode,
13260}
13261impl JsonTable {
13262    #[inline]
13263    pub fn expr(&self) -> Option<Expr> {
13264        support::child(&self.syntax)
13265    }
13266    #[inline]
13267    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
13268        support::child(&self.syntax)
13269    }
13270    #[inline]
13271    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
13272        support::child(&self.syntax)
13273    }
13274    #[inline]
13275    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
13276        support::child(&self.syntax)
13277    }
13278    #[inline]
13279    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
13280        support::child(&self.syntax)
13281    }
13282    #[inline]
13283    pub fn name(&self) -> Option<Name> {
13284        support::child(&self.syntax)
13285    }
13286    #[inline]
13287    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13288        support::token(&self.syntax, SyntaxKind::L_PAREN)
13289    }
13290    #[inline]
13291    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13292        support::token(&self.syntax, SyntaxKind::R_PAREN)
13293    }
13294    #[inline]
13295    pub fn comma_token(&self) -> Option<SyntaxToken> {
13296        support::token(&self.syntax, SyntaxKind::COMMA)
13297    }
13298    #[inline]
13299    pub fn as_token(&self) -> Option<SyntaxToken> {
13300        support::token(&self.syntax, SyntaxKind::AS_KW)
13301    }
13302    #[inline]
13303    pub fn json_table_token(&self) -> Option<SyntaxToken> {
13304        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
13305    }
13306}
13307
13308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13309pub struct JsonTableColumn {
13310    pub(crate) syntax: SyntaxNode,
13311}
13312impl JsonTableColumn {
13313    #[inline]
13314    pub fn expr(&self) -> Option<Expr> {
13315        support::child(&self.syntax)
13316    }
13317    #[inline]
13318    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
13319        support::child(&self.syntax)
13320    }
13321    #[inline]
13322    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
13323        support::child(&self.syntax)
13324    }
13325    #[inline]
13326    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
13327        support::child(&self.syntax)
13328    }
13329    #[inline]
13330    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
13331        support::child(&self.syntax)
13332    }
13333    #[inline]
13334    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
13335        support::child(&self.syntax)
13336    }
13337    #[inline]
13338    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
13339        support::child(&self.syntax)
13340    }
13341    #[inline]
13342    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
13343        support::child(&self.syntax)
13344    }
13345    #[inline]
13346    pub fn name(&self) -> Option<Name> {
13347        support::child(&self.syntax)
13348    }
13349    #[inline]
13350    pub fn ty(&self) -> Option<Type> {
13351        support::child(&self.syntax)
13352    }
13353    #[inline]
13354    pub fn as_token(&self) -> Option<SyntaxToken> {
13355        support::token(&self.syntax, SyntaxKind::AS_KW)
13356    }
13357    #[inline]
13358    pub fn exists_token(&self) -> Option<SyntaxToken> {
13359        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
13360    }
13361    #[inline]
13362    pub fn for_token(&self) -> Option<SyntaxToken> {
13363        support::token(&self.syntax, SyntaxKind::FOR_KW)
13364    }
13365    #[inline]
13366    pub fn nested_token(&self) -> Option<SyntaxToken> {
13367        support::token(&self.syntax, SyntaxKind::NESTED_KW)
13368    }
13369    #[inline]
13370    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
13371        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
13372    }
13373    #[inline]
13374    pub fn path_token(&self) -> Option<SyntaxToken> {
13375        support::token(&self.syntax, SyntaxKind::PATH_KW)
13376    }
13377}
13378
13379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13380pub struct JsonTableColumnList {
13381    pub(crate) syntax: SyntaxNode,
13382}
13383impl JsonTableColumnList {
13384    #[inline]
13385    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
13386        support::children(&self.syntax)
13387    }
13388    #[inline]
13389    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13390        support::token(&self.syntax, SyntaxKind::L_PAREN)
13391    }
13392    #[inline]
13393    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13394        support::token(&self.syntax, SyntaxKind::R_PAREN)
13395    }
13396    #[inline]
13397    pub fn columns_token(&self) -> Option<SyntaxToken> {
13398        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
13399    }
13400}
13401
13402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13403pub struct JsonValueExpr {
13404    pub(crate) syntax: SyntaxNode,
13405}
13406impl JsonValueExpr {
13407    #[inline]
13408    pub fn expr(&self) -> Option<Expr> {
13409        support::child(&self.syntax)
13410    }
13411    #[inline]
13412    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
13413        support::child(&self.syntax)
13414    }
13415}
13416
13417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13418pub struct JsonValueFn {
13419    pub(crate) syntax: SyntaxNode,
13420}
13421impl JsonValueFn {
13422    #[inline]
13423    pub fn expr(&self) -> Option<Expr> {
13424        support::child(&self.syntax)
13425    }
13426    #[inline]
13427    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
13428        support::child(&self.syntax)
13429    }
13430    #[inline]
13431    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
13432        support::child(&self.syntax)
13433    }
13434    #[inline]
13435    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
13436        support::child(&self.syntax)
13437    }
13438    #[inline]
13439    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
13440        support::child(&self.syntax)
13441    }
13442    #[inline]
13443    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
13444        support::child(&self.syntax)
13445    }
13446    #[inline]
13447    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13448        support::token(&self.syntax, SyntaxKind::L_PAREN)
13449    }
13450    #[inline]
13451    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13452        support::token(&self.syntax, SyntaxKind::R_PAREN)
13453    }
13454    #[inline]
13455    pub fn comma_token(&self) -> Option<SyntaxToken> {
13456        support::token(&self.syntax, SyntaxKind::COMMA)
13457    }
13458    #[inline]
13459    pub fn json_value_token(&self) -> Option<SyntaxToken> {
13460        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
13461    }
13462}
13463
13464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13465pub struct JsonWrapperBehaviorClause {
13466    pub(crate) syntax: SyntaxNode,
13467}
13468impl JsonWrapperBehaviorClause {
13469    #[inline]
13470    pub fn array_token(&self) -> Option<SyntaxToken> {
13471        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
13472    }
13473    #[inline]
13474    pub fn conditional_token(&self) -> Option<SyntaxToken> {
13475        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
13476    }
13477    #[inline]
13478    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
13479        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
13480    }
13481    #[inline]
13482    pub fn with_token(&self) -> Option<SyntaxToken> {
13483        support::token(&self.syntax, SyntaxKind::WITH_KW)
13484    }
13485    #[inline]
13486    pub fn without_token(&self) -> Option<SyntaxToken> {
13487        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
13488    }
13489    #[inline]
13490    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
13491        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
13492    }
13493}
13494
13495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13496pub struct LabelAndProperties {
13497    pub(crate) syntax: SyntaxNode,
13498}
13499impl LabelAndProperties {
13500    #[inline]
13501    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
13502        support::child(&self.syntax)
13503    }
13504    #[inline]
13505    pub fn name(&self) -> Option<Name> {
13506        support::child(&self.syntax)
13507    }
13508    #[inline]
13509    pub fn default_token(&self) -> Option<SyntaxToken> {
13510        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13511    }
13512    #[inline]
13513    pub fn label_token(&self) -> Option<SyntaxToken> {
13514        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13515    }
13516}
13517
13518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13519pub struct LabelAndPropertiesList {
13520    pub(crate) syntax: SyntaxNode,
13521}
13522impl LabelAndPropertiesList {
13523    #[inline]
13524    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
13525        support::children(&self.syntax)
13526    }
13527}
13528
13529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13530pub struct LanguageFuncOption {
13531    pub(crate) syntax: SyntaxNode,
13532}
13533impl LanguageFuncOption {
13534    #[inline]
13535    pub fn name_ref(&self) -> Option<NameRef> {
13536        support::child(&self.syntax)
13537    }
13538    #[inline]
13539    pub fn language_token(&self) -> Option<SyntaxToken> {
13540        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13541    }
13542}
13543
13544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13545pub struct Last {
13546    pub(crate) syntax: SyntaxNode,
13547}
13548impl Last {
13549    #[inline]
13550    pub fn last_token(&self) -> Option<SyntaxToken> {
13551        support::token(&self.syntax, SyntaxKind::LAST_KW)
13552    }
13553}
13554
13555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13556pub struct LeakproofFuncOption {
13557    pub(crate) syntax: SyntaxNode,
13558}
13559impl LeakproofFuncOption {
13560    #[inline]
13561    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
13562        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
13563    }
13564    #[inline]
13565    pub fn not_token(&self) -> Option<SyntaxToken> {
13566        support::token(&self.syntax, SyntaxKind::NOT_KW)
13567    }
13568}
13569
13570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13571pub struct LikeClause {
13572    pub(crate) syntax: SyntaxNode,
13573}
13574impl LikeClause {
13575    #[inline]
13576    pub fn like_options(&self) -> AstChildren<LikeOption> {
13577        support::children(&self.syntax)
13578    }
13579    #[inline]
13580    pub fn path(&self) -> Option<Path> {
13581        support::child(&self.syntax)
13582    }
13583    #[inline]
13584    pub fn like_token(&self) -> Option<SyntaxToken> {
13585        support::token(&self.syntax, SyntaxKind::LIKE_KW)
13586    }
13587}
13588
13589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13590pub struct LikeOption {
13591    pub(crate) syntax: SyntaxNode,
13592}
13593impl LikeOption {
13594    #[inline]
13595    pub fn all_token(&self) -> Option<SyntaxToken> {
13596        support::token(&self.syntax, SyntaxKind::ALL_KW)
13597    }
13598    #[inline]
13599    pub fn comments_token(&self) -> Option<SyntaxToken> {
13600        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
13601    }
13602    #[inline]
13603    pub fn compression_token(&self) -> Option<SyntaxToken> {
13604        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
13605    }
13606    #[inline]
13607    pub fn constraints_token(&self) -> Option<SyntaxToken> {
13608        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
13609    }
13610    #[inline]
13611    pub fn defaults_token(&self) -> Option<SyntaxToken> {
13612        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
13613    }
13614    #[inline]
13615    pub fn excluding_token(&self) -> Option<SyntaxToken> {
13616        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
13617    }
13618    #[inline]
13619    pub fn generated_token(&self) -> Option<SyntaxToken> {
13620        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
13621    }
13622    #[inline]
13623    pub fn identity_token(&self) -> Option<SyntaxToken> {
13624        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
13625    }
13626    #[inline]
13627    pub fn including_token(&self) -> Option<SyntaxToken> {
13628        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
13629    }
13630    #[inline]
13631    pub fn indexes_token(&self) -> Option<SyntaxToken> {
13632        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
13633    }
13634    #[inline]
13635    pub fn statistics_token(&self) -> Option<SyntaxToken> {
13636        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
13637    }
13638    #[inline]
13639    pub fn storage_token(&self) -> Option<SyntaxToken> {
13640        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
13641    }
13642}
13643
13644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13645pub struct LimitClause {
13646    pub(crate) syntax: SyntaxNode,
13647}
13648impl LimitClause {
13649    #[inline]
13650    pub fn expr(&self) -> Option<Expr> {
13651        support::child(&self.syntax)
13652    }
13653    #[inline]
13654    pub fn all_token(&self) -> Option<SyntaxToken> {
13655        support::token(&self.syntax, SyntaxKind::ALL_KW)
13656    }
13657    #[inline]
13658    pub fn limit_token(&self) -> Option<SyntaxToken> {
13659        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
13660    }
13661}
13662
13663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13664pub struct LimitToTables {
13665    pub(crate) syntax: SyntaxNode,
13666}
13667impl LimitToTables {
13668    #[inline]
13669    pub fn name_refs(&self) -> AstChildren<NameRef> {
13670        support::children(&self.syntax)
13671    }
13672    #[inline]
13673    pub fn limit_token(&self) -> Option<SyntaxToken> {
13674        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
13675    }
13676    #[inline]
13677    pub fn to_token(&self) -> Option<SyntaxToken> {
13678        support::token(&self.syntax, SyntaxKind::TO_KW)
13679    }
13680}
13681
13682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13683pub struct Listen {
13684    pub(crate) syntax: SyntaxNode,
13685}
13686impl Listen {
13687    #[inline]
13688    pub fn name(&self) -> Option<Name> {
13689        support::child(&self.syntax)
13690    }
13691    #[inline]
13692    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
13693        support::token(&self.syntax, SyntaxKind::SEMICOLON)
13694    }
13695    #[inline]
13696    pub fn listen_token(&self) -> Option<SyntaxToken> {
13697        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
13698    }
13699}
13700
13701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13702pub struct Literal {
13703    pub(crate) syntax: SyntaxNode,
13704}
13705impl Literal {}
13706
13707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13708pub struct Load {
13709    pub(crate) syntax: SyntaxNode,
13710}
13711impl Load {
13712    #[inline]
13713    pub fn literal(&self) -> Option<Literal> {
13714        support::child(&self.syntax)
13715    }
13716    #[inline]
13717    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
13718        support::token(&self.syntax, SyntaxKind::SEMICOLON)
13719    }
13720    #[inline]
13721    pub fn load_token(&self) -> Option<SyntaxToken> {
13722        support::token(&self.syntax, SyntaxKind::LOAD_KW)
13723    }
13724}
13725
13726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13727pub struct Lock {
13728    pub(crate) syntax: SyntaxNode,
13729}
13730impl Lock {
13731    #[inline]
13732    pub fn lock_mode(&self) -> Option<LockMode> {
13733        support::child(&self.syntax)
13734    }
13735    #[inline]
13736    pub fn table_list(&self) -> Option<TableList> {
13737        support::child(&self.syntax)
13738    }
13739    #[inline]
13740    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
13741        support::token(&self.syntax, SyntaxKind::SEMICOLON)
13742    }
13743    #[inline]
13744    pub fn in_token(&self) -> Option<SyntaxToken> {
13745        support::token(&self.syntax, SyntaxKind::IN_KW)
13746    }
13747    #[inline]
13748    pub fn lock_token(&self) -> Option<SyntaxToken> {
13749        support::token(&self.syntax, SyntaxKind::LOCK_KW)
13750    }
13751    #[inline]
13752    pub fn mode_token(&self) -> Option<SyntaxToken> {
13753        support::token(&self.syntax, SyntaxKind::MODE_KW)
13754    }
13755    #[inline]
13756    pub fn nowait_token(&self) -> Option<SyntaxToken> {
13757        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
13758    }
13759    #[inline]
13760    pub fn table_token(&self) -> Option<SyntaxToken> {
13761        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13762    }
13763}
13764
13765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13766pub struct LockingClause {
13767    pub(crate) syntax: SyntaxNode,
13768}
13769impl LockingClause {
13770    #[inline]
13771    pub fn exprs(&self) -> AstChildren<Expr> {
13772        support::children(&self.syntax)
13773    }
13774    #[inline]
13775    pub fn for_key_share(&self) -> Option<ForKeyShare> {
13776        support::child(&self.syntax)
13777    }
13778    #[inline]
13779    pub fn for_no_key_update(&self) -> Option<ForNoKeyUpdate> {
13780        support::child(&self.syntax)
13781    }
13782    #[inline]
13783    pub fn for_share(&self) -> Option<ForShare> {
13784        support::child(&self.syntax)
13785    }
13786    #[inline]
13787    pub fn for_update(&self) -> Option<ForUpdate> {
13788        support::child(&self.syntax)
13789    }
13790    #[inline]
13791    pub fn for_token(&self) -> Option<SyntaxToken> {
13792        support::token(&self.syntax, SyntaxKind::FOR_KW)
13793    }
13794    #[inline]
13795    pub fn locked_token(&self) -> Option<SyntaxToken> {
13796        support::token(&self.syntax, SyntaxKind::LOCKED_KW)
13797    }
13798    #[inline]
13799    pub fn nowait_token(&self) -> Option<SyntaxToken> {
13800        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
13801    }
13802    #[inline]
13803    pub fn of_token(&self) -> Option<SyntaxToken> {
13804        support::token(&self.syntax, SyntaxKind::OF_KW)
13805    }
13806    #[inline]
13807    pub fn skip_token(&self) -> Option<SyntaxToken> {
13808        support::token(&self.syntax, SyntaxKind::SKIP_KW)
13809    }
13810}
13811
13812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13813pub struct Lteq {
13814    pub(crate) syntax: SyntaxNode,
13815}
13816impl Lteq {
13817    #[inline]
13818    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
13819        support::token(&self.syntax, SyntaxKind::L_ANGLE)
13820    }
13821    #[inline]
13822    pub fn eq_token(&self) -> Option<SyntaxToken> {
13823        support::token(&self.syntax, SyntaxKind::EQ)
13824    }
13825}
13826
13827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13828pub struct MatchFull {
13829    pub(crate) syntax: SyntaxNode,
13830}
13831impl MatchFull {
13832    #[inline]
13833    pub fn full_token(&self) -> Option<SyntaxToken> {
13834        support::token(&self.syntax, SyntaxKind::FULL_KW)
13835    }
13836    #[inline]
13837    pub fn match_token(&self) -> Option<SyntaxToken> {
13838        support::token(&self.syntax, SyntaxKind::MATCH_KW)
13839    }
13840}
13841
13842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13843pub struct MatchPartial {
13844    pub(crate) syntax: SyntaxNode,
13845}
13846impl MatchPartial {
13847    #[inline]
13848    pub fn match_token(&self) -> Option<SyntaxToken> {
13849        support::token(&self.syntax, SyntaxKind::MATCH_KW)
13850    }
13851    #[inline]
13852    pub fn partial_token(&self) -> Option<SyntaxToken> {
13853        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
13854    }
13855}
13856
13857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13858pub struct MatchSimple {
13859    pub(crate) syntax: SyntaxNode,
13860}
13861impl MatchSimple {
13862    #[inline]
13863    pub fn match_token(&self) -> Option<SyntaxToken> {
13864        support::token(&self.syntax, SyntaxKind::MATCH_KW)
13865    }
13866    #[inline]
13867    pub fn simple_token(&self) -> Option<SyntaxToken> {
13868        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
13869    }
13870}
13871
13872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13873pub struct Materialized {
13874    pub(crate) syntax: SyntaxNode,
13875}
13876impl Materialized {
13877    #[inline]
13878    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13879        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13880    }
13881}
13882
13883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13884pub struct Merge {
13885    pub(crate) syntax: SyntaxNode,
13886}
13887impl Merge {
13888    #[inline]
13889    pub fn alias(&self) -> Option<Alias> {
13890        support::child(&self.syntax)
13891    }
13892    #[inline]
13893    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
13894        support::children(&self.syntax)
13895    }
13896    #[inline]
13897    pub fn relation_name(&self) -> Option<RelationName> {
13898        support::child(&self.syntax)
13899    }
13900    #[inline]
13901    pub fn returning_clause(&self) -> Option<ReturningClause> {
13902        support::child(&self.syntax)
13903    }
13904    #[inline]
13905    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
13906        support::child(&self.syntax)
13907    }
13908    #[inline]
13909    pub fn with_clause(&self) -> Option<WithClause> {
13910        support::child(&self.syntax)
13911    }
13912    #[inline]
13913    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
13914        support::token(&self.syntax, SyntaxKind::SEMICOLON)
13915    }
13916    #[inline]
13917    pub fn into_token(&self) -> Option<SyntaxToken> {
13918        support::token(&self.syntax, SyntaxKind::INTO_KW)
13919    }
13920    #[inline]
13921    pub fn merge_token(&self) -> Option<SyntaxToken> {
13922        support::token(&self.syntax, SyntaxKind::MERGE_KW)
13923    }
13924}
13925
13926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13927pub struct MergeDelete {
13928    pub(crate) syntax: SyntaxNode,
13929}
13930impl MergeDelete {
13931    #[inline]
13932    pub fn delete_token(&self) -> Option<SyntaxToken> {
13933        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13934    }
13935}
13936
13937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13938pub struct MergeDoNothing {
13939    pub(crate) syntax: SyntaxNode,
13940}
13941impl MergeDoNothing {
13942    #[inline]
13943    pub fn do_token(&self) -> Option<SyntaxToken> {
13944        support::token(&self.syntax, SyntaxKind::DO_KW)
13945    }
13946    #[inline]
13947    pub fn nothing_token(&self) -> Option<SyntaxToken> {
13948        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
13949    }
13950}
13951
13952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13953pub struct MergeInsert {
13954    pub(crate) syntax: SyntaxNode,
13955}
13956impl MergeInsert {
13957    #[inline]
13958    pub fn column_list(&self) -> Option<ColumnList> {
13959        support::child(&self.syntax)
13960    }
13961    #[inline]
13962    pub fn values(&self) -> Option<Values> {
13963        support::child(&self.syntax)
13964    }
13965    #[inline]
13966    pub fn default_token(&self) -> Option<SyntaxToken> {
13967        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13968    }
13969    #[inline]
13970    pub fn insert_token(&self) -> Option<SyntaxToken> {
13971        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13972    }
13973    #[inline]
13974    pub fn overriding_token(&self) -> Option<SyntaxToken> {
13975        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
13976    }
13977    #[inline]
13978    pub fn system_token(&self) -> Option<SyntaxToken> {
13979        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13980    }
13981    #[inline]
13982    pub fn user_token(&self) -> Option<SyntaxToken> {
13983        support::token(&self.syntax, SyntaxKind::USER_KW)
13984    }
13985    #[inline]
13986    pub fn values_token(&self) -> Option<SyntaxToken> {
13987        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13988    }
13989}
13990
13991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13992pub struct MergePartitions {
13993    pub(crate) syntax: SyntaxNode,
13994}
13995impl MergePartitions {
13996    #[inline]
13997    pub fn path(&self) -> Option<Path> {
13998        support::child(&self.syntax)
13999    }
14000    #[inline]
14001    pub fn path_list(&self) -> Option<PathList> {
14002        support::child(&self.syntax)
14003    }
14004    #[inline]
14005    pub fn into_token(&self) -> Option<SyntaxToken> {
14006        support::token(&self.syntax, SyntaxKind::INTO_KW)
14007    }
14008    #[inline]
14009    pub fn merge_token(&self) -> Option<SyntaxToken> {
14010        support::token(&self.syntax, SyntaxKind::MERGE_KW)
14011    }
14012    #[inline]
14013    pub fn partitions_token(&self) -> Option<SyntaxToken> {
14014        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
14015    }
14016}
14017
14018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14019pub struct MergeUpdate {
14020    pub(crate) syntax: SyntaxNode,
14021}
14022impl MergeUpdate {
14023    #[inline]
14024    pub fn set_clause(&self) -> Option<SetClause> {
14025        support::child(&self.syntax)
14026    }
14027    #[inline]
14028    pub fn set_token(&self) -> Option<SyntaxToken> {
14029        support::token(&self.syntax, SyntaxKind::SET_KW)
14030    }
14031    #[inline]
14032    pub fn update_token(&self) -> Option<SyntaxToken> {
14033        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14034    }
14035}
14036
14037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14038pub struct MergeWhenMatched {
14039    pub(crate) syntax: SyntaxNode,
14040}
14041impl MergeWhenMatched {
14042    #[inline]
14043    pub fn expr(&self) -> Option<Expr> {
14044        support::child(&self.syntax)
14045    }
14046    #[inline]
14047    pub fn merge_action(&self) -> Option<MergeAction> {
14048        support::child(&self.syntax)
14049    }
14050    #[inline]
14051    pub fn and_token(&self) -> Option<SyntaxToken> {
14052        support::token(&self.syntax, SyntaxKind::AND_KW)
14053    }
14054    #[inline]
14055    pub fn matched_token(&self) -> Option<SyntaxToken> {
14056        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
14057    }
14058    #[inline]
14059    pub fn then_token(&self) -> Option<SyntaxToken> {
14060        support::token(&self.syntax, SyntaxKind::THEN_KW)
14061    }
14062    #[inline]
14063    pub fn when_token(&self) -> Option<SyntaxToken> {
14064        support::token(&self.syntax, SyntaxKind::WHEN_KW)
14065    }
14066}
14067
14068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14069pub struct MergeWhenNotMatchedSource {
14070    pub(crate) syntax: SyntaxNode,
14071}
14072impl MergeWhenNotMatchedSource {
14073    #[inline]
14074    pub fn expr(&self) -> Option<Expr> {
14075        support::child(&self.syntax)
14076    }
14077    #[inline]
14078    pub fn merge_action(&self) -> Option<MergeAction> {
14079        support::child(&self.syntax)
14080    }
14081    #[inline]
14082    pub fn and_token(&self) -> Option<SyntaxToken> {
14083        support::token(&self.syntax, SyntaxKind::AND_KW)
14084    }
14085    #[inline]
14086    pub fn by_token(&self) -> Option<SyntaxToken> {
14087        support::token(&self.syntax, SyntaxKind::BY_KW)
14088    }
14089    #[inline]
14090    pub fn matched_token(&self) -> Option<SyntaxToken> {
14091        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
14092    }
14093    #[inline]
14094    pub fn not_token(&self) -> Option<SyntaxToken> {
14095        support::token(&self.syntax, SyntaxKind::NOT_KW)
14096    }
14097    #[inline]
14098    pub fn source_token(&self) -> Option<SyntaxToken> {
14099        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
14100    }
14101    #[inline]
14102    pub fn then_token(&self) -> Option<SyntaxToken> {
14103        support::token(&self.syntax, SyntaxKind::THEN_KW)
14104    }
14105    #[inline]
14106    pub fn when_token(&self) -> Option<SyntaxToken> {
14107        support::token(&self.syntax, SyntaxKind::WHEN_KW)
14108    }
14109}
14110
14111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14112pub struct MergeWhenNotMatchedTarget {
14113    pub(crate) syntax: SyntaxNode,
14114}
14115impl MergeWhenNotMatchedTarget {
14116    #[inline]
14117    pub fn expr(&self) -> Option<Expr> {
14118        support::child(&self.syntax)
14119    }
14120    #[inline]
14121    pub fn merge_action(&self) -> Option<MergeAction> {
14122        support::child(&self.syntax)
14123    }
14124    #[inline]
14125    pub fn and_token(&self) -> Option<SyntaxToken> {
14126        support::token(&self.syntax, SyntaxKind::AND_KW)
14127    }
14128    #[inline]
14129    pub fn by_token(&self) -> Option<SyntaxToken> {
14130        support::token(&self.syntax, SyntaxKind::BY_KW)
14131    }
14132    #[inline]
14133    pub fn matched_token(&self) -> Option<SyntaxToken> {
14134        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
14135    }
14136    #[inline]
14137    pub fn not_token(&self) -> Option<SyntaxToken> {
14138        support::token(&self.syntax, SyntaxKind::NOT_KW)
14139    }
14140    #[inline]
14141    pub fn target_token(&self) -> Option<SyntaxToken> {
14142        support::token(&self.syntax, SyntaxKind::TARGET_KW)
14143    }
14144    #[inline]
14145    pub fn then_token(&self) -> Option<SyntaxToken> {
14146        support::token(&self.syntax, SyntaxKind::THEN_KW)
14147    }
14148    #[inline]
14149    pub fn when_token(&self) -> Option<SyntaxToken> {
14150        support::token(&self.syntax, SyntaxKind::WHEN_KW)
14151    }
14152}
14153
14154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14155pub struct Move {
14156    pub(crate) syntax: SyntaxNode,
14157}
14158impl Move {
14159    #[inline]
14160    pub fn absolute(&self) -> Option<Absolute> {
14161        support::child(&self.syntax)
14162    }
14163    #[inline]
14164    pub fn all(&self) -> Option<All> {
14165        support::child(&self.syntax)
14166    }
14167    #[inline]
14168    pub fn backward(&self) -> Option<Backward> {
14169        support::child(&self.syntax)
14170    }
14171    #[inline]
14172    pub fn expr(&self) -> Option<Expr> {
14173        support::child(&self.syntax)
14174    }
14175    #[inline]
14176    pub fn first(&self) -> Option<First> {
14177        support::child(&self.syntax)
14178    }
14179    #[inline]
14180    pub fn forward(&self) -> Option<Forward> {
14181        support::child(&self.syntax)
14182    }
14183    #[inline]
14184    pub fn last(&self) -> Option<Last> {
14185        support::child(&self.syntax)
14186    }
14187    #[inline]
14188    pub fn name_ref(&self) -> Option<NameRef> {
14189        support::child(&self.syntax)
14190    }
14191    #[inline]
14192    pub fn next(&self) -> Option<Next> {
14193        support::child(&self.syntax)
14194    }
14195    #[inline]
14196    pub fn prior(&self) -> Option<Prior> {
14197        support::child(&self.syntax)
14198    }
14199    #[inline]
14200    pub fn relative(&self) -> Option<Relative> {
14201        support::child(&self.syntax)
14202    }
14203    #[inline]
14204    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14205        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14206    }
14207    #[inline]
14208    pub fn from_token(&self) -> Option<SyntaxToken> {
14209        support::token(&self.syntax, SyntaxKind::FROM_KW)
14210    }
14211    #[inline]
14212    pub fn in_token(&self) -> Option<SyntaxToken> {
14213        support::token(&self.syntax, SyntaxKind::IN_KW)
14214    }
14215    #[inline]
14216    pub fn move_token(&self) -> Option<SyntaxToken> {
14217        support::token(&self.syntax, SyntaxKind::MOVE_KW)
14218    }
14219}
14220
14221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14222pub struct Name {
14223    pub(crate) syntax: SyntaxNode,
14224}
14225impl Name {
14226    #[inline]
14227    pub fn ident_token(&self) -> Option<SyntaxToken> {
14228        support::token(&self.syntax, SyntaxKind::IDENT)
14229    }
14230}
14231
14232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14233pub struct NameRef {
14234    pub(crate) syntax: SyntaxNode,
14235}
14236impl NameRef {
14237    #[inline]
14238    pub fn ident_token(&self) -> Option<SyntaxToken> {
14239        support::token(&self.syntax, SyntaxKind::IDENT)
14240    }
14241}
14242
14243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14244pub struct NamedArg {
14245    pub(crate) syntax: SyntaxNode,
14246}
14247impl NamedArg {
14248    #[inline]
14249    pub fn colon_eq(&self) -> Option<ColonEq> {
14250        support::child(&self.syntax)
14251    }
14252    #[inline]
14253    pub fn expr(&self) -> Option<Expr> {
14254        support::child(&self.syntax)
14255    }
14256    #[inline]
14257    pub fn fat_arrow(&self) -> Option<FatArrow> {
14258        support::child(&self.syntax)
14259    }
14260    #[inline]
14261    pub fn name_ref(&self) -> Option<NameRef> {
14262        support::child(&self.syntax)
14263    }
14264}
14265
14266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14267pub struct Neq {
14268    pub(crate) syntax: SyntaxNode,
14269}
14270impl Neq {
14271    #[inline]
14272    pub fn bang_token(&self) -> Option<SyntaxToken> {
14273        support::token(&self.syntax, SyntaxKind::BANG)
14274    }
14275    #[inline]
14276    pub fn eq_token(&self) -> Option<SyntaxToken> {
14277        support::token(&self.syntax, SyntaxKind::EQ)
14278    }
14279}
14280
14281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14282pub struct Neqb {
14283    pub(crate) syntax: SyntaxNode,
14284}
14285impl Neqb {
14286    #[inline]
14287    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
14288        support::token(&self.syntax, SyntaxKind::L_ANGLE)
14289    }
14290    #[inline]
14291    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
14292        support::token(&self.syntax, SyntaxKind::R_ANGLE)
14293    }
14294}
14295
14296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14297pub struct Next {
14298    pub(crate) syntax: SyntaxNode,
14299}
14300impl Next {
14301    #[inline]
14302    pub fn next_token(&self) -> Option<SyntaxToken> {
14303        support::token(&self.syntax, SyntaxKind::NEXT_KW)
14304    }
14305}
14306
14307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14308pub struct NoAction {
14309    pub(crate) syntax: SyntaxNode,
14310}
14311impl NoAction {
14312    #[inline]
14313    pub fn action_token(&self) -> Option<SyntaxToken> {
14314        support::token(&self.syntax, SyntaxKind::ACTION_KW)
14315    }
14316    #[inline]
14317    pub fn no_token(&self) -> Option<SyntaxToken> {
14318        support::token(&self.syntax, SyntaxKind::NO_KW)
14319    }
14320}
14321
14322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14323pub struct NoDependsOnExtension {
14324    pub(crate) syntax: SyntaxNode,
14325}
14326impl NoDependsOnExtension {
14327    #[inline]
14328    pub fn name_ref(&self) -> Option<NameRef> {
14329        support::child(&self.syntax)
14330    }
14331    #[inline]
14332    pub fn depends_token(&self) -> Option<SyntaxToken> {
14333        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
14334    }
14335    #[inline]
14336    pub fn extension_token(&self) -> Option<SyntaxToken> {
14337        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
14338    }
14339    #[inline]
14340    pub fn no_token(&self) -> Option<SyntaxToken> {
14341        support::token(&self.syntax, SyntaxKind::NO_KW)
14342    }
14343    #[inline]
14344    pub fn on_token(&self) -> Option<SyntaxToken> {
14345        support::token(&self.syntax, SyntaxKind::ON_KW)
14346    }
14347}
14348
14349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14350pub struct NoForceRls {
14351    pub(crate) syntax: SyntaxNode,
14352}
14353impl NoForceRls {
14354    #[inline]
14355    pub fn force_token(&self) -> Option<SyntaxToken> {
14356        support::token(&self.syntax, SyntaxKind::FORCE_KW)
14357    }
14358    #[inline]
14359    pub fn level_token(&self) -> Option<SyntaxToken> {
14360        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14361    }
14362    #[inline]
14363    pub fn no_token(&self) -> Option<SyntaxToken> {
14364        support::token(&self.syntax, SyntaxKind::NO_KW)
14365    }
14366    #[inline]
14367    pub fn row_token(&self) -> Option<SyntaxToken> {
14368        support::token(&self.syntax, SyntaxKind::ROW_KW)
14369    }
14370    #[inline]
14371    pub fn security_token(&self) -> Option<SyntaxToken> {
14372        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
14373    }
14374}
14375
14376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14377pub struct NoInherit {
14378    pub(crate) syntax: SyntaxNode,
14379}
14380impl NoInherit {
14381    #[inline]
14382    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14383        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14384    }
14385    #[inline]
14386    pub fn no_token(&self) -> Option<SyntaxToken> {
14387        support::token(&self.syntax, SyntaxKind::NO_KW)
14388    }
14389}
14390
14391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14392pub struct NoInheritTable {
14393    pub(crate) syntax: SyntaxNode,
14394}
14395impl NoInheritTable {
14396    #[inline]
14397    pub fn path(&self) -> Option<Path> {
14398        support::child(&self.syntax)
14399    }
14400    #[inline]
14401    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14402        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14403    }
14404    #[inline]
14405    pub fn no_token(&self) -> Option<SyntaxToken> {
14406        support::token(&self.syntax, SyntaxKind::NO_KW)
14407    }
14408}
14409
14410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14411pub struct NoOthers {
14412    pub(crate) syntax: SyntaxNode,
14413}
14414impl NoOthers {
14415    #[inline]
14416    pub fn no_token(&self) -> Option<SyntaxToken> {
14417        support::token(&self.syntax, SyntaxKind::NO_KW)
14418    }
14419    #[inline]
14420    pub fn others_token(&self) -> Option<SyntaxToken> {
14421        support::token(&self.syntax, SyntaxKind::OTHERS_KW)
14422    }
14423}
14424
14425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14426pub struct NoProperties {
14427    pub(crate) syntax: SyntaxNode,
14428}
14429impl NoProperties {
14430    #[inline]
14431    pub fn no_token(&self) -> Option<SyntaxToken> {
14432        support::token(&self.syntax, SyntaxKind::NO_KW)
14433    }
14434    #[inline]
14435    pub fn properties_token(&self) -> Option<SyntaxToken> {
14436        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
14437    }
14438}
14439
14440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14441pub struct NonStandardParam {
14442    pub(crate) syntax: SyntaxNode,
14443}
14444impl NonStandardParam {
14445    #[inline]
14446    pub fn name_ref(&self) -> Option<NameRef> {
14447        support::child(&self.syntax)
14448    }
14449    #[inline]
14450    pub fn colon_token(&self) -> Option<SyntaxToken> {
14451        support::token(&self.syntax, SyntaxKind::COLON)
14452    }
14453}
14454
14455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14456pub struct NotDeferrable {
14457    pub(crate) syntax: SyntaxNode,
14458}
14459impl NotDeferrable {
14460    #[inline]
14461    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
14462        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
14463    }
14464    #[inline]
14465    pub fn not_token(&self) -> Option<SyntaxToken> {
14466        support::token(&self.syntax, SyntaxKind::NOT_KW)
14467    }
14468}
14469
14470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14471pub struct NotDeferrableConstraintOption {
14472    pub(crate) syntax: SyntaxNode,
14473}
14474impl NotDeferrableConstraintOption {
14475    #[inline]
14476    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
14477        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
14478    }
14479    #[inline]
14480    pub fn not_token(&self) -> Option<SyntaxToken> {
14481        support::token(&self.syntax, SyntaxKind::NOT_KW)
14482    }
14483}
14484
14485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14486pub struct NotEnforced {
14487    pub(crate) syntax: SyntaxNode,
14488}
14489impl NotEnforced {
14490    #[inline]
14491    pub fn enforced_token(&self) -> Option<SyntaxToken> {
14492        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
14493    }
14494    #[inline]
14495    pub fn not_token(&self) -> Option<SyntaxToken> {
14496        support::token(&self.syntax, SyntaxKind::NOT_KW)
14497    }
14498}
14499
14500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14501pub struct NotIlike {
14502    pub(crate) syntax: SyntaxNode,
14503}
14504impl NotIlike {
14505    #[inline]
14506    pub fn ilike_token(&self) -> Option<SyntaxToken> {
14507        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
14508    }
14509    #[inline]
14510    pub fn not_token(&self) -> Option<SyntaxToken> {
14511        support::token(&self.syntax, SyntaxKind::NOT_KW)
14512    }
14513}
14514
14515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14516pub struct NotIn {
14517    pub(crate) syntax: SyntaxNode,
14518}
14519impl NotIn {
14520    #[inline]
14521    pub fn in_token(&self) -> Option<SyntaxToken> {
14522        support::token(&self.syntax, SyntaxKind::IN_KW)
14523    }
14524    #[inline]
14525    pub fn not_token(&self) -> Option<SyntaxToken> {
14526        support::token(&self.syntax, SyntaxKind::NOT_KW)
14527    }
14528}
14529
14530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14531pub struct NotLike {
14532    pub(crate) syntax: SyntaxNode,
14533}
14534impl NotLike {
14535    #[inline]
14536    pub fn like_token(&self) -> Option<SyntaxToken> {
14537        support::token(&self.syntax, SyntaxKind::LIKE_KW)
14538    }
14539    #[inline]
14540    pub fn not_token(&self) -> Option<SyntaxToken> {
14541        support::token(&self.syntax, SyntaxKind::NOT_KW)
14542    }
14543}
14544
14545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14546pub struct NotMaterialized {
14547    pub(crate) syntax: SyntaxNode,
14548}
14549impl NotMaterialized {
14550    #[inline]
14551    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14552        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14553    }
14554    #[inline]
14555    pub fn not_token(&self) -> Option<SyntaxToken> {
14556        support::token(&self.syntax, SyntaxKind::NOT_KW)
14557    }
14558}
14559
14560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14561pub struct NotNullConstraint {
14562    pub(crate) syntax: SyntaxNode,
14563}
14564impl NotNullConstraint {
14565    #[inline]
14566    pub fn constraint_name(&self) -> Option<ConstraintName> {
14567        support::child(&self.syntax)
14568    }
14569    #[inline]
14570    pub fn no_inherit(&self) -> Option<NoInherit> {
14571        support::child(&self.syntax)
14572    }
14573    #[inline]
14574    pub fn not_token(&self) -> Option<SyntaxToken> {
14575        support::token(&self.syntax, SyntaxKind::NOT_KW)
14576    }
14577    #[inline]
14578    pub fn null_token(&self) -> Option<SyntaxToken> {
14579        support::token(&self.syntax, SyntaxKind::NULL_KW)
14580    }
14581}
14582
14583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14584pub struct NotOf {
14585    pub(crate) syntax: SyntaxNode,
14586}
14587impl NotOf {
14588    #[inline]
14589    pub fn not_token(&self) -> Option<SyntaxToken> {
14590        support::token(&self.syntax, SyntaxKind::NOT_KW)
14591    }
14592    #[inline]
14593    pub fn of_token(&self) -> Option<SyntaxToken> {
14594        support::token(&self.syntax, SyntaxKind::OF_KW)
14595    }
14596}
14597
14598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14599pub struct NotSimilarTo {
14600    pub(crate) syntax: SyntaxNode,
14601}
14602impl NotSimilarTo {
14603    #[inline]
14604    pub fn not_token(&self) -> Option<SyntaxToken> {
14605        support::token(&self.syntax, SyntaxKind::NOT_KW)
14606    }
14607    #[inline]
14608    pub fn similar_token(&self) -> Option<SyntaxToken> {
14609        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14610    }
14611    #[inline]
14612    pub fn to_token(&self) -> Option<SyntaxToken> {
14613        support::token(&self.syntax, SyntaxKind::TO_KW)
14614    }
14615}
14616
14617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14618pub struct NotValid {
14619    pub(crate) syntax: SyntaxNode,
14620}
14621impl NotValid {
14622    #[inline]
14623    pub fn not_token(&self) -> Option<SyntaxToken> {
14624        support::token(&self.syntax, SyntaxKind::NOT_KW)
14625    }
14626    #[inline]
14627    pub fn valid_token(&self) -> Option<SyntaxToken> {
14628        support::token(&self.syntax, SyntaxKind::VALID_KW)
14629    }
14630}
14631
14632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14633pub struct Nothing {
14634    pub(crate) syntax: SyntaxNode,
14635}
14636impl Nothing {
14637    #[inline]
14638    pub fn nothing_token(&self) -> Option<SyntaxToken> {
14639        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
14640    }
14641}
14642
14643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14644pub struct Notify {
14645    pub(crate) syntax: SyntaxNode,
14646}
14647impl Notify {
14648    #[inline]
14649    pub fn literal(&self) -> Option<Literal> {
14650        support::child(&self.syntax)
14651    }
14652    #[inline]
14653    pub fn name_ref(&self) -> Option<NameRef> {
14654        support::child(&self.syntax)
14655    }
14656    #[inline]
14657    pub fn comma_token(&self) -> Option<SyntaxToken> {
14658        support::token(&self.syntax, SyntaxKind::COMMA)
14659    }
14660    #[inline]
14661    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14662        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14663    }
14664    #[inline]
14665    pub fn notify_token(&self) -> Option<SyntaxToken> {
14666        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
14667    }
14668}
14669
14670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14671pub struct NullConstraint {
14672    pub(crate) syntax: SyntaxNode,
14673}
14674impl NullConstraint {
14675    #[inline]
14676    pub fn constraint_name(&self) -> Option<ConstraintName> {
14677        support::child(&self.syntax)
14678    }
14679    #[inline]
14680    pub fn null_token(&self) -> Option<SyntaxToken> {
14681        support::token(&self.syntax, SyntaxKind::NULL_KW)
14682    }
14683}
14684
14685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14686pub struct NullsDistinct {
14687    pub(crate) syntax: SyntaxNode,
14688}
14689impl NullsDistinct {
14690    #[inline]
14691    pub fn distinct_token(&self) -> Option<SyntaxToken> {
14692        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
14693    }
14694    #[inline]
14695    pub fn nulls_token(&self) -> Option<SyntaxToken> {
14696        support::token(&self.syntax, SyntaxKind::NULLS_KW)
14697    }
14698}
14699
14700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14701pub struct NullsFirst {
14702    pub(crate) syntax: SyntaxNode,
14703}
14704impl NullsFirst {
14705    #[inline]
14706    pub fn first_token(&self) -> Option<SyntaxToken> {
14707        support::token(&self.syntax, SyntaxKind::FIRST_KW)
14708    }
14709    #[inline]
14710    pub fn nulls_token(&self) -> Option<SyntaxToken> {
14711        support::token(&self.syntax, SyntaxKind::NULLS_KW)
14712    }
14713}
14714
14715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14716pub struct NullsLast {
14717    pub(crate) syntax: SyntaxNode,
14718}
14719impl NullsLast {
14720    #[inline]
14721    pub fn last_token(&self) -> Option<SyntaxToken> {
14722        support::token(&self.syntax, SyntaxKind::LAST_KW)
14723    }
14724    #[inline]
14725    pub fn nulls_token(&self) -> Option<SyntaxToken> {
14726        support::token(&self.syntax, SyntaxKind::NULLS_KW)
14727    }
14728}
14729
14730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14731pub struct NullsNotDistinct {
14732    pub(crate) syntax: SyntaxNode,
14733}
14734impl NullsNotDistinct {
14735    #[inline]
14736    pub fn distinct_token(&self) -> Option<SyntaxToken> {
14737        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
14738    }
14739    #[inline]
14740    pub fn not_token(&self) -> Option<SyntaxToken> {
14741        support::token(&self.syntax, SyntaxKind::NOT_KW)
14742    }
14743    #[inline]
14744    pub fn nulls_token(&self) -> Option<SyntaxToken> {
14745        support::token(&self.syntax, SyntaxKind::NULLS_KW)
14746    }
14747}
14748
14749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14750pub struct OfType {
14751    pub(crate) syntax: SyntaxNode,
14752}
14753impl OfType {
14754    #[inline]
14755    pub fn ty(&self) -> Option<Type> {
14756        support::child(&self.syntax)
14757    }
14758    #[inline]
14759    pub fn of_token(&self) -> Option<SyntaxToken> {
14760        support::token(&self.syntax, SyntaxKind::OF_KW)
14761    }
14762}
14763
14764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14765pub struct OffsetClause {
14766    pub(crate) syntax: SyntaxNode,
14767}
14768impl OffsetClause {
14769    #[inline]
14770    pub fn expr(&self) -> Option<Expr> {
14771        support::child(&self.syntax)
14772    }
14773    #[inline]
14774    pub fn offset_token(&self) -> Option<SyntaxToken> {
14775        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
14776    }
14777    #[inline]
14778    pub fn row_token(&self) -> Option<SyntaxToken> {
14779        support::token(&self.syntax, SyntaxKind::ROW_KW)
14780    }
14781    #[inline]
14782    pub fn rows_token(&self) -> Option<SyntaxToken> {
14783        support::token(&self.syntax, SyntaxKind::ROWS_KW)
14784    }
14785}
14786
14787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14788pub struct OnClause {
14789    pub(crate) syntax: SyntaxNode,
14790}
14791impl OnClause {
14792    #[inline]
14793    pub fn expr(&self) -> Option<Expr> {
14794        support::child(&self.syntax)
14795    }
14796    #[inline]
14797    pub fn on_token(&self) -> Option<SyntaxToken> {
14798        support::token(&self.syntax, SyntaxKind::ON_KW)
14799    }
14800}
14801
14802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14803pub struct OnCommit {
14804    pub(crate) syntax: SyntaxNode,
14805}
14806impl OnCommit {
14807    #[inline]
14808    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
14809        support::child(&self.syntax)
14810    }
14811    #[inline]
14812    pub fn commit_token(&self) -> Option<SyntaxToken> {
14813        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
14814    }
14815    #[inline]
14816    pub fn on_token(&self) -> Option<SyntaxToken> {
14817        support::token(&self.syntax, SyntaxKind::ON_KW)
14818    }
14819}
14820
14821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14822pub struct OnConflictClause {
14823    pub(crate) syntax: SyntaxNode,
14824}
14825impl OnConflictClause {
14826    #[inline]
14827    pub fn conflict_action(&self) -> Option<ConflictAction> {
14828        support::child(&self.syntax)
14829    }
14830    #[inline]
14831    pub fn conflict_target(&self) -> Option<ConflictTarget> {
14832        support::child(&self.syntax)
14833    }
14834    #[inline]
14835    pub fn conflict_token(&self) -> Option<SyntaxToken> {
14836        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
14837    }
14838    #[inline]
14839    pub fn on_token(&self) -> Option<SyntaxToken> {
14840        support::token(&self.syntax, SyntaxKind::ON_KW)
14841    }
14842}
14843
14844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14845pub struct OnDeleteAction {
14846    pub(crate) syntax: SyntaxNode,
14847}
14848impl OnDeleteAction {
14849    #[inline]
14850    pub fn ref_action(&self) -> Option<RefAction> {
14851        support::child(&self.syntax)
14852    }
14853    #[inline]
14854    pub fn delete_token(&self) -> Option<SyntaxToken> {
14855        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14856    }
14857    #[inline]
14858    pub fn on_token(&self) -> Option<SyntaxToken> {
14859        support::token(&self.syntax, SyntaxKind::ON_KW)
14860    }
14861}
14862
14863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14864pub struct OnPath {
14865    pub(crate) syntax: SyntaxNode,
14866}
14867impl OnPath {
14868    #[inline]
14869    pub fn path(&self) -> Option<Path> {
14870        support::child(&self.syntax)
14871    }
14872    #[inline]
14873    pub fn on_token(&self) -> Option<SyntaxToken> {
14874        support::token(&self.syntax, SyntaxKind::ON_KW)
14875    }
14876}
14877
14878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14879pub struct OnTable {
14880    pub(crate) syntax: SyntaxNode,
14881}
14882impl OnTable {
14883    #[inline]
14884    pub fn path(&self) -> Option<Path> {
14885        support::child(&self.syntax)
14886    }
14887    #[inline]
14888    pub fn on_token(&self) -> Option<SyntaxToken> {
14889        support::token(&self.syntax, SyntaxKind::ON_KW)
14890    }
14891}
14892
14893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14894pub struct OnUpdateAction {
14895    pub(crate) syntax: SyntaxNode,
14896}
14897impl OnUpdateAction {
14898    #[inline]
14899    pub fn ref_action(&self) -> Option<RefAction> {
14900        support::child(&self.syntax)
14901    }
14902    #[inline]
14903    pub fn on_token(&self) -> Option<SyntaxToken> {
14904        support::token(&self.syntax, SyntaxKind::ON_KW)
14905    }
14906    #[inline]
14907    pub fn update_token(&self) -> Option<SyntaxToken> {
14908        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14909    }
14910}
14911
14912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14913pub struct Op {
14914    pub(crate) syntax: SyntaxNode,
14915}
14916impl Op {
14917    #[inline]
14918    pub fn at_local(&self) -> Option<AtLocal> {
14919        support::child(&self.syntax)
14920    }
14921    #[inline]
14922    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
14923        support::child(&self.syntax)
14924    }
14925    #[inline]
14926    pub fn colon_colon(&self) -> Option<ColonColon> {
14927        support::child(&self.syntax)
14928    }
14929    #[inline]
14930    pub fn colon_eq(&self) -> Option<ColonEq> {
14931        support::child(&self.syntax)
14932    }
14933    #[inline]
14934    pub fn custom_op(&self) -> Option<CustomOp> {
14935        support::child(&self.syntax)
14936    }
14937    #[inline]
14938    pub fn fat_arrow(&self) -> Option<FatArrow> {
14939        support::child(&self.syntax)
14940    }
14941    #[inline]
14942    pub fn gteq(&self) -> Option<Gteq> {
14943        support::child(&self.syntax)
14944    }
14945    #[inline]
14946    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
14947        support::child(&self.syntax)
14948    }
14949    #[inline]
14950    pub fn is_json(&self) -> Option<IsJson> {
14951        support::child(&self.syntax)
14952    }
14953    #[inline]
14954    pub fn is_json_array(&self) -> Option<IsJsonArray> {
14955        support::child(&self.syntax)
14956    }
14957    #[inline]
14958    pub fn is_json_object(&self) -> Option<IsJsonObject> {
14959        support::child(&self.syntax)
14960    }
14961    #[inline]
14962    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
14963        support::child(&self.syntax)
14964    }
14965    #[inline]
14966    pub fn is_json_value(&self) -> Option<IsJsonValue> {
14967        support::child(&self.syntax)
14968    }
14969    #[inline]
14970    pub fn is_normalized(&self) -> Option<IsNormalized> {
14971        support::child(&self.syntax)
14972    }
14973    #[inline]
14974    pub fn is_not(&self) -> Option<IsNot> {
14975        support::child(&self.syntax)
14976    }
14977    #[inline]
14978    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
14979        support::child(&self.syntax)
14980    }
14981    #[inline]
14982    pub fn is_not_json(&self) -> Option<IsNotJson> {
14983        support::child(&self.syntax)
14984    }
14985    #[inline]
14986    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
14987        support::child(&self.syntax)
14988    }
14989    #[inline]
14990    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
14991        support::child(&self.syntax)
14992    }
14993    #[inline]
14994    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
14995        support::child(&self.syntax)
14996    }
14997    #[inline]
14998    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
14999        support::child(&self.syntax)
15000    }
15001    #[inline]
15002    pub fn is_not_normalized(&self) -> Option<IsNotNormalized> {
15003        support::child(&self.syntax)
15004    }
15005    #[inline]
15006    pub fn lteq(&self) -> Option<Lteq> {
15007        support::child(&self.syntax)
15008    }
15009    #[inline]
15010    pub fn neq(&self) -> Option<Neq> {
15011        support::child(&self.syntax)
15012    }
15013    #[inline]
15014    pub fn neqb(&self) -> Option<Neqb> {
15015        support::child(&self.syntax)
15016    }
15017    #[inline]
15018    pub fn not_ilike(&self) -> Option<NotIlike> {
15019        support::child(&self.syntax)
15020    }
15021    #[inline]
15022    pub fn not_in(&self) -> Option<NotIn> {
15023        support::child(&self.syntax)
15024    }
15025    #[inline]
15026    pub fn not_like(&self) -> Option<NotLike> {
15027        support::child(&self.syntax)
15028    }
15029    #[inline]
15030    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
15031        support::child(&self.syntax)
15032    }
15033    #[inline]
15034    pub fn operator_call(&self) -> Option<OperatorCall> {
15035        support::child(&self.syntax)
15036    }
15037    #[inline]
15038    pub fn similar_to(&self) -> Option<SimilarTo> {
15039        support::child(&self.syntax)
15040    }
15041    #[inline]
15042    pub fn percent_token(&self) -> Option<SyntaxToken> {
15043        support::token(&self.syntax, SyntaxKind::PERCENT)
15044    }
15045    #[inline]
15046    pub fn plus_token(&self) -> Option<SyntaxToken> {
15047        support::token(&self.syntax, SyntaxKind::PLUS)
15048    }
15049    #[inline]
15050    pub fn minus_token(&self) -> Option<SyntaxToken> {
15051        support::token(&self.syntax, SyntaxKind::MINUS)
15052    }
15053    #[inline]
15054    pub fn slash_token(&self) -> Option<SyntaxToken> {
15055        support::token(&self.syntax, SyntaxKind::SLASH)
15056    }
15057    #[inline]
15058    pub fn colon_token(&self) -> Option<SyntaxToken> {
15059        support::token(&self.syntax, SyntaxKind::COLON)
15060    }
15061    #[inline]
15062    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
15063        support::token(&self.syntax, SyntaxKind::L_ANGLE)
15064    }
15065    #[inline]
15066    pub fn eq_token(&self) -> Option<SyntaxToken> {
15067        support::token(&self.syntax, SyntaxKind::EQ)
15068    }
15069    #[inline]
15070    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
15071        support::token(&self.syntax, SyntaxKind::R_ANGLE)
15072    }
15073    #[inline]
15074    pub fn caret_token(&self) -> Option<SyntaxToken> {
15075        support::token(&self.syntax, SyntaxKind::CARET)
15076    }
15077    #[inline]
15078    pub fn and_token(&self) -> Option<SyntaxToken> {
15079        support::token(&self.syntax, SyntaxKind::AND_KW)
15080    }
15081    #[inline]
15082    pub fn collate_token(&self) -> Option<SyntaxToken> {
15083        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
15084    }
15085    #[inline]
15086    pub fn escape_token(&self) -> Option<SyntaxToken> {
15087        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
15088    }
15089    #[inline]
15090    pub fn ilike_token(&self) -> Option<SyntaxToken> {
15091        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
15092    }
15093    #[inline]
15094    pub fn in_token(&self) -> Option<SyntaxToken> {
15095        support::token(&self.syntax, SyntaxKind::IN_KW)
15096    }
15097    #[inline]
15098    pub fn is_token(&self) -> Option<SyntaxToken> {
15099        support::token(&self.syntax, SyntaxKind::IS_KW)
15100    }
15101    #[inline]
15102    pub fn isnull_token(&self) -> Option<SyntaxToken> {
15103        support::token(&self.syntax, SyntaxKind::ISNULL_KW)
15104    }
15105    #[inline]
15106    pub fn like_token(&self) -> Option<SyntaxToken> {
15107        support::token(&self.syntax, SyntaxKind::LIKE_KW)
15108    }
15109    #[inline]
15110    pub fn notnull_token(&self) -> Option<SyntaxToken> {
15111        support::token(&self.syntax, SyntaxKind::NOTNULL_KW)
15112    }
15113    #[inline]
15114    pub fn or_token(&self) -> Option<SyntaxToken> {
15115        support::token(&self.syntax, SyntaxKind::OR_KW)
15116    }
15117    #[inline]
15118    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
15119        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
15120    }
15121    #[inline]
15122    pub fn value_token(&self) -> Option<SyntaxToken> {
15123        support::token(&self.syntax, SyntaxKind::VALUE_KW)
15124    }
15125}
15126
15127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15128pub struct OpClassOption {
15129    pub(crate) syntax: SyntaxNode,
15130}
15131impl OpClassOption {
15132    #[inline]
15133    pub fn function_sig(&self) -> Option<FunctionSig> {
15134        support::child(&self.syntax)
15135    }
15136    #[inline]
15137    pub fn literal(&self) -> Option<Literal> {
15138        support::child(&self.syntax)
15139    }
15140    #[inline]
15141    pub fn op(&self) -> Option<Op> {
15142        support::child(&self.syntax)
15143    }
15144    #[inline]
15145    pub fn param_list(&self) -> Option<ParamList> {
15146        support::child(&self.syntax)
15147    }
15148    #[inline]
15149    pub fn path(&self) -> Option<Path> {
15150        support::child(&self.syntax)
15151    }
15152    #[inline]
15153    pub fn ty(&self) -> Option<Type> {
15154        support::child(&self.syntax)
15155    }
15156    #[inline]
15157    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15158        support::token(&self.syntax, SyntaxKind::L_PAREN)
15159    }
15160    #[inline]
15161    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15162        support::token(&self.syntax, SyntaxKind::R_PAREN)
15163    }
15164    #[inline]
15165    pub fn comma_token(&self) -> Option<SyntaxToken> {
15166        support::token(&self.syntax, SyntaxKind::COMMA)
15167    }
15168    #[inline]
15169    pub fn by_token(&self) -> Option<SyntaxToken> {
15170        support::token(&self.syntax, SyntaxKind::BY_KW)
15171    }
15172    #[inline]
15173    pub fn for_token(&self) -> Option<SyntaxToken> {
15174        support::token(&self.syntax, SyntaxKind::FOR_KW)
15175    }
15176    #[inline]
15177    pub fn function_token(&self) -> Option<SyntaxToken> {
15178        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15179    }
15180    #[inline]
15181    pub fn operator_token(&self) -> Option<SyntaxToken> {
15182        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
15183    }
15184    #[inline]
15185    pub fn order_token(&self) -> Option<SyntaxToken> {
15186        support::token(&self.syntax, SyntaxKind::ORDER_KW)
15187    }
15188    #[inline]
15189    pub fn search_token(&self) -> Option<SyntaxToken> {
15190        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
15191    }
15192    #[inline]
15193    pub fn storage_token(&self) -> Option<SyntaxToken> {
15194        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
15195    }
15196}
15197
15198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15199pub struct OpSig {
15200    pub(crate) syntax: SyntaxNode,
15201}
15202impl OpSig {
15203    #[inline]
15204    pub fn op(&self) -> Option<Op> {
15205        support::child(&self.syntax)
15206    }
15207    #[inline]
15208    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15209        support::token(&self.syntax, SyntaxKind::L_PAREN)
15210    }
15211    #[inline]
15212    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15213        support::token(&self.syntax, SyntaxKind::R_PAREN)
15214    }
15215    #[inline]
15216    pub fn comma_token(&self) -> Option<SyntaxToken> {
15217        support::token(&self.syntax, SyntaxKind::COMMA)
15218    }
15219    #[inline]
15220    pub fn none_token(&self) -> Option<SyntaxToken> {
15221        support::token(&self.syntax, SyntaxKind::NONE_KW)
15222    }
15223}
15224
15225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15226pub struct OpSigList {
15227    pub(crate) syntax: SyntaxNode,
15228}
15229impl OpSigList {
15230    #[inline]
15231    pub fn op_sigs(&self) -> AstChildren<OpSig> {
15232        support::children(&self.syntax)
15233    }
15234}
15235
15236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15237pub struct OperatorCall {
15238    pub(crate) syntax: SyntaxNode,
15239}
15240impl OperatorCall {
15241    #[inline]
15242    pub fn op(&self) -> Option<Op> {
15243        support::child(&self.syntax)
15244    }
15245    #[inline]
15246    pub fn path(&self) -> Option<Path> {
15247        support::child(&self.syntax)
15248    }
15249    #[inline]
15250    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15251        support::token(&self.syntax, SyntaxKind::L_PAREN)
15252    }
15253    #[inline]
15254    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15255        support::token(&self.syntax, SyntaxKind::R_PAREN)
15256    }
15257    #[inline]
15258    pub fn dot_token(&self) -> Option<SyntaxToken> {
15259        support::token(&self.syntax, SyntaxKind::DOT)
15260    }
15261    #[inline]
15262    pub fn operator_token(&self) -> Option<SyntaxToken> {
15263        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
15264    }
15265}
15266
15267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15268pub struct OperatorClassOptionList {
15269    pub(crate) syntax: SyntaxNode,
15270}
15271impl OperatorClassOptionList {
15272    #[inline]
15273    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
15274        support::children(&self.syntax)
15275    }
15276}
15277
15278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15279pub struct OptionItem {
15280    pub(crate) syntax: SyntaxNode,
15281}
15282impl OptionItem {
15283    #[inline]
15284    pub fn expr(&self) -> Option<Expr> {
15285        support::child(&self.syntax)
15286    }
15287    #[inline]
15288    pub fn default_token(&self) -> Option<SyntaxToken> {
15289        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15290    }
15291}
15292
15293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15294pub struct OptionItemList {
15295    pub(crate) syntax: SyntaxNode,
15296}
15297impl OptionItemList {
15298    #[inline]
15299    pub fn option_items(&self) -> AstChildren<OptionItem> {
15300        support::children(&self.syntax)
15301    }
15302    #[inline]
15303    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15304        support::token(&self.syntax, SyntaxKind::L_PAREN)
15305    }
15306    #[inline]
15307    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15308        support::token(&self.syntax, SyntaxKind::R_PAREN)
15309    }
15310}
15311
15312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15313pub struct OrReplace {
15314    pub(crate) syntax: SyntaxNode,
15315}
15316impl OrReplace {
15317    #[inline]
15318    pub fn or_token(&self) -> Option<SyntaxToken> {
15319        support::token(&self.syntax, SyntaxKind::OR_KW)
15320    }
15321    #[inline]
15322    pub fn replace_token(&self) -> Option<SyntaxToken> {
15323        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
15324    }
15325}
15326
15327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15328pub struct OrderByClause {
15329    pub(crate) syntax: SyntaxNode,
15330}
15331impl OrderByClause {
15332    #[inline]
15333    pub fn sort_by_list(&self) -> Option<SortByList> {
15334        support::child(&self.syntax)
15335    }
15336    #[inline]
15337    pub fn by_token(&self) -> Option<SyntaxToken> {
15338        support::token(&self.syntax, SyntaxKind::BY_KW)
15339    }
15340    #[inline]
15341    pub fn order_token(&self) -> Option<SyntaxToken> {
15342        support::token(&self.syntax, SyntaxKind::ORDER_KW)
15343    }
15344}
15345
15346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15347pub struct OverClause {
15348    pub(crate) syntax: SyntaxNode,
15349}
15350impl OverClause {
15351    #[inline]
15352    pub fn name_ref(&self) -> Option<NameRef> {
15353        support::child(&self.syntax)
15354    }
15355    #[inline]
15356    pub fn window_spec(&self) -> Option<WindowSpec> {
15357        support::child(&self.syntax)
15358    }
15359    #[inline]
15360    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15361        support::token(&self.syntax, SyntaxKind::L_PAREN)
15362    }
15363    #[inline]
15364    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15365        support::token(&self.syntax, SyntaxKind::R_PAREN)
15366    }
15367    #[inline]
15368    pub fn ignore_token(&self) -> Option<SyntaxToken> {
15369        support::token(&self.syntax, SyntaxKind::IGNORE_KW)
15370    }
15371    #[inline]
15372    pub fn nulls_token(&self) -> Option<SyntaxToken> {
15373        support::token(&self.syntax, SyntaxKind::NULLS_KW)
15374    }
15375    #[inline]
15376    pub fn over_token(&self) -> Option<SyntaxToken> {
15377        support::token(&self.syntax, SyntaxKind::OVER_KW)
15378    }
15379    #[inline]
15380    pub fn respect_token(&self) -> Option<SyntaxToken> {
15381        support::token(&self.syntax, SyntaxKind::RESPECT_KW)
15382    }
15383}
15384
15385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15386pub struct OverlayFn {
15387    pub(crate) syntax: SyntaxNode,
15388}
15389impl OverlayFn {
15390    #[inline]
15391    pub fn expr(&self) -> Option<Expr> {
15392        support::child(&self.syntax)
15393    }
15394    #[inline]
15395    pub fn exprs(&self) -> AstChildren<Expr> {
15396        support::children(&self.syntax)
15397    }
15398    #[inline]
15399    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15400        support::token(&self.syntax, SyntaxKind::L_PAREN)
15401    }
15402    #[inline]
15403    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15404        support::token(&self.syntax, SyntaxKind::R_PAREN)
15405    }
15406    #[inline]
15407    pub fn for_token(&self) -> Option<SyntaxToken> {
15408        support::token(&self.syntax, SyntaxKind::FOR_KW)
15409    }
15410    #[inline]
15411    pub fn from_token(&self) -> Option<SyntaxToken> {
15412        support::token(&self.syntax, SyntaxKind::FROM_KW)
15413    }
15414    #[inline]
15415    pub fn overlay_token(&self) -> Option<SyntaxToken> {
15416        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
15417    }
15418    #[inline]
15419    pub fn placing_token(&self) -> Option<SyntaxToken> {
15420        support::token(&self.syntax, SyntaxKind::PLACING_KW)
15421    }
15422}
15423
15424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15425pub struct OwnedByRoles {
15426    pub(crate) syntax: SyntaxNode,
15427}
15428impl OwnedByRoles {
15429    #[inline]
15430    pub fn role_ref_list(&self) -> Option<RoleRefList> {
15431        support::child(&self.syntax)
15432    }
15433    #[inline]
15434    pub fn by_token(&self) -> Option<SyntaxToken> {
15435        support::token(&self.syntax, SyntaxKind::BY_KW)
15436    }
15437    #[inline]
15438    pub fn owned_token(&self) -> Option<SyntaxToken> {
15439        support::token(&self.syntax, SyntaxKind::OWNED_KW)
15440    }
15441}
15442
15443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15444pub struct OwnerTo {
15445    pub(crate) syntax: SyntaxNode,
15446}
15447impl OwnerTo {
15448    #[inline]
15449    pub fn role_ref(&self) -> Option<RoleRef> {
15450        support::child(&self.syntax)
15451    }
15452    #[inline]
15453    pub fn owner_token(&self) -> Option<SyntaxToken> {
15454        support::token(&self.syntax, SyntaxKind::OWNER_KW)
15455    }
15456    #[inline]
15457    pub fn to_token(&self) -> Option<SyntaxToken> {
15458        support::token(&self.syntax, SyntaxKind::TO_KW)
15459    }
15460}
15461
15462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15463pub struct ParallelFuncOption {
15464    pub(crate) syntax: SyntaxNode,
15465}
15466impl ParallelFuncOption {
15467    #[inline]
15468    pub fn ident_token(&self) -> Option<SyntaxToken> {
15469        support::token(&self.syntax, SyntaxKind::IDENT)
15470    }
15471    #[inline]
15472    pub fn parallel_token(&self) -> Option<SyntaxToken> {
15473        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
15474    }
15475}
15476
15477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15478pub struct Param {
15479    pub(crate) syntax: SyntaxNode,
15480}
15481impl Param {
15482    #[inline]
15483    pub fn mode(&self) -> Option<ParamMode> {
15484        support::child(&self.syntax)
15485    }
15486    #[inline]
15487    pub fn name(&self) -> Option<Name> {
15488        support::child(&self.syntax)
15489    }
15490    #[inline]
15491    pub fn param_default(&self) -> Option<ParamDefault> {
15492        support::child(&self.syntax)
15493    }
15494    #[inline]
15495    pub fn ty(&self) -> Option<Type> {
15496        support::child(&self.syntax)
15497    }
15498}
15499
15500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15501pub struct ParamDefault {
15502    pub(crate) syntax: SyntaxNode,
15503}
15504impl ParamDefault {
15505    #[inline]
15506    pub fn expr(&self) -> Option<Expr> {
15507        support::child(&self.syntax)
15508    }
15509    #[inline]
15510    pub fn eq_token(&self) -> Option<SyntaxToken> {
15511        support::token(&self.syntax, SyntaxKind::EQ)
15512    }
15513    #[inline]
15514    pub fn default_token(&self) -> Option<SyntaxToken> {
15515        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15516    }
15517}
15518
15519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15520pub struct ParamIn {
15521    pub(crate) syntax: SyntaxNode,
15522}
15523impl ParamIn {
15524    #[inline]
15525    pub fn in_token(&self) -> Option<SyntaxToken> {
15526        support::token(&self.syntax, SyntaxKind::IN_KW)
15527    }
15528}
15529
15530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15531pub struct ParamInOut {
15532    pub(crate) syntax: SyntaxNode,
15533}
15534impl ParamInOut {
15535    #[inline]
15536    pub fn in_token(&self) -> Option<SyntaxToken> {
15537        support::token(&self.syntax, SyntaxKind::IN_KW)
15538    }
15539    #[inline]
15540    pub fn inout_token(&self) -> Option<SyntaxToken> {
15541        support::token(&self.syntax, SyntaxKind::INOUT_KW)
15542    }
15543    #[inline]
15544    pub fn out_token(&self) -> Option<SyntaxToken> {
15545        support::token(&self.syntax, SyntaxKind::OUT_KW)
15546    }
15547}
15548
15549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15550pub struct ParamList {
15551    pub(crate) syntax: SyntaxNode,
15552}
15553impl ParamList {
15554    #[inline]
15555    pub fn params(&self) -> AstChildren<Param> {
15556        support::children(&self.syntax)
15557    }
15558}
15559
15560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15561pub struct ParamOut {
15562    pub(crate) syntax: SyntaxNode,
15563}
15564impl ParamOut {
15565    #[inline]
15566    pub fn out_token(&self) -> Option<SyntaxToken> {
15567        support::token(&self.syntax, SyntaxKind::OUT_KW)
15568    }
15569}
15570
15571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15572pub struct ParamVariadic {
15573    pub(crate) syntax: SyntaxNode,
15574}
15575impl ParamVariadic {
15576    #[inline]
15577    pub fn variadic_token(&self) -> Option<SyntaxToken> {
15578        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
15579    }
15580}
15581
15582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15583pub struct ParenExpr {
15584    pub(crate) syntax: SyntaxNode,
15585}
15586impl ParenExpr {
15587    #[inline]
15588    pub fn expr(&self) -> Option<Expr> {
15589        support::child(&self.syntax)
15590    }
15591    #[inline]
15592    pub fn from_item(&self) -> Option<FromItem> {
15593        support::child(&self.syntax)
15594    }
15595    #[inline]
15596    pub fn select(&self) -> Option<Select> {
15597        support::child(&self.syntax)
15598    }
15599    #[inline]
15600    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15601        support::token(&self.syntax, SyntaxKind::L_PAREN)
15602    }
15603    #[inline]
15604    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15605        support::token(&self.syntax, SyntaxKind::R_PAREN)
15606    }
15607}
15608
15609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15610pub struct ParenGraphPattern {
15611    pub(crate) syntax: SyntaxNode,
15612}
15613impl ParenGraphPattern {
15614    #[inline]
15615    pub fn path_pattern(&self) -> Option<PathPattern> {
15616        support::child(&self.syntax)
15617    }
15618    #[inline]
15619    pub fn where_clause(&self) -> Option<WhereClause> {
15620        support::child(&self.syntax)
15621    }
15622    #[inline]
15623    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15624        support::token(&self.syntax, SyntaxKind::L_PAREN)
15625    }
15626    #[inline]
15627    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15628        support::token(&self.syntax, SyntaxKind::R_PAREN)
15629    }
15630}
15631
15632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15633pub struct ParenSelect {
15634    pub(crate) syntax: SyntaxNode,
15635}
15636impl ParenSelect {
15637    #[inline]
15638    pub fn select(&self) -> Option<SelectVariant> {
15639        support::child(&self.syntax)
15640    }
15641    #[inline]
15642    pub fn with_clause(&self) -> Option<WithClause> {
15643        support::child(&self.syntax)
15644    }
15645    #[inline]
15646    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15647        support::token(&self.syntax, SyntaxKind::L_PAREN)
15648    }
15649    #[inline]
15650    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15651        support::token(&self.syntax, SyntaxKind::R_PAREN)
15652    }
15653    #[inline]
15654    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15655        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15656    }
15657}
15658
15659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15660pub struct Partition {
15661    pub(crate) syntax: SyntaxNode,
15662}
15663impl Partition {
15664    #[inline]
15665    pub fn partition_type(&self) -> Option<PartitionType> {
15666        support::child(&self.syntax)
15667    }
15668    #[inline]
15669    pub fn path(&self) -> Option<Path> {
15670        support::child(&self.syntax)
15671    }
15672    #[inline]
15673    pub fn partition_token(&self) -> Option<SyntaxToken> {
15674        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15675    }
15676}
15677
15678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15679pub struct PartitionBy {
15680    pub(crate) syntax: SyntaxNode,
15681}
15682impl PartitionBy {
15683    #[inline]
15684    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
15685        support::child(&self.syntax)
15686    }
15687    #[inline]
15688    pub fn by_token(&self) -> Option<SyntaxToken> {
15689        support::token(&self.syntax, SyntaxKind::BY_KW)
15690    }
15691    #[inline]
15692    pub fn ident_token(&self) -> Option<SyntaxToken> {
15693        support::token(&self.syntax, SyntaxKind::IDENT)
15694    }
15695    #[inline]
15696    pub fn partition_token(&self) -> Option<SyntaxToken> {
15697        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15698    }
15699    #[inline]
15700    pub fn range_token(&self) -> Option<SyntaxToken> {
15701        support::token(&self.syntax, SyntaxKind::RANGE_KW)
15702    }
15703}
15704
15705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15706pub struct PartitionDefault {
15707    pub(crate) syntax: SyntaxNode,
15708}
15709impl PartitionDefault {
15710    #[inline]
15711    pub fn default_token(&self) -> Option<SyntaxToken> {
15712        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15713    }
15714}
15715
15716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15717pub struct PartitionForValuesFrom {
15718    pub(crate) syntax: SyntaxNode,
15719}
15720impl PartitionForValuesFrom {
15721    #[inline]
15722    pub fn exprs(&self) -> AstChildren<Expr> {
15723        support::children(&self.syntax)
15724    }
15725    #[inline]
15726    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15727        support::token(&self.syntax, SyntaxKind::L_PAREN)
15728    }
15729    #[inline]
15730    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15731        support::token(&self.syntax, SyntaxKind::R_PAREN)
15732    }
15733    #[inline]
15734    pub fn for_token(&self) -> Option<SyntaxToken> {
15735        support::token(&self.syntax, SyntaxKind::FOR_KW)
15736    }
15737    #[inline]
15738    pub fn from_token(&self) -> Option<SyntaxToken> {
15739        support::token(&self.syntax, SyntaxKind::FROM_KW)
15740    }
15741    #[inline]
15742    pub fn to_token(&self) -> Option<SyntaxToken> {
15743        support::token(&self.syntax, SyntaxKind::TO_KW)
15744    }
15745    #[inline]
15746    pub fn values_token(&self) -> Option<SyntaxToken> {
15747        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15748    }
15749}
15750
15751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15752pub struct PartitionForValuesIn {
15753    pub(crate) syntax: SyntaxNode,
15754}
15755impl PartitionForValuesIn {
15756    #[inline]
15757    pub fn exprs(&self) -> AstChildren<Expr> {
15758        support::children(&self.syntax)
15759    }
15760    #[inline]
15761    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15762        support::token(&self.syntax, SyntaxKind::L_PAREN)
15763    }
15764    #[inline]
15765    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15766        support::token(&self.syntax, SyntaxKind::R_PAREN)
15767    }
15768    #[inline]
15769    pub fn for_token(&self) -> Option<SyntaxToken> {
15770        support::token(&self.syntax, SyntaxKind::FOR_KW)
15771    }
15772    #[inline]
15773    pub fn in_token(&self) -> Option<SyntaxToken> {
15774        support::token(&self.syntax, SyntaxKind::IN_KW)
15775    }
15776    #[inline]
15777    pub fn values_token(&self) -> Option<SyntaxToken> {
15778        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15779    }
15780}
15781
15782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15783pub struct PartitionForValuesWith {
15784    pub(crate) syntax: SyntaxNode,
15785}
15786impl PartitionForValuesWith {
15787    #[inline]
15788    pub fn literal(&self) -> Option<Literal> {
15789        support::child(&self.syntax)
15790    }
15791    #[inline]
15792    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15793        support::token(&self.syntax, SyntaxKind::L_PAREN)
15794    }
15795    #[inline]
15796    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15797        support::token(&self.syntax, SyntaxKind::R_PAREN)
15798    }
15799    #[inline]
15800    pub fn comma_token(&self) -> Option<SyntaxToken> {
15801        support::token(&self.syntax, SyntaxKind::COMMA)
15802    }
15803    #[inline]
15804    pub fn for_token(&self) -> Option<SyntaxToken> {
15805        support::token(&self.syntax, SyntaxKind::FOR_KW)
15806    }
15807    #[inline]
15808    pub fn ident_token(&self) -> Option<SyntaxToken> {
15809        support::token(&self.syntax, SyntaxKind::IDENT)
15810    }
15811    #[inline]
15812    pub fn values_token(&self) -> Option<SyntaxToken> {
15813        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15814    }
15815    #[inline]
15816    pub fn with_token(&self) -> Option<SyntaxToken> {
15817        support::token(&self.syntax, SyntaxKind::WITH_KW)
15818    }
15819}
15820
15821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15822pub struct PartitionItem {
15823    pub(crate) syntax: SyntaxNode,
15824}
15825impl PartitionItem {
15826    #[inline]
15827    pub fn attribute_list(&self) -> Option<AttributeList> {
15828        support::child(&self.syntax)
15829    }
15830    #[inline]
15831    pub fn collate(&self) -> Option<Collate> {
15832        support::child(&self.syntax)
15833    }
15834    #[inline]
15835    pub fn expr(&self) -> Option<Expr> {
15836        support::child(&self.syntax)
15837    }
15838    #[inline]
15839    pub fn nulls_first(&self) -> Option<NullsFirst> {
15840        support::child(&self.syntax)
15841    }
15842    #[inline]
15843    pub fn nulls_last(&self) -> Option<NullsLast> {
15844        support::child(&self.syntax)
15845    }
15846    #[inline]
15847    pub fn path(&self) -> Option<Path> {
15848        support::child(&self.syntax)
15849    }
15850    #[inline]
15851    pub fn sort_asc(&self) -> Option<SortAsc> {
15852        support::child(&self.syntax)
15853    }
15854    #[inline]
15855    pub fn sort_desc(&self) -> Option<SortDesc> {
15856        support::child(&self.syntax)
15857    }
15858    #[inline]
15859    pub fn sort_using(&self) -> Option<SortUsing> {
15860        support::child(&self.syntax)
15861    }
15862}
15863
15864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15865pub struct PartitionItemList {
15866    pub(crate) syntax: SyntaxNode,
15867}
15868impl PartitionItemList {
15869    #[inline]
15870    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
15871        support::children(&self.syntax)
15872    }
15873    #[inline]
15874    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15875        support::token(&self.syntax, SyntaxKind::L_PAREN)
15876    }
15877    #[inline]
15878    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15879        support::token(&self.syntax, SyntaxKind::R_PAREN)
15880    }
15881}
15882
15883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15884pub struct PartitionList {
15885    pub(crate) syntax: SyntaxNode,
15886}
15887impl PartitionList {
15888    #[inline]
15889    pub fn partitions(&self) -> AstChildren<Partition> {
15890        support::children(&self.syntax)
15891    }
15892    #[inline]
15893    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15894        support::token(&self.syntax, SyntaxKind::L_PAREN)
15895    }
15896    #[inline]
15897    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15898        support::token(&self.syntax, SyntaxKind::R_PAREN)
15899    }
15900}
15901
15902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15903pub struct PartitionOf {
15904    pub(crate) syntax: SyntaxNode,
15905}
15906impl PartitionOf {
15907    #[inline]
15908    pub fn path(&self) -> Option<Path> {
15909        support::child(&self.syntax)
15910    }
15911    #[inline]
15912    pub fn of_token(&self) -> Option<SyntaxToken> {
15913        support::token(&self.syntax, SyntaxKind::OF_KW)
15914    }
15915    #[inline]
15916    pub fn partition_token(&self) -> Option<SyntaxToken> {
15917        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15918    }
15919}
15920
15921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15922pub struct Path {
15923    pub(crate) syntax: SyntaxNode,
15924}
15925impl Path {
15926    #[inline]
15927    pub fn qualifier(&self) -> Option<Path> {
15928        support::child(&self.syntax)
15929    }
15930    #[inline]
15931    pub fn segment(&self) -> Option<PathSegment> {
15932        support::child(&self.syntax)
15933    }
15934    #[inline]
15935    pub fn dot_token(&self) -> Option<SyntaxToken> {
15936        support::token(&self.syntax, SyntaxKind::DOT)
15937    }
15938}
15939
15940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15941pub struct PathFactor {
15942    pub(crate) syntax: SyntaxNode,
15943}
15944impl PathFactor {
15945    #[inline]
15946    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
15947        support::child(&self.syntax)
15948    }
15949    #[inline]
15950    pub fn path_primary(&self) -> Option<PathPrimary> {
15951        support::child(&self.syntax)
15952    }
15953}
15954
15955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15956pub struct PathList {
15957    pub(crate) syntax: SyntaxNode,
15958}
15959impl PathList {
15960    #[inline]
15961    pub fn paths(&self) -> AstChildren<Path> {
15962        support::children(&self.syntax)
15963    }
15964    #[inline]
15965    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15966        support::token(&self.syntax, SyntaxKind::L_PAREN)
15967    }
15968    #[inline]
15969    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15970        support::token(&self.syntax, SyntaxKind::R_PAREN)
15971    }
15972}
15973
15974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15975pub struct PathPattern {
15976    pub(crate) syntax: SyntaxNode,
15977}
15978impl PathPattern {
15979    #[inline]
15980    pub fn path_factor(&self) -> Option<PathFactor> {
15981        support::child(&self.syntax)
15982    }
15983    #[inline]
15984    pub fn path_factors(&self) -> AstChildren<PathFactor> {
15985        support::children(&self.syntax)
15986    }
15987}
15988
15989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15990pub struct PathPatternList {
15991    pub(crate) syntax: SyntaxNode,
15992}
15993impl PathPatternList {
15994    #[inline]
15995    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
15996        support::children(&self.syntax)
15997    }
15998}
15999
16000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16001pub struct PathSegment {
16002    pub(crate) syntax: SyntaxNode,
16003}
16004impl PathSegment {
16005    #[inline]
16006    pub fn name(&self) -> Option<Name> {
16007        support::child(&self.syntax)
16008    }
16009    #[inline]
16010    pub fn name_ref(&self) -> Option<NameRef> {
16011        support::child(&self.syntax)
16012    }
16013}
16014
16015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16016pub struct PathType {
16017    pub(crate) syntax: SyntaxNode,
16018}
16019impl PathType {
16020    #[inline]
16021    pub fn arg_list(&self) -> Option<ArgList> {
16022        support::child(&self.syntax)
16023    }
16024    #[inline]
16025    pub fn path(&self) -> Option<Path> {
16026        support::child(&self.syntax)
16027    }
16028    #[inline]
16029    pub fn setof_token(&self) -> Option<SyntaxToken> {
16030        support::token(&self.syntax, SyntaxKind::SETOF_KW)
16031    }
16032}
16033
16034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16035pub struct PercentType {
16036    pub(crate) syntax: SyntaxNode,
16037}
16038impl PercentType {
16039    #[inline]
16040    pub fn path(&self) -> Option<Path> {
16041        support::child(&self.syntax)
16042    }
16043    #[inline]
16044    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
16045        support::child(&self.syntax)
16046    }
16047    #[inline]
16048    pub fn setof_token(&self) -> Option<SyntaxToken> {
16049        support::token(&self.syntax, SyntaxKind::SETOF_KW)
16050    }
16051}
16052
16053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16054pub struct PercentTypeClause {
16055    pub(crate) syntax: SyntaxNode,
16056}
16057impl PercentTypeClause {
16058    #[inline]
16059    pub fn percent_token(&self) -> Option<SyntaxToken> {
16060        support::token(&self.syntax, SyntaxKind::PERCENT)
16061    }
16062    #[inline]
16063    pub fn type_token(&self) -> Option<SyntaxToken> {
16064        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16065    }
16066}
16067
16068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16069pub struct PositionFn {
16070    pub(crate) syntax: SyntaxNode,
16071}
16072impl PositionFn {
16073    #[inline]
16074    pub fn expr(&self) -> Option<Expr> {
16075        support::child(&self.syntax)
16076    }
16077    #[inline]
16078    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16079        support::token(&self.syntax, SyntaxKind::L_PAREN)
16080    }
16081    #[inline]
16082    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16083        support::token(&self.syntax, SyntaxKind::R_PAREN)
16084    }
16085    #[inline]
16086    pub fn in_token(&self) -> Option<SyntaxToken> {
16087        support::token(&self.syntax, SyntaxKind::IN_KW)
16088    }
16089    #[inline]
16090    pub fn position_token(&self) -> Option<SyntaxToken> {
16091        support::token(&self.syntax, SyntaxKind::POSITION_KW)
16092    }
16093}
16094
16095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16096pub struct PostfixExpr {
16097    pub(crate) syntax: SyntaxNode,
16098}
16099impl PostfixExpr {
16100    #[inline]
16101    pub fn expr(&self) -> Option<Expr> {
16102        support::child(&self.syntax)
16103    }
16104}
16105
16106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16107pub struct PrefixExpr {
16108    pub(crate) syntax: SyntaxNode,
16109}
16110impl PrefixExpr {
16111    #[inline]
16112    pub fn expr(&self) -> Option<Expr> {
16113        support::child(&self.syntax)
16114    }
16115}
16116
16117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16118pub struct Prepare {
16119    pub(crate) syntax: SyntaxNode,
16120}
16121impl Prepare {
16122    #[inline]
16123    pub fn name(&self) -> Option<Name> {
16124        support::child(&self.syntax)
16125    }
16126    #[inline]
16127    pub fn param_list(&self) -> Option<ParamList> {
16128        support::child(&self.syntax)
16129    }
16130    #[inline]
16131    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
16132        support::child(&self.syntax)
16133    }
16134    #[inline]
16135    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16136        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16137    }
16138    #[inline]
16139    pub fn as_token(&self) -> Option<SyntaxToken> {
16140        support::token(&self.syntax, SyntaxKind::AS_KW)
16141    }
16142    #[inline]
16143    pub fn prepare_token(&self) -> Option<SyntaxToken> {
16144        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
16145    }
16146}
16147
16148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16149pub struct PrepareTransaction {
16150    pub(crate) syntax: SyntaxNode,
16151}
16152impl PrepareTransaction {
16153    #[inline]
16154    pub fn literal(&self) -> Option<Literal> {
16155        support::child(&self.syntax)
16156    }
16157    #[inline]
16158    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16159        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16160    }
16161    #[inline]
16162    pub fn prepare_token(&self) -> Option<SyntaxToken> {
16163        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
16164    }
16165    #[inline]
16166    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16167        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16168    }
16169}
16170
16171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16172pub struct PreserveRows {
16173    pub(crate) syntax: SyntaxNode,
16174}
16175impl PreserveRows {
16176    #[inline]
16177    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16178        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16179    }
16180    #[inline]
16181    pub fn rows_token(&self) -> Option<SyntaxToken> {
16182        support::token(&self.syntax, SyntaxKind::ROWS_KW)
16183    }
16184}
16185
16186#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16187pub struct PrimaryKeyConstraint {
16188    pub(crate) syntax: SyntaxNode,
16189}
16190impl PrimaryKeyConstraint {
16191    #[inline]
16192    pub fn column_list(&self) -> Option<ColumnList> {
16193        support::child(&self.syntax)
16194    }
16195    #[inline]
16196    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
16197        support::child(&self.syntax)
16198    }
16199    #[inline]
16200    pub fn constraint_index_tablespace(&self) -> Option<ConstraintIndexTablespace> {
16201        support::child(&self.syntax)
16202    }
16203    #[inline]
16204    pub fn constraint_name(&self) -> Option<ConstraintName> {
16205        support::child(&self.syntax)
16206    }
16207    #[inline]
16208    pub fn using_index(&self) -> Option<UsingIndex> {
16209        support::child(&self.syntax)
16210    }
16211    #[inline]
16212    pub fn with_params(&self) -> Option<WithParams> {
16213        support::child(&self.syntax)
16214    }
16215    #[inline]
16216    pub fn key_token(&self) -> Option<SyntaxToken> {
16217        support::token(&self.syntax, SyntaxKind::KEY_KW)
16218    }
16219    #[inline]
16220    pub fn primary_token(&self) -> Option<SyntaxToken> {
16221        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
16222    }
16223}
16224
16225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16226pub struct Prior {
16227    pub(crate) syntax: SyntaxNode,
16228}
16229impl Prior {
16230    #[inline]
16231    pub fn prior_token(&self) -> Option<SyntaxToken> {
16232        support::token(&self.syntax, SyntaxKind::PRIOR_KW)
16233    }
16234}
16235
16236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16237pub struct PrivilegeObjects {
16238    pub(crate) syntax: SyntaxNode,
16239}
16240impl PrivilegeObjects {
16241    #[inline]
16242    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
16243        support::child(&self.syntax)
16244    }
16245    #[inline]
16246    pub fn literals(&self) -> AstChildren<Literal> {
16247        support::children(&self.syntax)
16248    }
16249    #[inline]
16250    pub fn name_refs(&self) -> AstChildren<NameRef> {
16251        support::children(&self.syntax)
16252    }
16253    #[inline]
16254    pub fn paths(&self) -> AstChildren<Path> {
16255        support::children(&self.syntax)
16256    }
16257    #[inline]
16258    pub fn types(&self) -> AstChildren<Type> {
16259        support::children(&self.syntax)
16260    }
16261    #[inline]
16262    pub fn all_token(&self) -> Option<SyntaxToken> {
16263        support::token(&self.syntax, SyntaxKind::ALL_KW)
16264    }
16265    #[inline]
16266    pub fn data_token(&self) -> Option<SyntaxToken> {
16267        support::token(&self.syntax, SyntaxKind::DATA_KW)
16268    }
16269    #[inline]
16270    pub fn database_token(&self) -> Option<SyntaxToken> {
16271        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
16272    }
16273    #[inline]
16274    pub fn domain_token(&self) -> Option<SyntaxToken> {
16275        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
16276    }
16277    #[inline]
16278    pub fn foreign_token(&self) -> Option<SyntaxToken> {
16279        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
16280    }
16281    #[inline]
16282    pub fn function_token(&self) -> Option<SyntaxToken> {
16283        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16284    }
16285    #[inline]
16286    pub fn functions_token(&self) -> Option<SyntaxToken> {
16287        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
16288    }
16289    #[inline]
16290    pub fn graph_token(&self) -> Option<SyntaxToken> {
16291        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
16292    }
16293    #[inline]
16294    pub fn in_token(&self) -> Option<SyntaxToken> {
16295        support::token(&self.syntax, SyntaxKind::IN_KW)
16296    }
16297    #[inline]
16298    pub fn language_token(&self) -> Option<SyntaxToken> {
16299        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
16300    }
16301    #[inline]
16302    pub fn large_token(&self) -> Option<SyntaxToken> {
16303        support::token(&self.syntax, SyntaxKind::LARGE_KW)
16304    }
16305    #[inline]
16306    pub fn object_token(&self) -> Option<SyntaxToken> {
16307        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
16308    }
16309    #[inline]
16310    pub fn parameter_token(&self) -> Option<SyntaxToken> {
16311        support::token(&self.syntax, SyntaxKind::PARAMETER_KW)
16312    }
16313    #[inline]
16314    pub fn procedure_token(&self) -> Option<SyntaxToken> {
16315        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
16316    }
16317    #[inline]
16318    pub fn procedures_token(&self) -> Option<SyntaxToken> {
16319        support::token(&self.syntax, SyntaxKind::PROCEDURES_KW)
16320    }
16321    #[inline]
16322    pub fn property_token(&self) -> Option<SyntaxToken> {
16323        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
16324    }
16325    #[inline]
16326    pub fn routine_token(&self) -> Option<SyntaxToken> {
16327        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
16328    }
16329    #[inline]
16330    pub fn routines_token(&self) -> Option<SyntaxToken> {
16331        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
16332    }
16333    #[inline]
16334    pub fn schema_token(&self) -> Option<SyntaxToken> {
16335        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16336    }
16337    #[inline]
16338    pub fn sequence_token(&self) -> Option<SyntaxToken> {
16339        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
16340    }
16341    #[inline]
16342    pub fn sequences_token(&self) -> Option<SyntaxToken> {
16343        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
16344    }
16345    #[inline]
16346    pub fn server_token(&self) -> Option<SyntaxToken> {
16347        support::token(&self.syntax, SyntaxKind::SERVER_KW)
16348    }
16349    #[inline]
16350    pub fn table_token(&self) -> Option<SyntaxToken> {
16351        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16352    }
16353    #[inline]
16354    pub fn tables_token(&self) -> Option<SyntaxToken> {
16355        support::token(&self.syntax, SyntaxKind::TABLES_KW)
16356    }
16357    #[inline]
16358    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16359        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16360    }
16361    #[inline]
16362    pub fn type_token(&self) -> Option<SyntaxToken> {
16363        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16364    }
16365    #[inline]
16366    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
16367        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
16368    }
16369}
16370
16371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16372pub struct PrivilegeTarget {
16373    pub(crate) syntax: SyntaxNode,
16374}
16375impl PrivilegeTarget {
16376    #[inline]
16377    pub fn functions_token(&self) -> Option<SyntaxToken> {
16378        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
16379    }
16380    #[inline]
16381    pub fn large_token(&self) -> Option<SyntaxToken> {
16382        support::token(&self.syntax, SyntaxKind::LARGE_KW)
16383    }
16384    #[inline]
16385    pub fn objects_token(&self) -> Option<SyntaxToken> {
16386        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
16387    }
16388    #[inline]
16389    pub fn routines_token(&self) -> Option<SyntaxToken> {
16390        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
16391    }
16392    #[inline]
16393    pub fn schemas_token(&self) -> Option<SyntaxToken> {
16394        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
16395    }
16396    #[inline]
16397    pub fn sequences_token(&self) -> Option<SyntaxToken> {
16398        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
16399    }
16400    #[inline]
16401    pub fn tables_token(&self) -> Option<SyntaxToken> {
16402        support::token(&self.syntax, SyntaxKind::TABLES_KW)
16403    }
16404    #[inline]
16405    pub fn types_token(&self) -> Option<SyntaxToken> {
16406        support::token(&self.syntax, SyntaxKind::TYPES_KW)
16407    }
16408}
16409
16410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16411pub struct Privileges {
16412    pub(crate) syntax: SyntaxNode,
16413}
16414impl Privileges {
16415    #[inline]
16416    pub fn column_list(&self) -> Option<ColumnList> {
16417        support::child(&self.syntax)
16418    }
16419    #[inline]
16420    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
16421        support::child(&self.syntax)
16422    }
16423    #[inline]
16424    pub fn all_token(&self) -> Option<SyntaxToken> {
16425        support::token(&self.syntax, SyntaxKind::ALL_KW)
16426    }
16427    #[inline]
16428    pub fn privileges_token(&self) -> Option<SyntaxToken> {
16429        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
16430    }
16431}
16432
16433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16434pub struct Properties {
16435    pub(crate) syntax: SyntaxNode,
16436}
16437impl Properties {
16438    #[inline]
16439    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
16440        support::child(&self.syntax)
16441    }
16442    #[inline]
16443    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16444        support::token(&self.syntax, SyntaxKind::L_PAREN)
16445    }
16446    #[inline]
16447    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16448        support::token(&self.syntax, SyntaxKind::R_PAREN)
16449    }
16450    #[inline]
16451    pub fn properties_token(&self) -> Option<SyntaxToken> {
16452        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
16453    }
16454}
16455
16456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16457pub struct PublicationObject {
16458    pub(crate) syntax: SyntaxNode,
16459}
16460impl PublicationObject {
16461    #[inline]
16462    pub fn column_list(&self) -> Option<ColumnList> {
16463        support::child(&self.syntax)
16464    }
16465    #[inline]
16466    pub fn name_ref(&self) -> Option<NameRef> {
16467        support::child(&self.syntax)
16468    }
16469    #[inline]
16470    pub fn path(&self) -> Option<Path> {
16471        support::child(&self.syntax)
16472    }
16473    #[inline]
16474    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
16475        support::child(&self.syntax)
16476    }
16477    #[inline]
16478    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16479        support::token(&self.syntax, SyntaxKind::L_PAREN)
16480    }
16481    #[inline]
16482    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16483        support::token(&self.syntax, SyntaxKind::R_PAREN)
16484    }
16485    #[inline]
16486    pub fn star_token(&self) -> Option<SyntaxToken> {
16487        support::token(&self.syntax, SyntaxKind::STAR)
16488    }
16489    #[inline]
16490    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
16491        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
16492    }
16493    #[inline]
16494    pub fn in_token(&self) -> Option<SyntaxToken> {
16495        support::token(&self.syntax, SyntaxKind::IN_KW)
16496    }
16497    #[inline]
16498    pub fn only_token(&self) -> Option<SyntaxToken> {
16499        support::token(&self.syntax, SyntaxKind::ONLY_KW)
16500    }
16501    #[inline]
16502    pub fn schema_token(&self) -> Option<SyntaxToken> {
16503        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16504    }
16505    #[inline]
16506    pub fn table_token(&self) -> Option<SyntaxToken> {
16507        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16508    }
16509    #[inline]
16510    pub fn tables_token(&self) -> Option<SyntaxToken> {
16511        support::token(&self.syntax, SyntaxKind::TABLES_KW)
16512    }
16513}
16514
16515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16516pub struct ReadCommitted {
16517    pub(crate) syntax: SyntaxNode,
16518}
16519impl ReadCommitted {
16520    #[inline]
16521    pub fn committed_token(&self) -> Option<SyntaxToken> {
16522        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
16523    }
16524    #[inline]
16525    pub fn isolation_token(&self) -> Option<SyntaxToken> {
16526        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
16527    }
16528    #[inline]
16529    pub fn level_token(&self) -> Option<SyntaxToken> {
16530        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
16531    }
16532    #[inline]
16533    pub fn read_token(&self) -> Option<SyntaxToken> {
16534        support::token(&self.syntax, SyntaxKind::READ_KW)
16535    }
16536}
16537
16538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16539pub struct ReadOnly {
16540    pub(crate) syntax: SyntaxNode,
16541}
16542impl ReadOnly {
16543    #[inline]
16544    pub fn only_token(&self) -> Option<SyntaxToken> {
16545        support::token(&self.syntax, SyntaxKind::ONLY_KW)
16546    }
16547    #[inline]
16548    pub fn read_token(&self) -> Option<SyntaxToken> {
16549        support::token(&self.syntax, SyntaxKind::READ_KW)
16550    }
16551}
16552
16553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16554pub struct ReadUncommitted {
16555    pub(crate) syntax: SyntaxNode,
16556}
16557impl ReadUncommitted {
16558    #[inline]
16559    pub fn isolation_token(&self) -> Option<SyntaxToken> {
16560        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
16561    }
16562    #[inline]
16563    pub fn level_token(&self) -> Option<SyntaxToken> {
16564        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
16565    }
16566    #[inline]
16567    pub fn read_token(&self) -> Option<SyntaxToken> {
16568        support::token(&self.syntax, SyntaxKind::READ_KW)
16569    }
16570    #[inline]
16571    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
16572        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
16573    }
16574}
16575
16576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16577pub struct ReadWrite {
16578    pub(crate) syntax: SyntaxNode,
16579}
16580impl ReadWrite {
16581    #[inline]
16582    pub fn read_token(&self) -> Option<SyntaxToken> {
16583        support::token(&self.syntax, SyntaxKind::READ_KW)
16584    }
16585    #[inline]
16586    pub fn write_token(&self) -> Option<SyntaxToken> {
16587        support::token(&self.syntax, SyntaxKind::WRITE_KW)
16588    }
16589}
16590
16591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16592pub struct Reassign {
16593    pub(crate) syntax: SyntaxNode,
16594}
16595impl Reassign {
16596    #[inline]
16597    pub fn new_roles(&self) -> Option<RoleRefList> {
16598        support::child(&self.syntax)
16599    }
16600    #[inline]
16601    pub fn old_roles(&self) -> Option<RoleRefList> {
16602        support::child(&self.syntax)
16603    }
16604    #[inline]
16605    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16606        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16607    }
16608    #[inline]
16609    pub fn by_token(&self) -> Option<SyntaxToken> {
16610        support::token(&self.syntax, SyntaxKind::BY_KW)
16611    }
16612    #[inline]
16613    pub fn owned_token(&self) -> Option<SyntaxToken> {
16614        support::token(&self.syntax, SyntaxKind::OWNED_KW)
16615    }
16616    #[inline]
16617    pub fn reassign_token(&self) -> Option<SyntaxToken> {
16618        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
16619    }
16620    #[inline]
16621    pub fn to_token(&self) -> Option<SyntaxToken> {
16622        support::token(&self.syntax, SyntaxKind::TO_KW)
16623    }
16624}
16625
16626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16627pub struct ReferencesConstraint {
16628    pub(crate) syntax: SyntaxNode,
16629}
16630impl ReferencesConstraint {
16631    #[inline]
16632    pub fn column(&self) -> Option<NameRef> {
16633        support::child(&self.syntax)
16634    }
16635    #[inline]
16636    pub fn constraint_name(&self) -> Option<ConstraintName> {
16637        support::child(&self.syntax)
16638    }
16639    #[inline]
16640    pub fn match_type(&self) -> Option<MatchType> {
16641        support::child(&self.syntax)
16642    }
16643    #[inline]
16644    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
16645        support::child(&self.syntax)
16646    }
16647    #[inline]
16648    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
16649        support::child(&self.syntax)
16650    }
16651    #[inline]
16652    pub fn table(&self) -> Option<Path> {
16653        support::child(&self.syntax)
16654    }
16655    #[inline]
16656    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16657        support::token(&self.syntax, SyntaxKind::L_PAREN)
16658    }
16659    #[inline]
16660    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16661        support::token(&self.syntax, SyntaxKind::R_PAREN)
16662    }
16663    #[inline]
16664    pub fn references_token(&self) -> Option<SyntaxToken> {
16665        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
16666    }
16667}
16668
16669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16670pub struct ReferencesTable {
16671    pub(crate) syntax: SyntaxNode,
16672}
16673impl ReferencesTable {
16674    #[inline]
16675    pub fn column_list(&self) -> Option<ColumnList> {
16676        support::child(&self.syntax)
16677    }
16678    #[inline]
16679    pub fn name_ref(&self) -> Option<NameRef> {
16680        support::child(&self.syntax)
16681    }
16682    #[inline]
16683    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16684        support::token(&self.syntax, SyntaxKind::L_PAREN)
16685    }
16686    #[inline]
16687    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16688        support::token(&self.syntax, SyntaxKind::R_PAREN)
16689    }
16690    #[inline]
16691    pub fn references_token(&self) -> Option<SyntaxToken> {
16692        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
16693    }
16694}
16695
16696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16697pub struct Referencing {
16698    pub(crate) syntax: SyntaxNode,
16699}
16700impl Referencing {
16701    #[inline]
16702    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
16703        support::children(&self.syntax)
16704    }
16705    #[inline]
16706    pub fn referencing_token(&self) -> Option<SyntaxToken> {
16707        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
16708    }
16709}
16710
16711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16712pub struct ReferencingTable {
16713    pub(crate) syntax: SyntaxNode,
16714}
16715impl ReferencingTable {
16716    #[inline]
16717    pub fn name_ref(&self) -> Option<NameRef> {
16718        support::child(&self.syntax)
16719    }
16720    #[inline]
16721    pub fn as_token(&self) -> Option<SyntaxToken> {
16722        support::token(&self.syntax, SyntaxKind::AS_KW)
16723    }
16724    #[inline]
16725    pub fn new_token(&self) -> Option<SyntaxToken> {
16726        support::token(&self.syntax, SyntaxKind::NEW_KW)
16727    }
16728    #[inline]
16729    pub fn old_token(&self) -> Option<SyntaxToken> {
16730        support::token(&self.syntax, SyntaxKind::OLD_KW)
16731    }
16732    #[inline]
16733    pub fn table_token(&self) -> Option<SyntaxToken> {
16734        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16735    }
16736}
16737
16738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16739pub struct Refresh {
16740    pub(crate) syntax: SyntaxNode,
16741}
16742impl Refresh {
16743    #[inline]
16744    pub fn path(&self) -> Option<Path> {
16745        support::child(&self.syntax)
16746    }
16747    #[inline]
16748    pub fn with_data(&self) -> Option<WithData> {
16749        support::child(&self.syntax)
16750    }
16751    #[inline]
16752    pub fn with_no_data(&self) -> Option<WithNoData> {
16753        support::child(&self.syntax)
16754    }
16755    #[inline]
16756    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16757        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16758    }
16759    #[inline]
16760    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
16761        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
16762    }
16763    #[inline]
16764    pub fn materialized_token(&self) -> Option<SyntaxToken> {
16765        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
16766    }
16767    #[inline]
16768    pub fn refresh_token(&self) -> Option<SyntaxToken> {
16769        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
16770    }
16771    #[inline]
16772    pub fn view_token(&self) -> Option<SyntaxToken> {
16773        support::token(&self.syntax, SyntaxKind::VIEW_KW)
16774    }
16775}
16776
16777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16778pub struct RefreshCollationVersion {
16779    pub(crate) syntax: SyntaxNode,
16780}
16781impl RefreshCollationVersion {
16782    #[inline]
16783    pub fn collation_token(&self) -> Option<SyntaxToken> {
16784        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
16785    }
16786    #[inline]
16787    pub fn refresh_token(&self) -> Option<SyntaxToken> {
16788        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
16789    }
16790    #[inline]
16791    pub fn version_token(&self) -> Option<SyntaxToken> {
16792        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16793    }
16794}
16795
16796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16797pub struct RefreshVersion {
16798    pub(crate) syntax: SyntaxNode,
16799}
16800impl RefreshVersion {
16801    #[inline]
16802    pub fn refresh_token(&self) -> Option<SyntaxToken> {
16803        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
16804    }
16805    #[inline]
16806    pub fn version_token(&self) -> Option<SyntaxToken> {
16807        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16808    }
16809}
16810
16811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16812pub struct Reindex {
16813    pub(crate) syntax: SyntaxNode,
16814}
16815impl Reindex {
16816    #[inline]
16817    pub fn path(&self) -> Option<Path> {
16818        support::child(&self.syntax)
16819    }
16820    #[inline]
16821    pub fn reindex_option_list(&self) -> Option<ReindexOptionList> {
16822        support::child(&self.syntax)
16823    }
16824    #[inline]
16825    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16826        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16827    }
16828    #[inline]
16829    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
16830        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
16831    }
16832    #[inline]
16833    pub fn database_token(&self) -> Option<SyntaxToken> {
16834        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
16835    }
16836    #[inline]
16837    pub fn index_token(&self) -> Option<SyntaxToken> {
16838        support::token(&self.syntax, SyntaxKind::INDEX_KW)
16839    }
16840    #[inline]
16841    pub fn reindex_token(&self) -> Option<SyntaxToken> {
16842        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
16843    }
16844    #[inline]
16845    pub fn schema_token(&self) -> Option<SyntaxToken> {
16846        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16847    }
16848    #[inline]
16849    pub fn system_token(&self) -> Option<SyntaxToken> {
16850        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
16851    }
16852    #[inline]
16853    pub fn table_token(&self) -> Option<SyntaxToken> {
16854        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16855    }
16856}
16857
16858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16859pub struct ReindexOption {
16860    pub(crate) syntax: SyntaxNode,
16861}
16862impl ReindexOption {
16863    #[inline]
16864    pub fn literal(&self) -> Option<Literal> {
16865        support::child(&self.syntax)
16866    }
16867    #[inline]
16868    pub fn name(&self) -> Option<Name> {
16869        support::child(&self.syntax)
16870    }
16871    #[inline]
16872    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
16873        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
16874    }
16875    #[inline]
16876    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16877        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16878    }
16879    #[inline]
16880    pub fn verbose_token(&self) -> Option<SyntaxToken> {
16881        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
16882    }
16883}
16884
16885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16886pub struct ReindexOptionList {
16887    pub(crate) syntax: SyntaxNode,
16888}
16889impl ReindexOptionList {
16890    #[inline]
16891    pub fn reindex_options(&self) -> AstChildren<ReindexOption> {
16892        support::children(&self.syntax)
16893    }
16894    #[inline]
16895    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16896        support::token(&self.syntax, SyntaxKind::L_PAREN)
16897    }
16898    #[inline]
16899    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16900        support::token(&self.syntax, SyntaxKind::R_PAREN)
16901    }
16902}
16903
16904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16905pub struct RelationName {
16906    pub(crate) syntax: SyntaxNode,
16907}
16908impl RelationName {
16909    #[inline]
16910    pub fn path(&self) -> Option<Path> {
16911        support::child(&self.syntax)
16912    }
16913    #[inline]
16914    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16915        support::token(&self.syntax, SyntaxKind::L_PAREN)
16916    }
16917    #[inline]
16918    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16919        support::token(&self.syntax, SyntaxKind::R_PAREN)
16920    }
16921    #[inline]
16922    pub fn star_token(&self) -> Option<SyntaxToken> {
16923        support::token(&self.syntax, SyntaxKind::STAR)
16924    }
16925    #[inline]
16926    pub fn only_token(&self) -> Option<SyntaxToken> {
16927        support::token(&self.syntax, SyntaxKind::ONLY_KW)
16928    }
16929}
16930
16931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16932pub struct Relative {
16933    pub(crate) syntax: SyntaxNode,
16934}
16935impl Relative {
16936    #[inline]
16937    pub fn expr(&self) -> Option<Expr> {
16938        support::child(&self.syntax)
16939    }
16940    #[inline]
16941    pub fn relative_token(&self) -> Option<SyntaxToken> {
16942        support::token(&self.syntax, SyntaxKind::RELATIVE_KW)
16943    }
16944}
16945
16946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16947pub struct ReleaseSavepoint {
16948    pub(crate) syntax: SyntaxNode,
16949}
16950impl ReleaseSavepoint {
16951    #[inline]
16952    pub fn name_ref(&self) -> Option<NameRef> {
16953        support::child(&self.syntax)
16954    }
16955    #[inline]
16956    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16957        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16958    }
16959    #[inline]
16960    pub fn release_token(&self) -> Option<SyntaxToken> {
16961        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
16962    }
16963    #[inline]
16964    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
16965        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
16966    }
16967}
16968
16969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16970pub struct RenameAttribute {
16971    pub(crate) syntax: SyntaxNode,
16972}
16973impl RenameAttribute {
16974    #[inline]
16975    pub fn cascade(&self) -> Option<Cascade> {
16976        support::child(&self.syntax)
16977    }
16978    #[inline]
16979    pub fn name(&self) -> Option<Name> {
16980        support::child(&self.syntax)
16981    }
16982    #[inline]
16983    pub fn name_ref(&self) -> Option<NameRef> {
16984        support::child(&self.syntax)
16985    }
16986    #[inline]
16987    pub fn restrict(&self) -> Option<Restrict> {
16988        support::child(&self.syntax)
16989    }
16990    #[inline]
16991    pub fn attribute_token(&self) -> Option<SyntaxToken> {
16992        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
16993    }
16994    #[inline]
16995    pub fn rename_token(&self) -> Option<SyntaxToken> {
16996        support::token(&self.syntax, SyntaxKind::RENAME_KW)
16997    }
16998    #[inline]
16999    pub fn to_token(&self) -> Option<SyntaxToken> {
17000        support::token(&self.syntax, SyntaxKind::TO_KW)
17001    }
17002}
17003
17004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17005pub struct RenameColumn {
17006    pub(crate) syntax: SyntaxNode,
17007}
17008impl RenameColumn {
17009    #[inline]
17010    pub fn column_token(&self) -> Option<SyntaxToken> {
17011        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
17012    }
17013    #[inline]
17014    pub fn rename_token(&self) -> Option<SyntaxToken> {
17015        support::token(&self.syntax, SyntaxKind::RENAME_KW)
17016    }
17017    #[inline]
17018    pub fn to_token(&self) -> Option<SyntaxToken> {
17019        support::token(&self.syntax, SyntaxKind::TO_KW)
17020    }
17021}
17022
17023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17024pub struct RenameConstraint {
17025    pub(crate) syntax: SyntaxNode,
17026}
17027impl RenameConstraint {
17028    #[inline]
17029    pub fn name(&self) -> Option<Name> {
17030        support::child(&self.syntax)
17031    }
17032    #[inline]
17033    pub fn name_ref(&self) -> Option<NameRef> {
17034        support::child(&self.syntax)
17035    }
17036    #[inline]
17037    pub fn constraint_token(&self) -> Option<SyntaxToken> {
17038        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
17039    }
17040    #[inline]
17041    pub fn rename_token(&self) -> Option<SyntaxToken> {
17042        support::token(&self.syntax, SyntaxKind::RENAME_KW)
17043    }
17044    #[inline]
17045    pub fn to_token(&self) -> Option<SyntaxToken> {
17046        support::token(&self.syntax, SyntaxKind::TO_KW)
17047    }
17048}
17049
17050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17051pub struct RenameTo {
17052    pub(crate) syntax: SyntaxNode,
17053}
17054impl RenameTo {
17055    #[inline]
17056    pub fn name(&self) -> Option<Name> {
17057        support::child(&self.syntax)
17058    }
17059    #[inline]
17060    pub fn rename_token(&self) -> Option<SyntaxToken> {
17061        support::token(&self.syntax, SyntaxKind::RENAME_KW)
17062    }
17063    #[inline]
17064    pub fn to_token(&self) -> Option<SyntaxToken> {
17065        support::token(&self.syntax, SyntaxKind::TO_KW)
17066    }
17067}
17068
17069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17070pub struct RenameValue {
17071    pub(crate) syntax: SyntaxNode,
17072}
17073impl RenameValue {
17074    #[inline]
17075    pub fn literal(&self) -> Option<Literal> {
17076        support::child(&self.syntax)
17077    }
17078    #[inline]
17079    pub fn rename_token(&self) -> Option<SyntaxToken> {
17080        support::token(&self.syntax, SyntaxKind::RENAME_KW)
17081    }
17082    #[inline]
17083    pub fn to_token(&self) -> Option<SyntaxToken> {
17084        support::token(&self.syntax, SyntaxKind::TO_KW)
17085    }
17086    #[inline]
17087    pub fn value_token(&self) -> Option<SyntaxToken> {
17088        support::token(&self.syntax, SyntaxKind::VALUE_KW)
17089    }
17090}
17091
17092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17093pub struct Repack {
17094    pub(crate) syntax: SyntaxNode,
17095}
17096impl Repack {
17097    #[inline]
17098    pub fn name_ref(&self) -> Option<NameRef> {
17099        support::child(&self.syntax)
17100    }
17101    #[inline]
17102    pub fn option_item_list(&self) -> Option<OptionItemList> {
17103        support::child(&self.syntax)
17104    }
17105    #[inline]
17106    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
17107        support::child(&self.syntax)
17108    }
17109    #[inline]
17110    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17111        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17112    }
17113    #[inline]
17114    pub fn index_token(&self) -> Option<SyntaxToken> {
17115        support::token(&self.syntax, SyntaxKind::INDEX_KW)
17116    }
17117    #[inline]
17118    pub fn repack_token(&self) -> Option<SyntaxToken> {
17119        support::token(&self.syntax, SyntaxKind::REPACK_KW)
17120    }
17121    #[inline]
17122    pub fn using_token(&self) -> Option<SyntaxToken> {
17123        support::token(&self.syntax, SyntaxKind::USING_KW)
17124    }
17125}
17126
17127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17128pub struct RepeatableClause {
17129    pub(crate) syntax: SyntaxNode,
17130}
17131impl RepeatableClause {
17132    #[inline]
17133    pub fn expr(&self) -> Option<Expr> {
17134        support::child(&self.syntax)
17135    }
17136    #[inline]
17137    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17138        support::token(&self.syntax, SyntaxKind::L_PAREN)
17139    }
17140    #[inline]
17141    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17142        support::token(&self.syntax, SyntaxKind::R_PAREN)
17143    }
17144    #[inline]
17145    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
17146        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
17147    }
17148}
17149
17150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17151pub struct RepeatableRead {
17152    pub(crate) syntax: SyntaxNode,
17153}
17154impl RepeatableRead {
17155    #[inline]
17156    pub fn isolation_token(&self) -> Option<SyntaxToken> {
17157        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
17158    }
17159    #[inline]
17160    pub fn level_token(&self) -> Option<SyntaxToken> {
17161        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
17162    }
17163    #[inline]
17164    pub fn read_token(&self) -> Option<SyntaxToken> {
17165        support::token(&self.syntax, SyntaxKind::READ_KW)
17166    }
17167    #[inline]
17168    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
17169        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
17170    }
17171}
17172
17173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17174pub struct ReplicaIdentity {
17175    pub(crate) syntax: SyntaxNode,
17176}
17177impl ReplicaIdentity {
17178    #[inline]
17179    pub fn name_ref(&self) -> Option<NameRef> {
17180        support::child(&self.syntax)
17181    }
17182    #[inline]
17183    pub fn default_token(&self) -> Option<SyntaxToken> {
17184        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17185    }
17186    #[inline]
17187    pub fn full_token(&self) -> Option<SyntaxToken> {
17188        support::token(&self.syntax, SyntaxKind::FULL_KW)
17189    }
17190    #[inline]
17191    pub fn identity_token(&self) -> Option<SyntaxToken> {
17192        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
17193    }
17194    #[inline]
17195    pub fn index_token(&self) -> Option<SyntaxToken> {
17196        support::token(&self.syntax, SyntaxKind::INDEX_KW)
17197    }
17198    #[inline]
17199    pub fn nothing_token(&self) -> Option<SyntaxToken> {
17200        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
17201    }
17202    #[inline]
17203    pub fn replica_token(&self) -> Option<SyntaxToken> {
17204        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
17205    }
17206    #[inline]
17207    pub fn using_token(&self) -> Option<SyntaxToken> {
17208        support::token(&self.syntax, SyntaxKind::USING_KW)
17209    }
17210}
17211
17212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17213pub struct Reset {
17214    pub(crate) syntax: SyntaxNode,
17215}
17216impl Reset {
17217    #[inline]
17218    pub fn path(&self) -> Option<Path> {
17219        support::child(&self.syntax)
17220    }
17221    #[inline]
17222    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17223        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17224    }
17225    #[inline]
17226    pub fn all_token(&self) -> Option<SyntaxToken> {
17227        support::token(&self.syntax, SyntaxKind::ALL_KW)
17228    }
17229    #[inline]
17230    pub fn authorization_token(&self) -> Option<SyntaxToken> {
17231        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
17232    }
17233    #[inline]
17234    pub fn isolation_token(&self) -> Option<SyntaxToken> {
17235        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
17236    }
17237    #[inline]
17238    pub fn level_token(&self) -> Option<SyntaxToken> {
17239        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
17240    }
17241    #[inline]
17242    pub fn reset_token(&self) -> Option<SyntaxToken> {
17243        support::token(&self.syntax, SyntaxKind::RESET_KW)
17244    }
17245    #[inline]
17246    pub fn session_token(&self) -> Option<SyntaxToken> {
17247        support::token(&self.syntax, SyntaxKind::SESSION_KW)
17248    }
17249    #[inline]
17250    pub fn time_token(&self) -> Option<SyntaxToken> {
17251        support::token(&self.syntax, SyntaxKind::TIME_KW)
17252    }
17253    #[inline]
17254    pub fn transaction_token(&self) -> Option<SyntaxToken> {
17255        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
17256    }
17257    #[inline]
17258    pub fn zone_token(&self) -> Option<SyntaxToken> {
17259        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17260    }
17261}
17262
17263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17264pub struct ResetConfigParam {
17265    pub(crate) syntax: SyntaxNode,
17266}
17267impl ResetConfigParam {
17268    #[inline]
17269    pub fn path(&self) -> Option<Path> {
17270        support::child(&self.syntax)
17271    }
17272    #[inline]
17273    pub fn all_token(&self) -> Option<SyntaxToken> {
17274        support::token(&self.syntax, SyntaxKind::ALL_KW)
17275    }
17276    #[inline]
17277    pub fn reset_token(&self) -> Option<SyntaxToken> {
17278        support::token(&self.syntax, SyntaxKind::RESET_KW)
17279    }
17280}
17281
17282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17283pub struct ResetFuncOption {
17284    pub(crate) syntax: SyntaxNode,
17285}
17286impl ResetFuncOption {
17287    #[inline]
17288    pub fn name_ref(&self) -> Option<NameRef> {
17289        support::child(&self.syntax)
17290    }
17291    #[inline]
17292    pub fn reset_token(&self) -> Option<SyntaxToken> {
17293        support::token(&self.syntax, SyntaxKind::RESET_KW)
17294    }
17295}
17296
17297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17298pub struct ResetOptions {
17299    pub(crate) syntax: SyntaxNode,
17300}
17301impl ResetOptions {
17302    #[inline]
17303    pub fn attribute_list(&self) -> Option<AttributeList> {
17304        support::child(&self.syntax)
17305    }
17306    #[inline]
17307    pub fn reset_token(&self) -> Option<SyntaxToken> {
17308        support::token(&self.syntax, SyntaxKind::RESET_KW)
17309    }
17310}
17311
17312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17313pub struct ResetSessionAuth {
17314    pub(crate) syntax: SyntaxNode,
17315}
17316impl ResetSessionAuth {
17317    #[inline]
17318    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17319        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17320    }
17321    #[inline]
17322    pub fn authorization_token(&self) -> Option<SyntaxToken> {
17323        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
17324    }
17325    #[inline]
17326    pub fn reset_token(&self) -> Option<SyntaxToken> {
17327        support::token(&self.syntax, SyntaxKind::RESET_KW)
17328    }
17329    #[inline]
17330    pub fn session_token(&self) -> Option<SyntaxToken> {
17331        support::token(&self.syntax, SyntaxKind::SESSION_KW)
17332    }
17333}
17334
17335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17336pub struct Restart {
17337    pub(crate) syntax: SyntaxNode,
17338}
17339impl Restart {
17340    #[inline]
17341    pub fn literal(&self) -> Option<Literal> {
17342        support::child(&self.syntax)
17343    }
17344    #[inline]
17345    pub fn restart_token(&self) -> Option<SyntaxToken> {
17346        support::token(&self.syntax, SyntaxKind::RESTART_KW)
17347    }
17348    #[inline]
17349    pub fn with_token(&self) -> Option<SyntaxToken> {
17350        support::token(&self.syntax, SyntaxKind::WITH_KW)
17351    }
17352}
17353
17354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17355pub struct Restrict {
17356    pub(crate) syntax: SyntaxNode,
17357}
17358impl Restrict {
17359    #[inline]
17360    pub fn restrict_token(&self) -> Option<SyntaxToken> {
17361        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
17362    }
17363}
17364
17365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17366pub struct RetType {
17367    pub(crate) syntax: SyntaxNode,
17368}
17369impl RetType {
17370    #[inline]
17371    pub fn table_arg_list(&self) -> Option<TableArgList> {
17372        support::child(&self.syntax)
17373    }
17374    #[inline]
17375    pub fn ty(&self) -> Option<Type> {
17376        support::child(&self.syntax)
17377    }
17378    #[inline]
17379    pub fn returns_token(&self) -> Option<SyntaxToken> {
17380        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
17381    }
17382    #[inline]
17383    pub fn table_token(&self) -> Option<SyntaxToken> {
17384        support::token(&self.syntax, SyntaxKind::TABLE_KW)
17385    }
17386}
17387
17388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17389pub struct ReturnFuncOption {
17390    pub(crate) syntax: SyntaxNode,
17391}
17392impl ReturnFuncOption {
17393    #[inline]
17394    pub fn expr(&self) -> Option<Expr> {
17395        support::child(&self.syntax)
17396    }
17397    #[inline]
17398    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17399        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17400    }
17401    #[inline]
17402    pub fn return_token(&self) -> Option<SyntaxToken> {
17403        support::token(&self.syntax, SyntaxKind::RETURN_KW)
17404    }
17405}
17406
17407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17408pub struct ReturningClause {
17409    pub(crate) syntax: SyntaxNode,
17410}
17411impl ReturningClause {
17412    #[inline]
17413    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
17414        support::child(&self.syntax)
17415    }
17416    #[inline]
17417    pub fn target_list(&self) -> Option<TargetList> {
17418        support::child(&self.syntax)
17419    }
17420    #[inline]
17421    pub fn returning_token(&self) -> Option<SyntaxToken> {
17422        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
17423    }
17424}
17425
17426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17427pub struct ReturningOption {
17428    pub(crate) syntax: SyntaxNode,
17429}
17430impl ReturningOption {
17431    #[inline]
17432    pub fn name(&self) -> Option<Name> {
17433        support::child(&self.syntax)
17434    }
17435    #[inline]
17436    pub fn as_token(&self) -> Option<SyntaxToken> {
17437        support::token(&self.syntax, SyntaxKind::AS_KW)
17438    }
17439    #[inline]
17440    pub fn new_token(&self) -> Option<SyntaxToken> {
17441        support::token(&self.syntax, SyntaxKind::NEW_KW)
17442    }
17443    #[inline]
17444    pub fn old_token(&self) -> Option<SyntaxToken> {
17445        support::token(&self.syntax, SyntaxKind::OLD_KW)
17446    }
17447}
17448
17449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17450pub struct ReturningOptionList {
17451    pub(crate) syntax: SyntaxNode,
17452}
17453impl ReturningOptionList {
17454    #[inline]
17455    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
17456        support::children(&self.syntax)
17457    }
17458    #[inline]
17459    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17460        support::token(&self.syntax, SyntaxKind::L_PAREN)
17461    }
17462    #[inline]
17463    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17464        support::token(&self.syntax, SyntaxKind::R_PAREN)
17465    }
17466    #[inline]
17467    pub fn with_token(&self) -> Option<SyntaxToken> {
17468        support::token(&self.syntax, SyntaxKind::WITH_KW)
17469    }
17470}
17471
17472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17473pub struct Revoke {
17474    pub(crate) syntax: SyntaxNode,
17475}
17476impl Revoke {
17477    #[inline]
17478    pub fn privilege_objects(&self) -> Option<PrivilegeObjects> {
17479        support::child(&self.syntax)
17480    }
17481    #[inline]
17482    pub fn privileges(&self) -> Option<Privileges> {
17483        support::child(&self.syntax)
17484    }
17485    #[inline]
17486    pub fn role_ref(&self) -> Option<RoleRef> {
17487        support::child(&self.syntax)
17488    }
17489    #[inline]
17490    pub fn role_ref_list(&self) -> Option<RoleRefList> {
17491        support::child(&self.syntax)
17492    }
17493    #[inline]
17494    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17495        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17496    }
17497    #[inline]
17498    pub fn admin_token(&self) -> Option<SyntaxToken> {
17499        support::token(&self.syntax, SyntaxKind::ADMIN_KW)
17500    }
17501    #[inline]
17502    pub fn by_token(&self) -> Option<SyntaxToken> {
17503        support::token(&self.syntax, SyntaxKind::BY_KW)
17504    }
17505    #[inline]
17506    pub fn cascade_token(&self) -> Option<SyntaxToken> {
17507        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
17508    }
17509    #[inline]
17510    pub fn for_token(&self) -> Option<SyntaxToken> {
17511        support::token(&self.syntax, SyntaxKind::FOR_KW)
17512    }
17513    #[inline]
17514    pub fn from_token(&self) -> Option<SyntaxToken> {
17515        support::token(&self.syntax, SyntaxKind::FROM_KW)
17516    }
17517    #[inline]
17518    pub fn grant_token(&self) -> Option<SyntaxToken> {
17519        support::token(&self.syntax, SyntaxKind::GRANT_KW)
17520    }
17521    #[inline]
17522    pub fn granted_token(&self) -> Option<SyntaxToken> {
17523        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
17524    }
17525    #[inline]
17526    pub fn inherit_token(&self) -> Option<SyntaxToken> {
17527        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
17528    }
17529    #[inline]
17530    pub fn on_token(&self) -> Option<SyntaxToken> {
17531        support::token(&self.syntax, SyntaxKind::ON_KW)
17532    }
17533    #[inline]
17534    pub fn option_token(&self) -> Option<SyntaxToken> {
17535        support::token(&self.syntax, SyntaxKind::OPTION_KW)
17536    }
17537    #[inline]
17538    pub fn restrict_token(&self) -> Option<SyntaxToken> {
17539        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
17540    }
17541    #[inline]
17542    pub fn revoke_token(&self) -> Option<SyntaxToken> {
17543        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
17544    }
17545    #[inline]
17546    pub fn set_token(&self) -> Option<SyntaxToken> {
17547        support::token(&self.syntax, SyntaxKind::SET_KW)
17548    }
17549}
17550
17551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17552pub struct RevokeCommand {
17553    pub(crate) syntax: SyntaxNode,
17554}
17555impl RevokeCommand {
17556    #[inline]
17557    pub fn role_ref(&self) -> Option<RoleRef> {
17558        support::child(&self.syntax)
17559    }
17560    #[inline]
17561    pub fn all_token(&self) -> Option<SyntaxToken> {
17562        support::token(&self.syntax, SyntaxKind::ALL_KW)
17563    }
17564    #[inline]
17565    pub fn alter_token(&self) -> Option<SyntaxToken> {
17566        support::token(&self.syntax, SyntaxKind::ALTER_KW)
17567    }
17568    #[inline]
17569    pub fn create_token(&self) -> Option<SyntaxToken> {
17570        support::token(&self.syntax, SyntaxKind::CREATE_KW)
17571    }
17572    #[inline]
17573    pub fn delete_token(&self) -> Option<SyntaxToken> {
17574        support::token(&self.syntax, SyntaxKind::DELETE_KW)
17575    }
17576    #[inline]
17577    pub fn execute_token(&self) -> Option<SyntaxToken> {
17578        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
17579    }
17580    #[inline]
17581    pub fn ident_token(&self) -> Option<SyntaxToken> {
17582        support::token(&self.syntax, SyntaxKind::IDENT)
17583    }
17584    #[inline]
17585    pub fn insert_token(&self) -> Option<SyntaxToken> {
17586        support::token(&self.syntax, SyntaxKind::INSERT_KW)
17587    }
17588    #[inline]
17589    pub fn references_token(&self) -> Option<SyntaxToken> {
17590        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
17591    }
17592    #[inline]
17593    pub fn select_token(&self) -> Option<SyntaxToken> {
17594        support::token(&self.syntax, SyntaxKind::SELECT_KW)
17595    }
17596    #[inline]
17597    pub fn system_token(&self) -> Option<SyntaxToken> {
17598        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
17599    }
17600    #[inline]
17601    pub fn temp_token(&self) -> Option<SyntaxToken> {
17602        support::token(&self.syntax, SyntaxKind::TEMP_KW)
17603    }
17604    #[inline]
17605    pub fn temporary_token(&self) -> Option<SyntaxToken> {
17606        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
17607    }
17608    #[inline]
17609    pub fn trigger_token(&self) -> Option<SyntaxToken> {
17610        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
17611    }
17612    #[inline]
17613    pub fn truncate_token(&self) -> Option<SyntaxToken> {
17614        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
17615    }
17616    #[inline]
17617    pub fn update_token(&self) -> Option<SyntaxToken> {
17618        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17619    }
17620}
17621
17622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17623pub struct RevokeCommandList {
17624    pub(crate) syntax: SyntaxNode,
17625}
17626impl RevokeCommandList {
17627    #[inline]
17628    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
17629        support::children(&self.syntax)
17630    }
17631}
17632
17633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17634pub struct RevokeDefaultPrivileges {
17635    pub(crate) syntax: SyntaxNode,
17636}
17637impl RevokeDefaultPrivileges {
17638    #[inline]
17639    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
17640        support::child(&self.syntax)
17641    }
17642    #[inline]
17643    pub fn privileges(&self) -> Option<Privileges> {
17644        support::child(&self.syntax)
17645    }
17646    #[inline]
17647    pub fn role_ref_list(&self) -> Option<RoleRefList> {
17648        support::child(&self.syntax)
17649    }
17650    #[inline]
17651    pub fn cascade_token(&self) -> Option<SyntaxToken> {
17652        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
17653    }
17654    #[inline]
17655    pub fn for_token(&self) -> Option<SyntaxToken> {
17656        support::token(&self.syntax, SyntaxKind::FOR_KW)
17657    }
17658    #[inline]
17659    pub fn from_token(&self) -> Option<SyntaxToken> {
17660        support::token(&self.syntax, SyntaxKind::FROM_KW)
17661    }
17662    #[inline]
17663    pub fn grant_token(&self) -> Option<SyntaxToken> {
17664        support::token(&self.syntax, SyntaxKind::GRANT_KW)
17665    }
17666    #[inline]
17667    pub fn on_token(&self) -> Option<SyntaxToken> {
17668        support::token(&self.syntax, SyntaxKind::ON_KW)
17669    }
17670    #[inline]
17671    pub fn option_token(&self) -> Option<SyntaxToken> {
17672        support::token(&self.syntax, SyntaxKind::OPTION_KW)
17673    }
17674    #[inline]
17675    pub fn restrict_token(&self) -> Option<SyntaxToken> {
17676        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
17677    }
17678    #[inline]
17679    pub fn revoke_token(&self) -> Option<SyntaxToken> {
17680        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
17681    }
17682}
17683
17684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17685pub struct Role {
17686    pub(crate) syntax: SyntaxNode,
17687}
17688impl Role {
17689    #[inline]
17690    pub fn name(&self) -> Option<Name> {
17691        support::child(&self.syntax)
17692    }
17693    #[inline]
17694    pub fn current_role_token(&self) -> Option<SyntaxToken> {
17695        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
17696    }
17697    #[inline]
17698    pub fn current_user_token(&self) -> Option<SyntaxToken> {
17699        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
17700    }
17701    #[inline]
17702    pub fn group_token(&self) -> Option<SyntaxToken> {
17703        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17704    }
17705    #[inline]
17706    pub fn session_user_token(&self) -> Option<SyntaxToken> {
17707        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
17708    }
17709}
17710
17711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17712pub struct RoleOption {
17713    pub(crate) syntax: SyntaxNode,
17714}
17715impl RoleOption {
17716    #[inline]
17717    pub fn literal(&self) -> Option<Literal> {
17718        support::child(&self.syntax)
17719    }
17720    #[inline]
17721    pub fn role_ref_list(&self) -> Option<RoleRefList> {
17722        support::child(&self.syntax)
17723    }
17724    #[inline]
17725    pub fn admin_token(&self) -> Option<SyntaxToken> {
17726        support::token(&self.syntax, SyntaxKind::ADMIN_KW)
17727    }
17728    #[inline]
17729    pub fn connection_token(&self) -> Option<SyntaxToken> {
17730        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
17731    }
17732    #[inline]
17733    pub fn encrypted_token(&self) -> Option<SyntaxToken> {
17734        support::token(&self.syntax, SyntaxKind::ENCRYPTED_KW)
17735    }
17736    #[inline]
17737    pub fn group_token(&self) -> Option<SyntaxToken> {
17738        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17739    }
17740    #[inline]
17741    pub fn ident_token(&self) -> Option<SyntaxToken> {
17742        support::token(&self.syntax, SyntaxKind::IDENT)
17743    }
17744    #[inline]
17745    pub fn in_token(&self) -> Option<SyntaxToken> {
17746        support::token(&self.syntax, SyntaxKind::IN_KW)
17747    }
17748    #[inline]
17749    pub fn inherit_token(&self) -> Option<SyntaxToken> {
17750        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
17751    }
17752    #[inline]
17753    pub fn limit_token(&self) -> Option<SyntaxToken> {
17754        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
17755    }
17756    #[inline]
17757    pub fn null_token(&self) -> Option<SyntaxToken> {
17758        support::token(&self.syntax, SyntaxKind::NULL_KW)
17759    }
17760    #[inline]
17761    pub fn password_token(&self) -> Option<SyntaxToken> {
17762        support::token(&self.syntax, SyntaxKind::PASSWORD_KW)
17763    }
17764    #[inline]
17765    pub fn role_token(&self) -> Option<SyntaxToken> {
17766        support::token(&self.syntax, SyntaxKind::ROLE_KW)
17767    }
17768    #[inline]
17769    pub fn sysid_token(&self) -> Option<SyntaxToken> {
17770        support::token(&self.syntax, SyntaxKind::SYSID_KW)
17771    }
17772    #[inline]
17773    pub fn until_token(&self) -> Option<SyntaxToken> {
17774        support::token(&self.syntax, SyntaxKind::UNTIL_KW)
17775    }
17776    #[inline]
17777    pub fn user_token(&self) -> Option<SyntaxToken> {
17778        support::token(&self.syntax, SyntaxKind::USER_KW)
17779    }
17780    #[inline]
17781    pub fn valid_token(&self) -> Option<SyntaxToken> {
17782        support::token(&self.syntax, SyntaxKind::VALID_KW)
17783    }
17784}
17785
17786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17787pub struct RoleOptionList {
17788    pub(crate) syntax: SyntaxNode,
17789}
17790impl RoleOptionList {
17791    #[inline]
17792    pub fn role_options(&self) -> AstChildren<RoleOption> {
17793        support::children(&self.syntax)
17794    }
17795    #[inline]
17796    pub fn with_token(&self) -> Option<SyntaxToken> {
17797        support::token(&self.syntax, SyntaxKind::WITH_KW)
17798    }
17799}
17800
17801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17802pub struct RoleRef {
17803    pub(crate) syntax: SyntaxNode,
17804}
17805impl RoleRef {
17806    #[inline]
17807    pub fn name_ref(&self) -> Option<NameRef> {
17808        support::child(&self.syntax)
17809    }
17810    #[inline]
17811    pub fn current_role_token(&self) -> Option<SyntaxToken> {
17812        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
17813    }
17814    #[inline]
17815    pub fn current_user_token(&self) -> Option<SyntaxToken> {
17816        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
17817    }
17818    #[inline]
17819    pub fn group_token(&self) -> Option<SyntaxToken> {
17820        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17821    }
17822    #[inline]
17823    pub fn session_user_token(&self) -> Option<SyntaxToken> {
17824        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
17825    }
17826}
17827
17828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17829pub struct RoleRefList {
17830    pub(crate) syntax: SyntaxNode,
17831}
17832impl RoleRefList {
17833    #[inline]
17834    pub fn role_refs(&self) -> AstChildren<RoleRef> {
17835        support::children(&self.syntax)
17836    }
17837}
17838
17839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17840pub struct Rollback {
17841    pub(crate) syntax: SyntaxNode,
17842}
17843impl Rollback {
17844    #[inline]
17845    pub fn literal(&self) -> Option<Literal> {
17846        support::child(&self.syntax)
17847    }
17848    #[inline]
17849    pub fn name_ref(&self) -> Option<NameRef> {
17850        support::child(&self.syntax)
17851    }
17852    #[inline]
17853    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17854        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17855    }
17856    #[inline]
17857    pub fn abort_token(&self) -> Option<SyntaxToken> {
17858        support::token(&self.syntax, SyntaxKind::ABORT_KW)
17859    }
17860    #[inline]
17861    pub fn and_token(&self) -> Option<SyntaxToken> {
17862        support::token(&self.syntax, SyntaxKind::AND_KW)
17863    }
17864    #[inline]
17865    pub fn chain_token(&self) -> Option<SyntaxToken> {
17866        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
17867    }
17868    #[inline]
17869    pub fn no_token(&self) -> Option<SyntaxToken> {
17870        support::token(&self.syntax, SyntaxKind::NO_KW)
17871    }
17872    #[inline]
17873    pub fn prepared_token(&self) -> Option<SyntaxToken> {
17874        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
17875    }
17876    #[inline]
17877    pub fn rollback_token(&self) -> Option<SyntaxToken> {
17878        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
17879    }
17880    #[inline]
17881    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
17882        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
17883    }
17884    #[inline]
17885    pub fn to_token(&self) -> Option<SyntaxToken> {
17886        support::token(&self.syntax, SyntaxKind::TO_KW)
17887    }
17888    #[inline]
17889    pub fn transaction_token(&self) -> Option<SyntaxToken> {
17890        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
17891    }
17892    #[inline]
17893    pub fn work_token(&self) -> Option<SyntaxToken> {
17894        support::token(&self.syntax, SyntaxKind::WORK_KW)
17895    }
17896}
17897
17898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17899pub struct Row {
17900    pub(crate) syntax: SyntaxNode,
17901}
17902impl Row {
17903    #[inline]
17904    pub fn exprs(&self) -> AstChildren<Expr> {
17905        support::children(&self.syntax)
17906    }
17907}
17908
17909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17910pub struct RowExclusive {
17911    pub(crate) syntax: SyntaxNode,
17912}
17913impl RowExclusive {
17914    #[inline]
17915    pub fn exclusive_token(&self) -> Option<SyntaxToken> {
17916        support::token(&self.syntax, SyntaxKind::EXCLUSIVE_KW)
17917    }
17918    #[inline]
17919    pub fn row_token(&self) -> Option<SyntaxToken> {
17920        support::token(&self.syntax, SyntaxKind::ROW_KW)
17921    }
17922}
17923
17924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17925pub struct RowList {
17926    pub(crate) syntax: SyntaxNode,
17927}
17928impl RowList {
17929    #[inline]
17930    pub fn rows(&self) -> AstChildren<Row> {
17931        support::children(&self.syntax)
17932    }
17933}
17934
17935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17936pub struct RowShare {
17937    pub(crate) syntax: SyntaxNode,
17938}
17939impl RowShare {
17940    #[inline]
17941    pub fn row_token(&self) -> Option<SyntaxToken> {
17942        support::token(&self.syntax, SyntaxKind::ROW_KW)
17943    }
17944    #[inline]
17945    pub fn share_token(&self) -> Option<SyntaxToken> {
17946        support::token(&self.syntax, SyntaxKind::SHARE_KW)
17947    }
17948}
17949
17950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17951pub struct RowsFuncOption {
17952    pub(crate) syntax: SyntaxNode,
17953}
17954impl RowsFuncOption {
17955    #[inline]
17956    pub fn literal(&self) -> Option<Literal> {
17957        support::child(&self.syntax)
17958    }
17959    #[inline]
17960    pub fn rows_token(&self) -> Option<SyntaxToken> {
17961        support::token(&self.syntax, SyntaxKind::ROWS_KW)
17962    }
17963}
17964
17965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17966pub struct RuleDo {
17967    pub(crate) syntax: SyntaxNode,
17968}
17969impl RuleDo {
17970    #[inline]
17971    pub fn rule_action(&self) -> Option<RuleAction> {
17972        support::child(&self.syntax)
17973    }
17974    #[inline]
17975    pub fn also_token(&self) -> Option<SyntaxToken> {
17976        support::token(&self.syntax, SyntaxKind::ALSO_KW)
17977    }
17978    #[inline]
17979    pub fn do_token(&self) -> Option<SyntaxToken> {
17980        support::token(&self.syntax, SyntaxKind::DO_KW)
17981    }
17982    #[inline]
17983    pub fn instead_token(&self) -> Option<SyntaxToken> {
17984        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
17985    }
17986}
17987
17988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17989pub struct RuleOn {
17990    pub(crate) syntax: SyntaxNode,
17991}
17992impl RuleOn {
17993    #[inline]
17994    pub fn path(&self) -> Option<Path> {
17995        support::child(&self.syntax)
17996    }
17997    #[inline]
17998    pub fn where_clause(&self) -> Option<WhereClause> {
17999        support::child(&self.syntax)
18000    }
18001    #[inline]
18002    pub fn delete_token(&self) -> Option<SyntaxToken> {
18003        support::token(&self.syntax, SyntaxKind::DELETE_KW)
18004    }
18005    #[inline]
18006    pub fn ident_token(&self) -> Option<SyntaxToken> {
18007        support::token(&self.syntax, SyntaxKind::IDENT)
18008    }
18009    #[inline]
18010    pub fn insert_token(&self) -> Option<SyntaxToken> {
18011        support::token(&self.syntax, SyntaxKind::INSERT_KW)
18012    }
18013    #[inline]
18014    pub fn on_token(&self) -> Option<SyntaxToken> {
18015        support::token(&self.syntax, SyntaxKind::ON_KW)
18016    }
18017    #[inline]
18018    pub fn select_token(&self) -> Option<SyntaxToken> {
18019        support::token(&self.syntax, SyntaxKind::SELECT_KW)
18020    }
18021    #[inline]
18022    pub fn to_token(&self) -> Option<SyntaxToken> {
18023        support::token(&self.syntax, SyntaxKind::TO_KW)
18024    }
18025    #[inline]
18026    pub fn update_token(&self) -> Option<SyntaxToken> {
18027        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
18028    }
18029}
18030
18031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18032pub struct RuleStmtList {
18033    pub(crate) syntax: SyntaxNode,
18034}
18035impl RuleStmtList {
18036    #[inline]
18037    pub fn rule_stmts(&self) -> AstChildren<RuleStmt> {
18038        support::children(&self.syntax)
18039    }
18040    #[inline]
18041    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18042        support::token(&self.syntax, SyntaxKind::L_PAREN)
18043    }
18044    #[inline]
18045    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18046        support::token(&self.syntax, SyntaxKind::R_PAREN)
18047    }
18048}
18049
18050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18051pub struct Savepoint {
18052    pub(crate) syntax: SyntaxNode,
18053}
18054impl Savepoint {
18055    #[inline]
18056    pub fn name(&self) -> Option<Name> {
18057        support::child(&self.syntax)
18058    }
18059    #[inline]
18060    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18061        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18062    }
18063    #[inline]
18064    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
18065        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
18066    }
18067}
18068
18069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18070pub struct SearchClause {
18071    pub(crate) syntax: SyntaxNode,
18072}
18073impl SearchClause {
18074    #[inline]
18075    pub fn columns(&self) -> Option<SearchColumns> {
18076        support::child(&self.syntax)
18077    }
18078    #[inline]
18079    pub fn set_column(&self) -> Option<SearchSetColumn> {
18080        support::child(&self.syntax)
18081    }
18082    #[inline]
18083    pub fn breadth_token(&self) -> Option<SyntaxToken> {
18084        support::token(&self.syntax, SyntaxKind::BREADTH_KW)
18085    }
18086    #[inline]
18087    pub fn by_token(&self) -> Option<SyntaxToken> {
18088        support::token(&self.syntax, SyntaxKind::BY_KW)
18089    }
18090    #[inline]
18091    pub fn depth_token(&self) -> Option<SyntaxToken> {
18092        support::token(&self.syntax, SyntaxKind::DEPTH_KW)
18093    }
18094    #[inline]
18095    pub fn first_token(&self) -> Option<SyntaxToken> {
18096        support::token(&self.syntax, SyntaxKind::FIRST_KW)
18097    }
18098    #[inline]
18099    pub fn search_token(&self) -> Option<SyntaxToken> {
18100        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
18101    }
18102}
18103
18104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18105pub struct SearchColumns {
18106    pub(crate) syntax: SyntaxNode,
18107}
18108impl SearchColumns {
18109    #[inline]
18110    pub fn name_refs(&self) -> AstChildren<NameRef> {
18111        support::children(&self.syntax)
18112    }
18113}
18114
18115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18116pub struct SearchSetColumn {
18117    pub(crate) syntax: SyntaxNode,
18118}
18119impl SearchSetColumn {
18120    #[inline]
18121    pub fn name_ref(&self) -> Option<NameRef> {
18122        support::child(&self.syntax)
18123    }
18124    #[inline]
18125    pub fn set_token(&self) -> Option<SyntaxToken> {
18126        support::token(&self.syntax, SyntaxKind::SET_KW)
18127    }
18128}
18129
18130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18131pub struct SecurityFuncOption {
18132    pub(crate) syntax: SyntaxNode,
18133}
18134impl SecurityFuncOption {
18135    #[inline]
18136    pub fn definer_token(&self) -> Option<SyntaxToken> {
18137        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
18138    }
18139    #[inline]
18140    pub fn invoker_token(&self) -> Option<SyntaxToken> {
18141        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
18142    }
18143    #[inline]
18144    pub fn security_token(&self) -> Option<SyntaxToken> {
18145        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
18146    }
18147}
18148
18149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18150pub struct SecurityLabel {
18151    pub(crate) syntax: SyntaxNode,
18152}
18153impl SecurityLabel {
18154    #[inline]
18155    pub fn aggregate(&self) -> Option<Aggregate> {
18156        support::child(&self.syntax)
18157    }
18158    #[inline]
18159    pub fn for_provider(&self) -> Option<ForProvider> {
18160        support::child(&self.syntax)
18161    }
18162    #[inline]
18163    pub fn function_sig(&self) -> Option<FunctionSig> {
18164        support::child(&self.syntax)
18165    }
18166    #[inline]
18167    pub fn literal(&self) -> Option<Literal> {
18168        support::child(&self.syntax)
18169    }
18170    #[inline]
18171    pub fn path(&self) -> Option<Path> {
18172        support::child(&self.syntax)
18173    }
18174    #[inline]
18175    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18176        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18177    }
18178    #[inline]
18179    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
18180        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
18181    }
18182    #[inline]
18183    pub fn column_token(&self) -> Option<SyntaxToken> {
18184        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
18185    }
18186    #[inline]
18187    pub fn database_token(&self) -> Option<SyntaxToken> {
18188        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
18189    }
18190    #[inline]
18191    pub fn domain_token(&self) -> Option<SyntaxToken> {
18192        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
18193    }
18194    #[inline]
18195    pub fn event_token(&self) -> Option<SyntaxToken> {
18196        support::token(&self.syntax, SyntaxKind::EVENT_KW)
18197    }
18198    #[inline]
18199    pub fn foreign_token(&self) -> Option<SyntaxToken> {
18200        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
18201    }
18202    #[inline]
18203    pub fn function_token(&self) -> Option<SyntaxToken> {
18204        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
18205    }
18206    #[inline]
18207    pub fn is_token(&self) -> Option<SyntaxToken> {
18208        support::token(&self.syntax, SyntaxKind::IS_KW)
18209    }
18210    #[inline]
18211    pub fn label_token(&self) -> Option<SyntaxToken> {
18212        support::token(&self.syntax, SyntaxKind::LABEL_KW)
18213    }
18214    #[inline]
18215    pub fn language_token(&self) -> Option<SyntaxToken> {
18216        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
18217    }
18218    #[inline]
18219    pub fn large_token(&self) -> Option<SyntaxToken> {
18220        support::token(&self.syntax, SyntaxKind::LARGE_KW)
18221    }
18222    #[inline]
18223    pub fn materialized_token(&self) -> Option<SyntaxToken> {
18224        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
18225    }
18226    #[inline]
18227    pub fn null_token(&self) -> Option<SyntaxToken> {
18228        support::token(&self.syntax, SyntaxKind::NULL_KW)
18229    }
18230    #[inline]
18231    pub fn object_token(&self) -> Option<SyntaxToken> {
18232        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
18233    }
18234    #[inline]
18235    pub fn on_token(&self) -> Option<SyntaxToken> {
18236        support::token(&self.syntax, SyntaxKind::ON_KW)
18237    }
18238    #[inline]
18239    pub fn procedural_token(&self) -> Option<SyntaxToken> {
18240        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
18241    }
18242    #[inline]
18243    pub fn procedure_token(&self) -> Option<SyntaxToken> {
18244        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
18245    }
18246    #[inline]
18247    pub fn publication_token(&self) -> Option<SyntaxToken> {
18248        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
18249    }
18250    #[inline]
18251    pub fn role_token(&self) -> Option<SyntaxToken> {
18252        support::token(&self.syntax, SyntaxKind::ROLE_KW)
18253    }
18254    #[inline]
18255    pub fn routine_token(&self) -> Option<SyntaxToken> {
18256        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
18257    }
18258    #[inline]
18259    pub fn schema_token(&self) -> Option<SyntaxToken> {
18260        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
18261    }
18262    #[inline]
18263    pub fn security_token(&self) -> Option<SyntaxToken> {
18264        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
18265    }
18266    #[inline]
18267    pub fn sequence_token(&self) -> Option<SyntaxToken> {
18268        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
18269    }
18270    #[inline]
18271    pub fn subscription_token(&self) -> Option<SyntaxToken> {
18272        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
18273    }
18274    #[inline]
18275    pub fn table_token(&self) -> Option<SyntaxToken> {
18276        support::token(&self.syntax, SyntaxKind::TABLE_KW)
18277    }
18278    #[inline]
18279    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
18280        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
18281    }
18282    #[inline]
18283    pub fn trigger_token(&self) -> Option<SyntaxToken> {
18284        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
18285    }
18286    #[inline]
18287    pub fn type_token(&self) -> Option<SyntaxToken> {
18288        support::token(&self.syntax, SyntaxKind::TYPE_KW)
18289    }
18290    #[inline]
18291    pub fn view_token(&self) -> Option<SyntaxToken> {
18292        support::token(&self.syntax, SyntaxKind::VIEW_KW)
18293    }
18294}
18295
18296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18297pub struct Select {
18298    pub(crate) syntax: SyntaxNode,
18299}
18300impl Select {
18301    #[inline]
18302    pub fn fetch_clause(&self) -> Option<FetchClause> {
18303        support::child(&self.syntax)
18304    }
18305    #[inline]
18306    pub fn filter_clause(&self) -> Option<FilterClause> {
18307        support::child(&self.syntax)
18308    }
18309    #[inline]
18310    pub fn from_clause(&self) -> Option<FromClause> {
18311        support::child(&self.syntax)
18312    }
18313    #[inline]
18314    pub fn group_by_clause(&self) -> Option<GroupByClause> {
18315        support::child(&self.syntax)
18316    }
18317    #[inline]
18318    pub fn having_clause(&self) -> Option<HavingClause> {
18319        support::child(&self.syntax)
18320    }
18321    #[inline]
18322    pub fn limit_clause(&self) -> Option<LimitClause> {
18323        support::child(&self.syntax)
18324    }
18325    #[inline]
18326    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
18327        support::children(&self.syntax)
18328    }
18329    #[inline]
18330    pub fn offset_clause(&self) -> Option<OffsetClause> {
18331        support::child(&self.syntax)
18332    }
18333    #[inline]
18334    pub fn order_by_clause(&self) -> Option<OrderByClause> {
18335        support::child(&self.syntax)
18336    }
18337    #[inline]
18338    pub fn select_clause(&self) -> Option<SelectClause> {
18339        support::child(&self.syntax)
18340    }
18341    #[inline]
18342    pub fn where_clause(&self) -> Option<WhereClause> {
18343        support::child(&self.syntax)
18344    }
18345    #[inline]
18346    pub fn window_clause(&self) -> Option<WindowClause> {
18347        support::child(&self.syntax)
18348    }
18349    #[inline]
18350    pub fn with_clause(&self) -> Option<WithClause> {
18351        support::child(&self.syntax)
18352    }
18353    #[inline]
18354    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18355        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18356    }
18357}
18358
18359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18360pub struct SelectClause {
18361    pub(crate) syntax: SyntaxNode,
18362}
18363impl SelectClause {
18364    #[inline]
18365    pub fn distinct_clause(&self) -> Option<DistinctClause> {
18366        support::child(&self.syntax)
18367    }
18368    #[inline]
18369    pub fn target_list(&self) -> Option<TargetList> {
18370        support::child(&self.syntax)
18371    }
18372    #[inline]
18373    pub fn all_token(&self) -> Option<SyntaxToken> {
18374        support::token(&self.syntax, SyntaxKind::ALL_KW)
18375    }
18376    #[inline]
18377    pub fn select_token(&self) -> Option<SyntaxToken> {
18378        support::token(&self.syntax, SyntaxKind::SELECT_KW)
18379    }
18380}
18381
18382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18383pub struct SelectInto {
18384    pub(crate) syntax: SyntaxNode,
18385}
18386impl SelectInto {
18387    #[inline]
18388    pub fn filter_clause(&self) -> Option<FilterClause> {
18389        support::child(&self.syntax)
18390    }
18391    #[inline]
18392    pub fn from_clause(&self) -> Option<FromClause> {
18393        support::child(&self.syntax)
18394    }
18395    #[inline]
18396    pub fn group_by_clause(&self) -> Option<GroupByClause> {
18397        support::child(&self.syntax)
18398    }
18399    #[inline]
18400    pub fn having_clause(&self) -> Option<HavingClause> {
18401        support::child(&self.syntax)
18402    }
18403    #[inline]
18404    pub fn into_clause(&self) -> Option<IntoClause> {
18405        support::child(&self.syntax)
18406    }
18407    #[inline]
18408    pub fn limit_clause(&self) -> Option<LimitClause> {
18409        support::child(&self.syntax)
18410    }
18411    #[inline]
18412    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
18413        support::children(&self.syntax)
18414    }
18415    #[inline]
18416    pub fn offset_clause(&self) -> Option<OffsetClause> {
18417        support::child(&self.syntax)
18418    }
18419    #[inline]
18420    pub fn order_by_clause(&self) -> Option<OrderByClause> {
18421        support::child(&self.syntax)
18422    }
18423    #[inline]
18424    pub fn select_clause(&self) -> Option<SelectClause> {
18425        support::child(&self.syntax)
18426    }
18427    #[inline]
18428    pub fn where_clause(&self) -> Option<WhereClause> {
18429        support::child(&self.syntax)
18430    }
18431    #[inline]
18432    pub fn window_clause(&self) -> Option<WindowClause> {
18433        support::child(&self.syntax)
18434    }
18435    #[inline]
18436    pub fn with_clause(&self) -> Option<WithClause> {
18437        support::child(&self.syntax)
18438    }
18439    #[inline]
18440    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18441        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18442    }
18443}
18444
18445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18446pub struct SequenceOption {
18447    pub(crate) syntax: SyntaxNode,
18448}
18449impl SequenceOption {
18450    #[inline]
18451    pub fn literal(&self) -> Option<Literal> {
18452        support::child(&self.syntax)
18453    }
18454    #[inline]
18455    pub fn name_ref(&self) -> Option<NameRef> {
18456        support::child(&self.syntax)
18457    }
18458    #[inline]
18459    pub fn path(&self) -> Option<Path> {
18460        support::child(&self.syntax)
18461    }
18462    #[inline]
18463    pub fn ty(&self) -> Option<Type> {
18464        support::child(&self.syntax)
18465    }
18466    #[inline]
18467    pub fn as_token(&self) -> Option<SyntaxToken> {
18468        support::token(&self.syntax, SyntaxKind::AS_KW)
18469    }
18470    #[inline]
18471    pub fn by_token(&self) -> Option<SyntaxToken> {
18472        support::token(&self.syntax, SyntaxKind::BY_KW)
18473    }
18474    #[inline]
18475    pub fn cache_token(&self) -> Option<SyntaxToken> {
18476        support::token(&self.syntax, SyntaxKind::CACHE_KW)
18477    }
18478    #[inline]
18479    pub fn cycle_token(&self) -> Option<SyntaxToken> {
18480        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
18481    }
18482    #[inline]
18483    pub fn increment_token(&self) -> Option<SyntaxToken> {
18484        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
18485    }
18486    #[inline]
18487    pub fn logged_token(&self) -> Option<SyntaxToken> {
18488        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
18489    }
18490    #[inline]
18491    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
18492        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
18493    }
18494    #[inline]
18495    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
18496        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
18497    }
18498    #[inline]
18499    pub fn name_token(&self) -> Option<SyntaxToken> {
18500        support::token(&self.syntax, SyntaxKind::NAME_KW)
18501    }
18502    #[inline]
18503    pub fn no_token(&self) -> Option<SyntaxToken> {
18504        support::token(&self.syntax, SyntaxKind::NO_KW)
18505    }
18506    #[inline]
18507    pub fn none_token(&self) -> Option<SyntaxToken> {
18508        support::token(&self.syntax, SyntaxKind::NONE_KW)
18509    }
18510    #[inline]
18511    pub fn owned_token(&self) -> Option<SyntaxToken> {
18512        support::token(&self.syntax, SyntaxKind::OWNED_KW)
18513    }
18514    #[inline]
18515    pub fn restart_token(&self) -> Option<SyntaxToken> {
18516        support::token(&self.syntax, SyntaxKind::RESTART_KW)
18517    }
18518    #[inline]
18519    pub fn sequence_token(&self) -> Option<SyntaxToken> {
18520        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
18521    }
18522    #[inline]
18523    pub fn start_token(&self) -> Option<SyntaxToken> {
18524        support::token(&self.syntax, SyntaxKind::START_KW)
18525    }
18526    #[inline]
18527    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
18528        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
18529    }
18530    #[inline]
18531    pub fn with_token(&self) -> Option<SyntaxToken> {
18532        support::token(&self.syntax, SyntaxKind::WITH_KW)
18533    }
18534}
18535
18536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18537pub struct SequenceOptionList {
18538    pub(crate) syntax: SyntaxNode,
18539}
18540impl SequenceOptionList {
18541    #[inline]
18542    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
18543        support::children(&self.syntax)
18544    }
18545    #[inline]
18546    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18547        support::token(&self.syntax, SyntaxKind::L_PAREN)
18548    }
18549    #[inline]
18550    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18551        support::token(&self.syntax, SyntaxKind::R_PAREN)
18552    }
18553}
18554
18555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18556pub struct Serializable {
18557    pub(crate) syntax: SyntaxNode,
18558}
18559impl Serializable {
18560    #[inline]
18561    pub fn isolation_token(&self) -> Option<SyntaxToken> {
18562        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
18563    }
18564    #[inline]
18565    pub fn level_token(&self) -> Option<SyntaxToken> {
18566        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
18567    }
18568    #[inline]
18569    pub fn serializable_token(&self) -> Option<SyntaxToken> {
18570        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
18571    }
18572}
18573
18574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18575pub struct ServerName {
18576    pub(crate) syntax: SyntaxNode,
18577}
18578impl ServerName {
18579    #[inline]
18580    pub fn name_ref(&self) -> Option<NameRef> {
18581        support::child(&self.syntax)
18582    }
18583    #[inline]
18584    pub fn server_token(&self) -> Option<SyntaxToken> {
18585        support::token(&self.syntax, SyntaxKind::SERVER_KW)
18586    }
18587}
18588
18589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18590pub struct SessionAuthorization {
18591    pub(crate) syntax: SyntaxNode,
18592}
18593impl SessionAuthorization {
18594    #[inline]
18595    pub fn authorization_token(&self) -> Option<SyntaxToken> {
18596        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
18597    }
18598    #[inline]
18599    pub fn session_token(&self) -> Option<SyntaxToken> {
18600        support::token(&self.syntax, SyntaxKind::SESSION_KW)
18601    }
18602}
18603
18604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18605pub struct Set {
18606    pub(crate) syntax: SyntaxNode,
18607}
18608impl Set {
18609    #[inline]
18610    pub fn config_value(&self) -> Option<ConfigValue> {
18611        support::child(&self.syntax)
18612    }
18613    #[inline]
18614    pub fn config_values(&self) -> AstChildren<ConfigValue> {
18615        support::children(&self.syntax)
18616    }
18617    #[inline]
18618    pub fn literal(&self) -> Option<Literal> {
18619        support::child(&self.syntax)
18620    }
18621    #[inline]
18622    pub fn path(&self) -> Option<Path> {
18623        support::child(&self.syntax)
18624    }
18625    #[inline]
18626    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18627        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18628    }
18629    #[inline]
18630    pub fn eq_token(&self) -> Option<SyntaxToken> {
18631        support::token(&self.syntax, SyntaxKind::EQ)
18632    }
18633    #[inline]
18634    pub fn catalog_token(&self) -> Option<SyntaxToken> {
18635        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
18636    }
18637    #[inline]
18638    pub fn content_token(&self) -> Option<SyntaxToken> {
18639        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18640    }
18641    #[inline]
18642    pub fn current_token(&self) -> Option<SyntaxToken> {
18643        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
18644    }
18645    #[inline]
18646    pub fn default_token(&self) -> Option<SyntaxToken> {
18647        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18648    }
18649    #[inline]
18650    pub fn document_token(&self) -> Option<SyntaxToken> {
18651        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18652    }
18653    #[inline]
18654    pub fn from_token(&self) -> Option<SyntaxToken> {
18655        support::token(&self.syntax, SyntaxKind::FROM_KW)
18656    }
18657    #[inline]
18658    pub fn local_token(&self) -> Option<SyntaxToken> {
18659        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
18660    }
18661    #[inline]
18662    pub fn option_token(&self) -> Option<SyntaxToken> {
18663        support::token(&self.syntax, SyntaxKind::OPTION_KW)
18664    }
18665    #[inline]
18666    pub fn schema_token(&self) -> Option<SyntaxToken> {
18667        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
18668    }
18669    #[inline]
18670    pub fn session_token(&self) -> Option<SyntaxToken> {
18671        support::token(&self.syntax, SyntaxKind::SESSION_KW)
18672    }
18673    #[inline]
18674    pub fn set_token(&self) -> Option<SyntaxToken> {
18675        support::token(&self.syntax, SyntaxKind::SET_KW)
18676    }
18677    #[inline]
18678    pub fn time_token(&self) -> Option<SyntaxToken> {
18679        support::token(&self.syntax, SyntaxKind::TIME_KW)
18680    }
18681    #[inline]
18682    pub fn to_token(&self) -> Option<SyntaxToken> {
18683        support::token(&self.syntax, SyntaxKind::TO_KW)
18684    }
18685    #[inline]
18686    pub fn xml_token(&self) -> Option<SyntaxToken> {
18687        support::token(&self.syntax, SyntaxKind::XML_KW)
18688    }
18689    #[inline]
18690    pub fn zone_token(&self) -> Option<SyntaxToken> {
18691        support::token(&self.syntax, SyntaxKind::ZONE_KW)
18692    }
18693}
18694
18695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18696pub struct SetAccessMethod {
18697    pub(crate) syntax: SyntaxNode,
18698}
18699impl SetAccessMethod {
18700    #[inline]
18701    pub fn name_ref(&self) -> Option<NameRef> {
18702        support::child(&self.syntax)
18703    }
18704    #[inline]
18705    pub fn access_token(&self) -> Option<SyntaxToken> {
18706        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
18707    }
18708    #[inline]
18709    pub fn method_token(&self) -> Option<SyntaxToken> {
18710        support::token(&self.syntax, SyntaxKind::METHOD_KW)
18711    }
18712    #[inline]
18713    pub fn set_token(&self) -> Option<SyntaxToken> {
18714        support::token(&self.syntax, SyntaxKind::SET_KW)
18715    }
18716}
18717
18718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18719pub struct SetClause {
18720    pub(crate) syntax: SyntaxNode,
18721}
18722impl SetClause {
18723    #[inline]
18724    pub fn set_column_list(&self) -> Option<SetColumnList> {
18725        support::child(&self.syntax)
18726    }
18727    #[inline]
18728    pub fn set_token(&self) -> Option<SyntaxToken> {
18729        support::token(&self.syntax, SyntaxKind::SET_KW)
18730    }
18731}
18732
18733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18734pub struct SetColumnList {
18735    pub(crate) syntax: SyntaxNode,
18736}
18737impl SetColumnList {
18738    #[inline]
18739    pub fn set_columns(&self) -> AstChildren<SetColumn> {
18740        support::children(&self.syntax)
18741    }
18742}
18743
18744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18745pub struct SetCompression {
18746    pub(crate) syntax: SyntaxNode,
18747}
18748impl SetCompression {
18749    #[inline]
18750    pub fn name_ref(&self) -> Option<NameRef> {
18751        support::child(&self.syntax)
18752    }
18753    #[inline]
18754    pub fn compression_token(&self) -> Option<SyntaxToken> {
18755        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
18756    }
18757    #[inline]
18758    pub fn default_token(&self) -> Option<SyntaxToken> {
18759        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18760    }
18761    #[inline]
18762    pub fn set_token(&self) -> Option<SyntaxToken> {
18763        support::token(&self.syntax, SyntaxKind::SET_KW)
18764    }
18765}
18766
18767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18768pub struct SetConfigParam {
18769    pub(crate) syntax: SyntaxNode,
18770}
18771impl SetConfigParam {
18772    #[inline]
18773    pub fn literals(&self) -> AstChildren<Literal> {
18774        support::children(&self.syntax)
18775    }
18776    #[inline]
18777    pub fn name_refs(&self) -> AstChildren<NameRef> {
18778        support::children(&self.syntax)
18779    }
18780    #[inline]
18781    pub fn path(&self) -> Option<Path> {
18782        support::child(&self.syntax)
18783    }
18784    #[inline]
18785    pub fn eq_token(&self) -> Option<SyntaxToken> {
18786        support::token(&self.syntax, SyntaxKind::EQ)
18787    }
18788    #[inline]
18789    pub fn current_token(&self) -> Option<SyntaxToken> {
18790        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
18791    }
18792    #[inline]
18793    pub fn default_token(&self) -> Option<SyntaxToken> {
18794        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18795    }
18796    #[inline]
18797    pub fn from_token(&self) -> Option<SyntaxToken> {
18798        support::token(&self.syntax, SyntaxKind::FROM_KW)
18799    }
18800    #[inline]
18801    pub fn null_token(&self) -> Option<SyntaxToken> {
18802        support::token(&self.syntax, SyntaxKind::NULL_KW)
18803    }
18804    #[inline]
18805    pub fn set_token(&self) -> Option<SyntaxToken> {
18806        support::token(&self.syntax, SyntaxKind::SET_KW)
18807    }
18808    #[inline]
18809    pub fn to_token(&self) -> Option<SyntaxToken> {
18810        support::token(&self.syntax, SyntaxKind::TO_KW)
18811    }
18812}
18813
18814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18815pub struct SetConstraints {
18816    pub(crate) syntax: SyntaxNode,
18817}
18818impl SetConstraints {
18819    #[inline]
18820    pub fn paths(&self) -> AstChildren<Path> {
18821        support::children(&self.syntax)
18822    }
18823    #[inline]
18824    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18825        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18826    }
18827    #[inline]
18828    pub fn all_token(&self) -> Option<SyntaxToken> {
18829        support::token(&self.syntax, SyntaxKind::ALL_KW)
18830    }
18831    #[inline]
18832    pub fn constraints_token(&self) -> Option<SyntaxToken> {
18833        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
18834    }
18835    #[inline]
18836    pub fn deferred_token(&self) -> Option<SyntaxToken> {
18837        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
18838    }
18839    #[inline]
18840    pub fn immediate_token(&self) -> Option<SyntaxToken> {
18841        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
18842    }
18843    #[inline]
18844    pub fn set_token(&self) -> Option<SyntaxToken> {
18845        support::token(&self.syntax, SyntaxKind::SET_KW)
18846    }
18847}
18848
18849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18850pub struct SetDefault {
18851    pub(crate) syntax: SyntaxNode,
18852}
18853impl SetDefault {
18854    #[inline]
18855    pub fn expr(&self) -> Option<Expr> {
18856        support::child(&self.syntax)
18857    }
18858    #[inline]
18859    pub fn default_token(&self) -> Option<SyntaxToken> {
18860        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18861    }
18862    #[inline]
18863    pub fn set_token(&self) -> Option<SyntaxToken> {
18864        support::token(&self.syntax, SyntaxKind::SET_KW)
18865    }
18866}
18867
18868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18869pub struct SetDefaultColumns {
18870    pub(crate) syntax: SyntaxNode,
18871}
18872impl SetDefaultColumns {
18873    #[inline]
18874    pub fn column_list(&self) -> Option<ColumnList> {
18875        support::child(&self.syntax)
18876    }
18877    #[inline]
18878    pub fn default_token(&self) -> Option<SyntaxToken> {
18879        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18880    }
18881    #[inline]
18882    pub fn set_token(&self) -> Option<SyntaxToken> {
18883        support::token(&self.syntax, SyntaxKind::SET_KW)
18884    }
18885}
18886
18887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18888pub struct SetExpr {
18889    pub(crate) syntax: SyntaxNode,
18890}
18891impl SetExpr {
18892    #[inline]
18893    pub fn expr(&self) -> Option<Expr> {
18894        support::child(&self.syntax)
18895    }
18896    #[inline]
18897    pub fn default_token(&self) -> Option<SyntaxToken> {
18898        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18899    }
18900}
18901
18902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18903pub struct SetExprList {
18904    pub(crate) syntax: SyntaxNode,
18905}
18906impl SetExprList {
18907    #[inline]
18908    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
18909        support::children(&self.syntax)
18910    }
18911    #[inline]
18912    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18913        support::token(&self.syntax, SyntaxKind::L_PAREN)
18914    }
18915    #[inline]
18916    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18917        support::token(&self.syntax, SyntaxKind::R_PAREN)
18918    }
18919    #[inline]
18920    pub fn row_token(&self) -> Option<SyntaxToken> {
18921        support::token(&self.syntax, SyntaxKind::ROW_KW)
18922    }
18923}
18924
18925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18926pub struct SetExpression {
18927    pub(crate) syntax: SyntaxNode,
18928}
18929impl SetExpression {
18930    #[inline]
18931    pub fn expr(&self) -> Option<Expr> {
18932        support::child(&self.syntax)
18933    }
18934    #[inline]
18935    pub fn expression_token(&self) -> Option<SyntaxToken> {
18936        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
18937    }
18938    #[inline]
18939    pub fn set_token(&self) -> Option<SyntaxToken> {
18940        support::token(&self.syntax, SyntaxKind::SET_KW)
18941    }
18942}
18943
18944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18945pub struct SetFuncOption {
18946    pub(crate) syntax: SyntaxNode,
18947}
18948impl SetFuncOption {
18949    #[inline]
18950    pub fn set_config_param(&self) -> Option<SetConfigParam> {
18951        support::child(&self.syntax)
18952    }
18953}
18954
18955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18956pub struct SetGenerated {
18957    pub(crate) syntax: SyntaxNode,
18958}
18959impl SetGenerated {
18960    #[inline]
18961    pub fn always_token(&self) -> Option<SyntaxToken> {
18962        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
18963    }
18964    #[inline]
18965    pub fn by_token(&self) -> Option<SyntaxToken> {
18966        support::token(&self.syntax, SyntaxKind::BY_KW)
18967    }
18968    #[inline]
18969    pub fn default_token(&self) -> Option<SyntaxToken> {
18970        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18971    }
18972    #[inline]
18973    pub fn generated_token(&self) -> Option<SyntaxToken> {
18974        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
18975    }
18976    #[inline]
18977    pub fn set_token(&self) -> Option<SyntaxToken> {
18978        support::token(&self.syntax, SyntaxKind::SET_KW)
18979    }
18980}
18981
18982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18983pub struct SetGeneratedOptions {
18984    pub(crate) syntax: SyntaxNode,
18985}
18986impl SetGeneratedOptions {
18987    #[inline]
18988    pub fn generated_token(&self) -> Option<SyntaxToken> {
18989        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
18990    }
18991    #[inline]
18992    pub fn set_token(&self) -> Option<SyntaxToken> {
18993        support::token(&self.syntax, SyntaxKind::SET_KW)
18994    }
18995}
18996
18997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18998pub struct SetLogged {
18999    pub(crate) syntax: SyntaxNode,
19000}
19001impl SetLogged {
19002    #[inline]
19003    pub fn logged_token(&self) -> Option<SyntaxToken> {
19004        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
19005    }
19006    #[inline]
19007    pub fn set_token(&self) -> Option<SyntaxToken> {
19008        support::token(&self.syntax, SyntaxKind::SET_KW)
19009    }
19010}
19011
19012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19013pub struct SetMultipleColumns {
19014    pub(crate) syntax: SyntaxNode,
19015}
19016impl SetMultipleColumns {
19017    #[inline]
19018    pub fn column_list(&self) -> Option<ColumnList> {
19019        support::child(&self.syntax)
19020    }
19021    #[inline]
19022    pub fn paren_select(&self) -> Option<ParenSelect> {
19023        support::child(&self.syntax)
19024    }
19025    #[inline]
19026    pub fn set_expr_list(&self) -> Option<SetExprList> {
19027        support::child(&self.syntax)
19028    }
19029    #[inline]
19030    pub fn eq_token(&self) -> Option<SyntaxToken> {
19031        support::token(&self.syntax, SyntaxKind::EQ)
19032    }
19033}
19034
19035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19036pub struct SetNotNull {
19037    pub(crate) syntax: SyntaxNode,
19038}
19039impl SetNotNull {
19040    #[inline]
19041    pub fn not_token(&self) -> Option<SyntaxToken> {
19042        support::token(&self.syntax, SyntaxKind::NOT_KW)
19043    }
19044    #[inline]
19045    pub fn null_token(&self) -> Option<SyntaxToken> {
19046        support::token(&self.syntax, SyntaxKind::NULL_KW)
19047    }
19048    #[inline]
19049    pub fn set_token(&self) -> Option<SyntaxToken> {
19050        support::token(&self.syntax, SyntaxKind::SET_KW)
19051    }
19052}
19053
19054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19055pub struct SetNullColumns {
19056    pub(crate) syntax: SyntaxNode,
19057}
19058impl SetNullColumns {
19059    #[inline]
19060    pub fn column_list(&self) -> Option<ColumnList> {
19061        support::child(&self.syntax)
19062    }
19063    #[inline]
19064    pub fn null_token(&self) -> Option<SyntaxToken> {
19065        support::token(&self.syntax, SyntaxKind::NULL_KW)
19066    }
19067    #[inline]
19068    pub fn set_token(&self) -> Option<SyntaxToken> {
19069        support::token(&self.syntax, SyntaxKind::SET_KW)
19070    }
19071}
19072
19073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19074pub struct SetOptions {
19075    pub(crate) syntax: SyntaxNode,
19076}
19077impl SetOptions {
19078    #[inline]
19079    pub fn attribute_list(&self) -> Option<AttributeList> {
19080        support::child(&self.syntax)
19081    }
19082    #[inline]
19083    pub fn set_token(&self) -> Option<SyntaxToken> {
19084        support::token(&self.syntax, SyntaxKind::SET_KW)
19085    }
19086}
19087
19088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19089pub struct SetOptionsList {
19090    pub(crate) syntax: SyntaxNode,
19091}
19092impl SetOptionsList {
19093    #[inline]
19094    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
19095        support::child(&self.syntax)
19096    }
19097    #[inline]
19098    pub fn options_token(&self) -> Option<SyntaxToken> {
19099        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
19100    }
19101    #[inline]
19102    pub fn set_token(&self) -> Option<SyntaxToken> {
19103        support::token(&self.syntax, SyntaxKind::SET_KW)
19104    }
19105}
19106
19107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19108pub struct SetRole {
19109    pub(crate) syntax: SyntaxNode,
19110}
19111impl SetRole {
19112    #[inline]
19113    pub fn role_ref(&self) -> Option<RoleRef> {
19114        support::child(&self.syntax)
19115    }
19116    #[inline]
19117    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
19118        support::token(&self.syntax, SyntaxKind::SEMICOLON)
19119    }
19120    #[inline]
19121    pub fn local_token(&self) -> Option<SyntaxToken> {
19122        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
19123    }
19124    #[inline]
19125    pub fn none_token(&self) -> Option<SyntaxToken> {
19126        support::token(&self.syntax, SyntaxKind::NONE_KW)
19127    }
19128    #[inline]
19129    pub fn reset_token(&self) -> Option<SyntaxToken> {
19130        support::token(&self.syntax, SyntaxKind::RESET_KW)
19131    }
19132    #[inline]
19133    pub fn role_token(&self) -> Option<SyntaxToken> {
19134        support::token(&self.syntax, SyntaxKind::ROLE_KW)
19135    }
19136    #[inline]
19137    pub fn session_token(&self) -> Option<SyntaxToken> {
19138        support::token(&self.syntax, SyntaxKind::SESSION_KW)
19139    }
19140    #[inline]
19141    pub fn set_token(&self) -> Option<SyntaxToken> {
19142        support::token(&self.syntax, SyntaxKind::SET_KW)
19143    }
19144}
19145
19146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19147pub struct SetSchema {
19148    pub(crate) syntax: SyntaxNode,
19149}
19150impl SetSchema {
19151    #[inline]
19152    pub fn name_ref(&self) -> Option<NameRef> {
19153        support::child(&self.syntax)
19154    }
19155    #[inline]
19156    pub fn schema_token(&self) -> Option<SyntaxToken> {
19157        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
19158    }
19159    #[inline]
19160    pub fn set_token(&self) -> Option<SyntaxToken> {
19161        support::token(&self.syntax, SyntaxKind::SET_KW)
19162    }
19163}
19164
19165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19166pub struct SetSequenceOption {
19167    pub(crate) syntax: SyntaxNode,
19168}
19169impl SetSequenceOption {
19170    #[inline]
19171    pub fn sequence_option(&self) -> Option<SequenceOption> {
19172        support::child(&self.syntax)
19173    }
19174    #[inline]
19175    pub fn set_token(&self) -> Option<SyntaxToken> {
19176        support::token(&self.syntax, SyntaxKind::SET_KW)
19177    }
19178}
19179
19180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19181pub struct SetSessionAuth {
19182    pub(crate) syntax: SyntaxNode,
19183}
19184impl SetSessionAuth {
19185    #[inline]
19186    pub fn literal(&self) -> Option<Literal> {
19187        support::child(&self.syntax)
19188    }
19189    #[inline]
19190    pub fn role_ref(&self) -> Option<RoleRef> {
19191        support::child(&self.syntax)
19192    }
19193    #[inline]
19194    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
19195        support::token(&self.syntax, SyntaxKind::SEMICOLON)
19196    }
19197    #[inline]
19198    pub fn authorization_token(&self) -> Option<SyntaxToken> {
19199        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
19200    }
19201    #[inline]
19202    pub fn default_token(&self) -> Option<SyntaxToken> {
19203        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
19204    }
19205    #[inline]
19206    pub fn local_token(&self) -> Option<SyntaxToken> {
19207        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
19208    }
19209    #[inline]
19210    pub fn session_token(&self) -> Option<SyntaxToken> {
19211        support::token(&self.syntax, SyntaxKind::SESSION_KW)
19212    }
19213    #[inline]
19214    pub fn set_token(&self) -> Option<SyntaxToken> {
19215        support::token(&self.syntax, SyntaxKind::SET_KW)
19216    }
19217}
19218
19219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19220pub struct SetSingleColumn {
19221    pub(crate) syntax: SyntaxNode,
19222}
19223impl SetSingleColumn {
19224    #[inline]
19225    pub fn column(&self) -> Option<Column> {
19226        support::child(&self.syntax)
19227    }
19228    #[inline]
19229    pub fn set_expr(&self) -> Option<SetExpr> {
19230        support::child(&self.syntax)
19231    }
19232    #[inline]
19233    pub fn eq_token(&self) -> Option<SyntaxToken> {
19234        support::token(&self.syntax, SyntaxKind::EQ)
19235    }
19236}
19237
19238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19239pub struct SetStatistics {
19240    pub(crate) syntax: SyntaxNode,
19241}
19242impl SetStatistics {
19243    #[inline]
19244    pub fn literal(&self) -> Option<Literal> {
19245        support::child(&self.syntax)
19246    }
19247    #[inline]
19248    pub fn default_token(&self) -> Option<SyntaxToken> {
19249        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
19250    }
19251    #[inline]
19252    pub fn set_token(&self) -> Option<SyntaxToken> {
19253        support::token(&self.syntax, SyntaxKind::SET_KW)
19254    }
19255    #[inline]
19256    pub fn statistics_token(&self) -> Option<SyntaxToken> {
19257        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
19258    }
19259}
19260
19261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19262pub struct SetStorage {
19263    pub(crate) syntax: SyntaxNode,
19264}
19265impl SetStorage {
19266    #[inline]
19267    pub fn name_ref(&self) -> Option<NameRef> {
19268        support::child(&self.syntax)
19269    }
19270    #[inline]
19271    pub fn default_token(&self) -> Option<SyntaxToken> {
19272        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
19273    }
19274    #[inline]
19275    pub fn set_token(&self) -> Option<SyntaxToken> {
19276        support::token(&self.syntax, SyntaxKind::SET_KW)
19277    }
19278    #[inline]
19279    pub fn storage_token(&self) -> Option<SyntaxToken> {
19280        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
19281    }
19282}
19283
19284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19285pub struct SetTablespace {
19286    pub(crate) syntax: SyntaxNode,
19287}
19288impl SetTablespace {
19289    #[inline]
19290    pub fn path(&self) -> Option<Path> {
19291        support::child(&self.syntax)
19292    }
19293    #[inline]
19294    pub fn set_token(&self) -> Option<SyntaxToken> {
19295        support::token(&self.syntax, SyntaxKind::SET_KW)
19296    }
19297    #[inline]
19298    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
19299        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
19300    }
19301}
19302
19303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19304pub struct SetTransaction {
19305    pub(crate) syntax: SyntaxNode,
19306}
19307impl SetTransaction {
19308    #[inline]
19309    pub fn literal(&self) -> Option<Literal> {
19310        support::child(&self.syntax)
19311    }
19312    #[inline]
19313    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
19314        support::child(&self.syntax)
19315    }
19316    #[inline]
19317    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
19318        support::token(&self.syntax, SyntaxKind::SEMICOLON)
19319    }
19320    #[inline]
19321    pub fn as_token(&self) -> Option<SyntaxToken> {
19322        support::token(&self.syntax, SyntaxKind::AS_KW)
19323    }
19324    #[inline]
19325    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
19326        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
19327    }
19328    #[inline]
19329    pub fn session_token(&self) -> Option<SyntaxToken> {
19330        support::token(&self.syntax, SyntaxKind::SESSION_KW)
19331    }
19332    #[inline]
19333    pub fn set_token(&self) -> Option<SyntaxToken> {
19334        support::token(&self.syntax, SyntaxKind::SET_KW)
19335    }
19336    #[inline]
19337    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
19338        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
19339    }
19340    #[inline]
19341    pub fn transaction_token(&self) -> Option<SyntaxToken> {
19342        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
19343    }
19344}
19345
19346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19347pub struct SetType {
19348    pub(crate) syntax: SyntaxNode,
19349}
19350impl SetType {
19351    #[inline]
19352    pub fn collate(&self) -> Option<Collate> {
19353        support::child(&self.syntax)
19354    }
19355    #[inline]
19356    pub fn ty(&self) -> Option<Type> {
19357        support::child(&self.syntax)
19358    }
19359    #[inline]
19360    pub fn set_token(&self) -> Option<SyntaxToken> {
19361        support::token(&self.syntax, SyntaxKind::SET_KW)
19362    }
19363    #[inline]
19364    pub fn type_token(&self) -> Option<SyntaxToken> {
19365        support::token(&self.syntax, SyntaxKind::TYPE_KW)
19366    }
19367}
19368
19369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19370pub struct SetUnlogged {
19371    pub(crate) syntax: SyntaxNode,
19372}
19373impl SetUnlogged {
19374    #[inline]
19375    pub fn set_token(&self) -> Option<SyntaxToken> {
19376        support::token(&self.syntax, SyntaxKind::SET_KW)
19377    }
19378    #[inline]
19379    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
19380        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
19381    }
19382}
19383
19384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19385pub struct SetWithoutCluster {
19386    pub(crate) syntax: SyntaxNode,
19387}
19388impl SetWithoutCluster {
19389    #[inline]
19390    pub fn cluster_token(&self) -> Option<SyntaxToken> {
19391        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
19392    }
19393    #[inline]
19394    pub fn set_token(&self) -> Option<SyntaxToken> {
19395        support::token(&self.syntax, SyntaxKind::SET_KW)
19396    }
19397    #[inline]
19398    pub fn without_token(&self) -> Option<SyntaxToken> {
19399        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
19400    }
19401}
19402
19403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19404pub struct SetWithoutOids {
19405    pub(crate) syntax: SyntaxNode,
19406}
19407impl SetWithoutOids {
19408    #[inline]
19409    pub fn oids_token(&self) -> Option<SyntaxToken> {
19410        support::token(&self.syntax, SyntaxKind::OIDS_KW)
19411    }
19412    #[inline]
19413    pub fn set_token(&self) -> Option<SyntaxToken> {
19414        support::token(&self.syntax, SyntaxKind::SET_KW)
19415    }
19416    #[inline]
19417    pub fn without_token(&self) -> Option<SyntaxToken> {
19418        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
19419    }
19420}
19421
19422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19423pub struct Share {
19424    pub(crate) syntax: SyntaxNode,
19425}
19426impl Share {
19427    #[inline]
19428    pub fn share_token(&self) -> Option<SyntaxToken> {
19429        support::token(&self.syntax, SyntaxKind::SHARE_KW)
19430    }
19431}
19432
19433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19434pub struct ShareRowExclusive {
19435    pub(crate) syntax: SyntaxNode,
19436}
19437impl ShareRowExclusive {
19438    #[inline]
19439    pub fn exclusive_token(&self) -> Option<SyntaxToken> {
19440        support::token(&self.syntax, SyntaxKind::EXCLUSIVE_KW)
19441    }
19442    #[inline]
19443    pub fn row_token(&self) -> Option<SyntaxToken> {
19444        support::token(&self.syntax, SyntaxKind::ROW_KW)
19445    }
19446    #[inline]
19447    pub fn share_token(&self) -> Option<SyntaxToken> {
19448        support::token(&self.syntax, SyntaxKind::SHARE_KW)
19449    }
19450}
19451
19452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19453pub struct ShareUpdateExclusive {
19454    pub(crate) syntax: SyntaxNode,
19455}
19456impl ShareUpdateExclusive {
19457    #[inline]
19458    pub fn exclusive_token(&self) -> Option<SyntaxToken> {
19459        support::token(&self.syntax, SyntaxKind::EXCLUSIVE_KW)
19460    }
19461    #[inline]
19462    pub fn share_token(&self) -> Option<SyntaxToken> {
19463        support::token(&self.syntax, SyntaxKind::SHARE_KW)
19464    }
19465    #[inline]
19466    pub fn update_token(&self) -> Option<SyntaxToken> {
19467        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
19468    }
19469}
19470
19471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19472pub struct Show {
19473    pub(crate) syntax: SyntaxNode,
19474}
19475impl Show {
19476    #[inline]
19477    pub fn all(&self) -> Option<All> {
19478        support::child(&self.syntax)
19479    }
19480    #[inline]
19481    pub fn path(&self) -> Option<Path> {
19482        support::child(&self.syntax)
19483    }
19484    #[inline]
19485    pub fn session_authorization(&self) -> Option<SessionAuthorization> {
19486        support::child(&self.syntax)
19487    }
19488    #[inline]
19489    pub fn time_zone(&self) -> Option<TimeZone> {
19490        support::child(&self.syntax)
19491    }
19492    #[inline]
19493    pub fn transaction_isolation_level(&self) -> Option<TransactionIsolationLevel> {
19494        support::child(&self.syntax)
19495    }
19496    #[inline]
19497    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
19498        support::token(&self.syntax, SyntaxKind::SEMICOLON)
19499    }
19500    #[inline]
19501    pub fn show_token(&self) -> Option<SyntaxToken> {
19502        support::token(&self.syntax, SyntaxKind::SHOW_KW)
19503    }
19504}
19505
19506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19507pub struct SimilarTo {
19508    pub(crate) syntax: SyntaxNode,
19509}
19510impl SimilarTo {
19511    #[inline]
19512    pub fn similar_token(&self) -> Option<SyntaxToken> {
19513        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
19514    }
19515    #[inline]
19516    pub fn to_token(&self) -> Option<SyntaxToken> {
19517        support::token(&self.syntax, SyntaxKind::TO_KW)
19518    }
19519}
19520
19521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19522pub struct SliceExpr {
19523    pub(crate) syntax: SyntaxNode,
19524}
19525impl SliceExpr {
19526    #[inline]
19527    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
19528        support::token(&self.syntax, SyntaxKind::L_BRACK)
19529    }
19530    #[inline]
19531    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
19532        support::token(&self.syntax, SyntaxKind::R_BRACK)
19533    }
19534    #[inline]
19535    pub fn colon_token(&self) -> Option<SyntaxToken> {
19536        support::token(&self.syntax, SyntaxKind::COLON)
19537    }
19538}
19539
19540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19541pub struct SomeFn {
19542    pub(crate) syntax: SyntaxNode,
19543}
19544impl SomeFn {
19545    #[inline]
19546    pub fn expr(&self) -> Option<Expr> {
19547        support::child(&self.syntax)
19548    }
19549    #[inline]
19550    pub fn select_variant(&self) -> Option<SelectVariant> {
19551        support::child(&self.syntax)
19552    }
19553    #[inline]
19554    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19555        support::token(&self.syntax, SyntaxKind::L_PAREN)
19556    }
19557    #[inline]
19558    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19559        support::token(&self.syntax, SyntaxKind::R_PAREN)
19560    }
19561    #[inline]
19562    pub fn some_token(&self) -> Option<SyntaxToken> {
19563        support::token(&self.syntax, SyntaxKind::SOME_KW)
19564    }
19565}
19566
19567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19568pub struct SortAsc {
19569    pub(crate) syntax: SyntaxNode,
19570}
19571impl SortAsc {
19572    #[inline]
19573    pub fn asc_token(&self) -> Option<SyntaxToken> {
19574        support::token(&self.syntax, SyntaxKind::ASC_KW)
19575    }
19576}
19577
19578#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19579pub struct SortBy {
19580    pub(crate) syntax: SyntaxNode,
19581}
19582impl SortBy {
19583    #[inline]
19584    pub fn expr(&self) -> Option<Expr> {
19585        support::child(&self.syntax)
19586    }
19587    #[inline]
19588    pub fn nulls_first(&self) -> Option<NullsFirst> {
19589        support::child(&self.syntax)
19590    }
19591    #[inline]
19592    pub fn nulls_last(&self) -> Option<NullsLast> {
19593        support::child(&self.syntax)
19594    }
19595    #[inline]
19596    pub fn sort_asc(&self) -> Option<SortAsc> {
19597        support::child(&self.syntax)
19598    }
19599    #[inline]
19600    pub fn sort_desc(&self) -> Option<SortDesc> {
19601        support::child(&self.syntax)
19602    }
19603    #[inline]
19604    pub fn sort_using(&self) -> Option<SortUsing> {
19605        support::child(&self.syntax)
19606    }
19607}
19608
19609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19610pub struct SortByList {
19611    pub(crate) syntax: SyntaxNode,
19612}
19613impl SortByList {
19614    #[inline]
19615    pub fn sort_bys(&self) -> AstChildren<SortBy> {
19616        support::children(&self.syntax)
19617    }
19618}
19619
19620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19621pub struct SortDesc {
19622    pub(crate) syntax: SyntaxNode,
19623}
19624impl SortDesc {
19625    #[inline]
19626    pub fn desc_token(&self) -> Option<SyntaxToken> {
19627        support::token(&self.syntax, SyntaxKind::DESC_KW)
19628    }
19629}
19630
19631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19632pub struct SortUsing {
19633    pub(crate) syntax: SyntaxNode,
19634}
19635impl SortUsing {
19636    #[inline]
19637    pub fn op(&self) -> Option<Op> {
19638        support::child(&self.syntax)
19639    }
19640    #[inline]
19641    pub fn using_token(&self) -> Option<SyntaxToken> {
19642        support::token(&self.syntax, SyntaxKind::USING_KW)
19643    }
19644}
19645
19646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19647pub struct SourceFile {
19648    pub(crate) syntax: SyntaxNode,
19649}
19650impl SourceFile {
19651    #[inline]
19652    pub fn stmts(&self) -> AstChildren<Stmt> {
19653        support::children(&self.syntax)
19654    }
19655}
19656
19657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19658pub struct SourceVertexTable {
19659    pub(crate) syntax: SyntaxNode,
19660}
19661impl SourceVertexTable {
19662    #[inline]
19663    pub fn column_list(&self) -> Option<ColumnList> {
19664        support::child(&self.syntax)
19665    }
19666    #[inline]
19667    pub fn name_ref(&self) -> Option<NameRef> {
19668        support::child(&self.syntax)
19669    }
19670    #[inline]
19671    pub fn references_table(&self) -> Option<ReferencesTable> {
19672        support::child(&self.syntax)
19673    }
19674    #[inline]
19675    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19676        support::token(&self.syntax, SyntaxKind::L_PAREN)
19677    }
19678    #[inline]
19679    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19680        support::token(&self.syntax, SyntaxKind::R_PAREN)
19681    }
19682    #[inline]
19683    pub fn key_token(&self) -> Option<SyntaxToken> {
19684        support::token(&self.syntax, SyntaxKind::KEY_KW)
19685    }
19686    #[inline]
19687    pub fn source_token(&self) -> Option<SyntaxToken> {
19688        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
19689    }
19690}
19691
19692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19693pub struct SplitPartition {
19694    pub(crate) syntax: SyntaxNode,
19695}
19696impl SplitPartition {
19697    #[inline]
19698    pub fn partition_list(&self) -> Option<PartitionList> {
19699        support::child(&self.syntax)
19700    }
19701    #[inline]
19702    pub fn into_token(&self) -> Option<SyntaxToken> {
19703        support::token(&self.syntax, SyntaxKind::INTO_KW)
19704    }
19705    #[inline]
19706    pub fn partition_token(&self) -> Option<SyntaxToken> {
19707        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
19708    }
19709    #[inline]
19710    pub fn split_token(&self) -> Option<SyntaxToken> {
19711        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
19712    }
19713}
19714
19715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19716pub struct Storage {
19717    pub(crate) syntax: SyntaxNode,
19718}
19719impl Storage {
19720    #[inline]
19721    pub fn default_token(&self) -> Option<SyntaxToken> {
19722        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
19723    }
19724    #[inline]
19725    pub fn external_token(&self) -> Option<SyntaxToken> {
19726        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
19727    }
19728    #[inline]
19729    pub fn ident_token(&self) -> Option<SyntaxToken> {
19730        support::token(&self.syntax, SyntaxKind::IDENT)
19731    }
19732    #[inline]
19733    pub fn storage_token(&self) -> Option<SyntaxToken> {
19734        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
19735    }
19736}
19737
19738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19739pub struct StrictFuncOption {
19740    pub(crate) syntax: SyntaxNode,
19741}
19742impl StrictFuncOption {
19743    #[inline]
19744    pub fn called_token(&self) -> Option<SyntaxToken> {
19745        support::token(&self.syntax, SyntaxKind::CALLED_KW)
19746    }
19747    #[inline]
19748    pub fn input_token(&self) -> Option<SyntaxToken> {
19749        support::token(&self.syntax, SyntaxKind::INPUT_KW)
19750    }
19751    #[inline]
19752    pub fn null_token(&self) -> Option<SyntaxToken> {
19753        support::token(&self.syntax, SyntaxKind::NULL_KW)
19754    }
19755    #[inline]
19756    pub fn on_token(&self) -> Option<SyntaxToken> {
19757        support::token(&self.syntax, SyntaxKind::ON_KW)
19758    }
19759    #[inline]
19760    pub fn returns_token(&self) -> Option<SyntaxToken> {
19761        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
19762    }
19763    #[inline]
19764    pub fn strict_token(&self) -> Option<SyntaxToken> {
19765        support::token(&self.syntax, SyntaxKind::STRICT_KW)
19766    }
19767}
19768
19769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19770pub struct SubstringFn {
19771    pub(crate) syntax: SyntaxNode,
19772}
19773impl SubstringFn {
19774    #[inline]
19775    pub fn expr(&self) -> Option<Expr> {
19776        support::child(&self.syntax)
19777    }
19778    #[inline]
19779    pub fn exprs(&self) -> AstChildren<Expr> {
19780        support::children(&self.syntax)
19781    }
19782    #[inline]
19783    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19784        support::token(&self.syntax, SyntaxKind::L_PAREN)
19785    }
19786    #[inline]
19787    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19788        support::token(&self.syntax, SyntaxKind::R_PAREN)
19789    }
19790    #[inline]
19791    pub fn for_token(&self) -> Option<SyntaxToken> {
19792        support::token(&self.syntax, SyntaxKind::FOR_KW)
19793    }
19794    #[inline]
19795    pub fn from_token(&self) -> Option<SyntaxToken> {
19796        support::token(&self.syntax, SyntaxKind::FROM_KW)
19797    }
19798    #[inline]
19799    pub fn similar_token(&self) -> Option<SyntaxToken> {
19800        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
19801    }
19802    #[inline]
19803    pub fn substring_token(&self) -> Option<SyntaxToken> {
19804        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
19805    }
19806}
19807
19808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19809pub struct SupportFuncOption {
19810    pub(crate) syntax: SyntaxNode,
19811}
19812impl SupportFuncOption {
19813    #[inline]
19814    pub fn path(&self) -> Option<Path> {
19815        support::child(&self.syntax)
19816    }
19817    #[inline]
19818    pub fn support_token(&self) -> Option<SyntaxToken> {
19819        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
19820    }
19821}
19822
19823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19824pub struct Table {
19825    pub(crate) syntax: SyntaxNode,
19826}
19827impl Table {
19828    #[inline]
19829    pub fn fetch_clause(&self) -> Option<FetchClause> {
19830        support::child(&self.syntax)
19831    }
19832    #[inline]
19833    pub fn limit_clause(&self) -> Option<LimitClause> {
19834        support::child(&self.syntax)
19835    }
19836    #[inline]
19837    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
19838        support::children(&self.syntax)
19839    }
19840    #[inline]
19841    pub fn offset_clause(&self) -> Option<OffsetClause> {
19842        support::child(&self.syntax)
19843    }
19844    #[inline]
19845    pub fn order_by_clause(&self) -> Option<OrderByClause> {
19846        support::child(&self.syntax)
19847    }
19848    #[inline]
19849    pub fn relation_name(&self) -> Option<RelationName> {
19850        support::child(&self.syntax)
19851    }
19852    #[inline]
19853    pub fn with_clause(&self) -> Option<WithClause> {
19854        support::child(&self.syntax)
19855    }
19856    #[inline]
19857    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
19858        support::token(&self.syntax, SyntaxKind::SEMICOLON)
19859    }
19860    #[inline]
19861    pub fn table_token(&self) -> Option<SyntaxToken> {
19862        support::token(&self.syntax, SyntaxKind::TABLE_KW)
19863    }
19864}
19865
19866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19867pub struct TableAndColumns {
19868    pub(crate) syntax: SyntaxNode,
19869}
19870impl TableAndColumns {
19871    #[inline]
19872    pub fn column_list(&self) -> Option<ColumnList> {
19873        support::child(&self.syntax)
19874    }
19875    #[inline]
19876    pub fn relation_name(&self) -> Option<RelationName> {
19877        support::child(&self.syntax)
19878    }
19879}
19880
19881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19882pub struct TableAndColumnsList {
19883    pub(crate) syntax: SyntaxNode,
19884}
19885impl TableAndColumnsList {
19886    #[inline]
19887    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
19888        support::children(&self.syntax)
19889    }
19890}
19891
19892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19893pub struct TableArgList {
19894    pub(crate) syntax: SyntaxNode,
19895}
19896impl TableArgList {
19897    #[inline]
19898    pub fn args(&self) -> AstChildren<TableArg> {
19899        support::children(&self.syntax)
19900    }
19901    #[inline]
19902    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19903        support::token(&self.syntax, SyntaxKind::L_PAREN)
19904    }
19905    #[inline]
19906    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19907        support::token(&self.syntax, SyntaxKind::R_PAREN)
19908    }
19909}
19910
19911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19912pub struct TableList {
19913    pub(crate) syntax: SyntaxNode,
19914}
19915impl TableList {
19916    #[inline]
19917    pub fn relation_names(&self) -> AstChildren<RelationName> {
19918        support::children(&self.syntax)
19919    }
19920}
19921
19922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19923pub struct TablesampleClause {
19924    pub(crate) syntax: SyntaxNode,
19925}
19926impl TablesampleClause {
19927    #[inline]
19928    pub fn call_expr(&self) -> Option<CallExpr> {
19929        support::child(&self.syntax)
19930    }
19931    #[inline]
19932    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
19933        support::child(&self.syntax)
19934    }
19935    #[inline]
19936    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
19937        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
19938    }
19939}
19940
19941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19942pub struct Tablespace {
19943    pub(crate) syntax: SyntaxNode,
19944}
19945impl Tablespace {
19946    #[inline]
19947    pub fn name_ref(&self) -> Option<NameRef> {
19948        support::child(&self.syntax)
19949    }
19950    #[inline]
19951    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
19952        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
19953    }
19954}
19955
19956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19957pub struct Target {
19958    pub(crate) syntax: SyntaxNode,
19959}
19960impl Target {
19961    #[inline]
19962    pub fn as_name(&self) -> Option<AsName> {
19963        support::child(&self.syntax)
19964    }
19965    #[inline]
19966    pub fn expr(&self) -> Option<Expr> {
19967        support::child(&self.syntax)
19968    }
19969    #[inline]
19970    pub fn star_token(&self) -> Option<SyntaxToken> {
19971        support::token(&self.syntax, SyntaxKind::STAR)
19972    }
19973}
19974
19975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19976pub struct TargetList {
19977    pub(crate) syntax: SyntaxNode,
19978}
19979impl TargetList {
19980    #[inline]
19981    pub fn targets(&self) -> AstChildren<Target> {
19982        support::children(&self.syntax)
19983    }
19984}
19985
19986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19987pub struct Temp {
19988    pub(crate) syntax: SyntaxNode,
19989}
19990impl Temp {
19991    #[inline]
19992    pub fn global_token(&self) -> Option<SyntaxToken> {
19993        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
19994    }
19995    #[inline]
19996    pub fn local_token(&self) -> Option<SyntaxToken> {
19997        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
19998    }
19999    #[inline]
20000    pub fn temp_token(&self) -> Option<SyntaxToken> {
20001        support::token(&self.syntax, SyntaxKind::TEMP_KW)
20002    }
20003    #[inline]
20004    pub fn temporary_token(&self) -> Option<SyntaxToken> {
20005        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
20006    }
20007}
20008
20009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20010pub struct Ties {
20011    pub(crate) syntax: SyntaxNode,
20012}
20013impl Ties {
20014    #[inline]
20015    pub fn ties_token(&self) -> Option<SyntaxToken> {
20016        support::token(&self.syntax, SyntaxKind::TIES_KW)
20017    }
20018}
20019
20020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20021pub struct TimeType {
20022    pub(crate) syntax: SyntaxNode,
20023}
20024impl TimeType {
20025    #[inline]
20026    pub fn literal(&self) -> Option<Literal> {
20027        support::child(&self.syntax)
20028    }
20029    #[inline]
20030    pub fn timezone(&self) -> Option<Timezone> {
20031        support::child(&self.syntax)
20032    }
20033    #[inline]
20034    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20035        support::token(&self.syntax, SyntaxKind::L_PAREN)
20036    }
20037    #[inline]
20038    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20039        support::token(&self.syntax, SyntaxKind::R_PAREN)
20040    }
20041    #[inline]
20042    pub fn setof_token(&self) -> Option<SyntaxToken> {
20043        support::token(&self.syntax, SyntaxKind::SETOF_KW)
20044    }
20045    #[inline]
20046    pub fn time_token(&self) -> Option<SyntaxToken> {
20047        support::token(&self.syntax, SyntaxKind::TIME_KW)
20048    }
20049    #[inline]
20050    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
20051        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
20052    }
20053}
20054
20055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20056pub struct TimeZone {
20057    pub(crate) syntax: SyntaxNode,
20058}
20059impl TimeZone {
20060    #[inline]
20061    pub fn time_token(&self) -> Option<SyntaxToken> {
20062        support::token(&self.syntax, SyntaxKind::TIME_KW)
20063    }
20064    #[inline]
20065    pub fn zone_token(&self) -> Option<SyntaxToken> {
20066        support::token(&self.syntax, SyntaxKind::ZONE_KW)
20067    }
20068}
20069
20070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20071pub struct Timing {
20072    pub(crate) syntax: SyntaxNode,
20073}
20074impl Timing {
20075    #[inline]
20076    pub fn after_token(&self) -> Option<SyntaxToken> {
20077        support::token(&self.syntax, SyntaxKind::AFTER_KW)
20078    }
20079    #[inline]
20080    pub fn before_token(&self) -> Option<SyntaxToken> {
20081        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
20082    }
20083    #[inline]
20084    pub fn instead_token(&self) -> Option<SyntaxToken> {
20085        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
20086    }
20087    #[inline]
20088    pub fn of_token(&self) -> Option<SyntaxToken> {
20089        support::token(&self.syntax, SyntaxKind::OF_KW)
20090    }
20091}
20092
20093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20094pub struct TransactionIsolationLevel {
20095    pub(crate) syntax: SyntaxNode,
20096}
20097impl TransactionIsolationLevel {
20098    #[inline]
20099    pub fn isolation_token(&self) -> Option<SyntaxToken> {
20100        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
20101    }
20102    #[inline]
20103    pub fn level_token(&self) -> Option<SyntaxToken> {
20104        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
20105    }
20106    #[inline]
20107    pub fn transaction_token(&self) -> Option<SyntaxToken> {
20108        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
20109    }
20110}
20111
20112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20113pub struct TransactionModeList {
20114    pub(crate) syntax: SyntaxNode,
20115}
20116impl TransactionModeList {
20117    #[inline]
20118    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
20119        support::children(&self.syntax)
20120    }
20121}
20122
20123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20124pub struct TransformFromFunc {
20125    pub(crate) syntax: SyntaxNode,
20126}
20127impl TransformFromFunc {
20128    #[inline]
20129    pub fn function_sig(&self) -> Option<FunctionSig> {
20130        support::child(&self.syntax)
20131    }
20132    #[inline]
20133    pub fn from_token(&self) -> Option<SyntaxToken> {
20134        support::token(&self.syntax, SyntaxKind::FROM_KW)
20135    }
20136    #[inline]
20137    pub fn function_token(&self) -> Option<SyntaxToken> {
20138        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
20139    }
20140    #[inline]
20141    pub fn sql_token(&self) -> Option<SyntaxToken> {
20142        support::token(&self.syntax, SyntaxKind::SQL_KW)
20143    }
20144    #[inline]
20145    pub fn with_token(&self) -> Option<SyntaxToken> {
20146        support::token(&self.syntax, SyntaxKind::WITH_KW)
20147    }
20148}
20149
20150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20151pub struct TransformFuncOption {
20152    pub(crate) syntax: SyntaxNode,
20153}
20154impl TransformFuncOption {
20155    #[inline]
20156    pub fn types(&self) -> AstChildren<Type> {
20157        support::children(&self.syntax)
20158    }
20159    #[inline]
20160    pub fn transform_token(&self) -> Option<SyntaxToken> {
20161        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
20162    }
20163}
20164
20165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20166pub struct TransformToFunc {
20167    pub(crate) syntax: SyntaxNode,
20168}
20169impl TransformToFunc {
20170    #[inline]
20171    pub fn function_sig(&self) -> Option<FunctionSig> {
20172        support::child(&self.syntax)
20173    }
20174    #[inline]
20175    pub fn function_token(&self) -> Option<SyntaxToken> {
20176        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
20177    }
20178    #[inline]
20179    pub fn sql_token(&self) -> Option<SyntaxToken> {
20180        support::token(&self.syntax, SyntaxKind::SQL_KW)
20181    }
20182    #[inline]
20183    pub fn to_token(&self) -> Option<SyntaxToken> {
20184        support::token(&self.syntax, SyntaxKind::TO_KW)
20185    }
20186    #[inline]
20187    pub fn with_token(&self) -> Option<SyntaxToken> {
20188        support::token(&self.syntax, SyntaxKind::WITH_KW)
20189    }
20190}
20191
20192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20193pub struct TriggerEvent {
20194    pub(crate) syntax: SyntaxNode,
20195}
20196impl TriggerEvent {
20197    #[inline]
20198    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
20199        support::child(&self.syntax)
20200    }
20201    #[inline]
20202    pub fn delete_token(&self) -> Option<SyntaxToken> {
20203        support::token(&self.syntax, SyntaxKind::DELETE_KW)
20204    }
20205    #[inline]
20206    pub fn insert_token(&self) -> Option<SyntaxToken> {
20207        support::token(&self.syntax, SyntaxKind::INSERT_KW)
20208    }
20209    #[inline]
20210    pub fn truncate_token(&self) -> Option<SyntaxToken> {
20211        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
20212    }
20213}
20214
20215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20216pub struct TriggerEventList {
20217    pub(crate) syntax: SyntaxNode,
20218}
20219impl TriggerEventList {
20220    #[inline]
20221    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
20222        support::children(&self.syntax)
20223    }
20224}
20225
20226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20227pub struct TriggerEventUpdate {
20228    pub(crate) syntax: SyntaxNode,
20229}
20230impl TriggerEventUpdate {
20231    #[inline]
20232    pub fn name_refs(&self) -> AstChildren<NameRef> {
20233        support::children(&self.syntax)
20234    }
20235    #[inline]
20236    pub fn of_token(&self) -> Option<SyntaxToken> {
20237        support::token(&self.syntax, SyntaxKind::OF_KW)
20238    }
20239    #[inline]
20240    pub fn update_token(&self) -> Option<SyntaxToken> {
20241        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
20242    }
20243}
20244
20245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20246pub struct TrimFn {
20247    pub(crate) syntax: SyntaxNode,
20248}
20249impl TrimFn {
20250    #[inline]
20251    pub fn expr(&self) -> Option<Expr> {
20252        support::child(&self.syntax)
20253    }
20254    #[inline]
20255    pub fn exprs(&self) -> AstChildren<Expr> {
20256        support::children(&self.syntax)
20257    }
20258    #[inline]
20259    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20260        support::token(&self.syntax, SyntaxKind::L_PAREN)
20261    }
20262    #[inline]
20263    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20264        support::token(&self.syntax, SyntaxKind::R_PAREN)
20265    }
20266    #[inline]
20267    pub fn both_token(&self) -> Option<SyntaxToken> {
20268        support::token(&self.syntax, SyntaxKind::BOTH_KW)
20269    }
20270    #[inline]
20271    pub fn from_token(&self) -> Option<SyntaxToken> {
20272        support::token(&self.syntax, SyntaxKind::FROM_KW)
20273    }
20274    #[inline]
20275    pub fn leading_token(&self) -> Option<SyntaxToken> {
20276        support::token(&self.syntax, SyntaxKind::LEADING_KW)
20277    }
20278    #[inline]
20279    pub fn trailing_token(&self) -> Option<SyntaxToken> {
20280        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
20281    }
20282    #[inline]
20283    pub fn trim_token(&self) -> Option<SyntaxToken> {
20284        support::token(&self.syntax, SyntaxKind::TRIM_KW)
20285    }
20286}
20287
20288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20289pub struct Truncate {
20290    pub(crate) syntax: SyntaxNode,
20291}
20292impl Truncate {
20293    #[inline]
20294    pub fn table_list(&self) -> Option<TableList> {
20295        support::child(&self.syntax)
20296    }
20297    #[inline]
20298    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
20299        support::token(&self.syntax, SyntaxKind::SEMICOLON)
20300    }
20301    #[inline]
20302    pub fn cascade_token(&self) -> Option<SyntaxToken> {
20303        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
20304    }
20305    #[inline]
20306    pub fn continue_token(&self) -> Option<SyntaxToken> {
20307        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
20308    }
20309    #[inline]
20310    pub fn identity_token(&self) -> Option<SyntaxToken> {
20311        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
20312    }
20313    #[inline]
20314    pub fn restart_token(&self) -> Option<SyntaxToken> {
20315        support::token(&self.syntax, SyntaxKind::RESTART_KW)
20316    }
20317    #[inline]
20318    pub fn restrict_token(&self) -> Option<SyntaxToken> {
20319        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
20320    }
20321    #[inline]
20322    pub fn table_token(&self) -> Option<SyntaxToken> {
20323        support::token(&self.syntax, SyntaxKind::TABLE_KW)
20324    }
20325    #[inline]
20326    pub fn truncate_token(&self) -> Option<SyntaxToken> {
20327        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
20328    }
20329}
20330
20331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20332pub struct TupleExpr {
20333    pub(crate) syntax: SyntaxNode,
20334}
20335impl TupleExpr {
20336    #[inline]
20337    pub fn exprs(&self) -> AstChildren<Expr> {
20338        support::children(&self.syntax)
20339    }
20340    #[inline]
20341    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20342        support::token(&self.syntax, SyntaxKind::L_PAREN)
20343    }
20344    #[inline]
20345    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20346        support::token(&self.syntax, SyntaxKind::R_PAREN)
20347    }
20348}
20349
20350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20351pub struct UnboundedFollowing {
20352    pub(crate) syntax: SyntaxNode,
20353}
20354impl UnboundedFollowing {
20355    #[inline]
20356    pub fn following_token(&self) -> Option<SyntaxToken> {
20357        support::token(&self.syntax, SyntaxKind::FOLLOWING_KW)
20358    }
20359    #[inline]
20360    pub fn unbounded_token(&self) -> Option<SyntaxToken> {
20361        support::token(&self.syntax, SyntaxKind::UNBOUNDED_KW)
20362    }
20363}
20364
20365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20366pub struct UnboundedPreceding {
20367    pub(crate) syntax: SyntaxNode,
20368}
20369impl UnboundedPreceding {
20370    #[inline]
20371    pub fn preceding_token(&self) -> Option<SyntaxToken> {
20372        support::token(&self.syntax, SyntaxKind::PRECEDING_KW)
20373    }
20374    #[inline]
20375    pub fn unbounded_token(&self) -> Option<SyntaxToken> {
20376        support::token(&self.syntax, SyntaxKind::UNBOUNDED_KW)
20377    }
20378}
20379
20380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20381pub struct UnicodeNormalForm {
20382    pub(crate) syntax: SyntaxNode,
20383}
20384impl UnicodeNormalForm {
20385    #[inline]
20386    pub fn nfc_token(&self) -> Option<SyntaxToken> {
20387        support::token(&self.syntax, SyntaxKind::NFC_KW)
20388    }
20389    #[inline]
20390    pub fn nfd_token(&self) -> Option<SyntaxToken> {
20391        support::token(&self.syntax, SyntaxKind::NFD_KW)
20392    }
20393    #[inline]
20394    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
20395        support::token(&self.syntax, SyntaxKind::NFKC_KW)
20396    }
20397    #[inline]
20398    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
20399        support::token(&self.syntax, SyntaxKind::NFKD_KW)
20400    }
20401}
20402
20403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20404pub struct UniqueConstraint {
20405    pub(crate) syntax: SyntaxNode,
20406}
20407impl UniqueConstraint {
20408    #[inline]
20409    pub fn column_list(&self) -> Option<ColumnList> {
20410        support::child(&self.syntax)
20411    }
20412    #[inline]
20413    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
20414        support::child(&self.syntax)
20415    }
20416    #[inline]
20417    pub fn constraint_index_tablespace(&self) -> Option<ConstraintIndexTablespace> {
20418        support::child(&self.syntax)
20419    }
20420    #[inline]
20421    pub fn constraint_name(&self) -> Option<ConstraintName> {
20422        support::child(&self.syntax)
20423    }
20424    #[inline]
20425    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
20426        support::child(&self.syntax)
20427    }
20428    #[inline]
20429    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
20430        support::child(&self.syntax)
20431    }
20432    #[inline]
20433    pub fn using_index(&self) -> Option<UsingIndex> {
20434        support::child(&self.syntax)
20435    }
20436    #[inline]
20437    pub fn with_params(&self) -> Option<WithParams> {
20438        support::child(&self.syntax)
20439    }
20440    #[inline]
20441    pub fn unique_token(&self) -> Option<SyntaxToken> {
20442        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
20443    }
20444}
20445
20446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20447pub struct Unlisten {
20448    pub(crate) syntax: SyntaxNode,
20449}
20450impl Unlisten {
20451    #[inline]
20452    pub fn name_ref(&self) -> Option<NameRef> {
20453        support::child(&self.syntax)
20454    }
20455    #[inline]
20456    pub fn star_token(&self) -> Option<SyntaxToken> {
20457        support::token(&self.syntax, SyntaxKind::STAR)
20458    }
20459    #[inline]
20460    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
20461        support::token(&self.syntax, SyntaxKind::SEMICOLON)
20462    }
20463    #[inline]
20464    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
20465        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
20466    }
20467}
20468
20469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20470pub struct Unlogged {
20471    pub(crate) syntax: SyntaxNode,
20472}
20473impl Unlogged {
20474    #[inline]
20475    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
20476        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
20477    }
20478}
20479
20480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20481pub struct Update {
20482    pub(crate) syntax: SyntaxNode,
20483}
20484impl Update {
20485    #[inline]
20486    pub fn alias(&self) -> Option<Alias> {
20487        support::child(&self.syntax)
20488    }
20489    #[inline]
20490    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
20491        support::child(&self.syntax)
20492    }
20493    #[inline]
20494    pub fn from_clause(&self) -> Option<FromClause> {
20495        support::child(&self.syntax)
20496    }
20497    #[inline]
20498    pub fn relation_name(&self) -> Option<RelationName> {
20499        support::child(&self.syntax)
20500    }
20501    #[inline]
20502    pub fn returning_clause(&self) -> Option<ReturningClause> {
20503        support::child(&self.syntax)
20504    }
20505    #[inline]
20506    pub fn set_clause(&self) -> Option<SetClause> {
20507        support::child(&self.syntax)
20508    }
20509    #[inline]
20510    pub fn where_clause(&self) -> Option<WhereClause> {
20511        support::child(&self.syntax)
20512    }
20513    #[inline]
20514    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
20515        support::child(&self.syntax)
20516    }
20517    #[inline]
20518    pub fn with_clause(&self) -> Option<WithClause> {
20519        support::child(&self.syntax)
20520    }
20521    #[inline]
20522    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
20523        support::token(&self.syntax, SyntaxKind::SEMICOLON)
20524    }
20525    #[inline]
20526    pub fn update_token(&self) -> Option<SyntaxToken> {
20527        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
20528    }
20529}
20530
20531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20532pub struct UsingClause {
20533    pub(crate) syntax: SyntaxNode,
20534}
20535impl UsingClause {
20536    #[inline]
20537    pub fn from_items(&self) -> AstChildren<FromItem> {
20538        support::children(&self.syntax)
20539    }
20540    #[inline]
20541    pub fn using_token(&self) -> Option<SyntaxToken> {
20542        support::token(&self.syntax, SyntaxKind::USING_KW)
20543    }
20544}
20545
20546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20547pub struct UsingExprClause {
20548    pub(crate) syntax: SyntaxNode,
20549}
20550impl UsingExprClause {
20551    #[inline]
20552    pub fn expr(&self) -> Option<Expr> {
20553        support::child(&self.syntax)
20554    }
20555    #[inline]
20556    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20557        support::token(&self.syntax, SyntaxKind::L_PAREN)
20558    }
20559    #[inline]
20560    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20561        support::token(&self.syntax, SyntaxKind::R_PAREN)
20562    }
20563    #[inline]
20564    pub fn using_token(&self) -> Option<SyntaxToken> {
20565        support::token(&self.syntax, SyntaxKind::USING_KW)
20566    }
20567}
20568
20569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20570pub struct UsingIndex {
20571    pub(crate) syntax: SyntaxNode,
20572}
20573impl UsingIndex {
20574    #[inline]
20575    pub fn name_ref(&self) -> Option<NameRef> {
20576        support::child(&self.syntax)
20577    }
20578    #[inline]
20579    pub fn index_token(&self) -> Option<SyntaxToken> {
20580        support::token(&self.syntax, SyntaxKind::INDEX_KW)
20581    }
20582    #[inline]
20583    pub fn using_token(&self) -> Option<SyntaxToken> {
20584        support::token(&self.syntax, SyntaxKind::USING_KW)
20585    }
20586}
20587
20588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20589pub struct UsingMethod {
20590    pub(crate) syntax: SyntaxNode,
20591}
20592impl UsingMethod {
20593    #[inline]
20594    pub fn name_ref(&self) -> Option<NameRef> {
20595        support::child(&self.syntax)
20596    }
20597    #[inline]
20598    pub fn using_token(&self) -> Option<SyntaxToken> {
20599        support::token(&self.syntax, SyntaxKind::USING_KW)
20600    }
20601}
20602
20603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20604pub struct UsingOnClause {
20605    pub(crate) syntax: SyntaxNode,
20606}
20607impl UsingOnClause {
20608    #[inline]
20609    pub fn from_item(&self) -> Option<FromItem> {
20610        support::child(&self.syntax)
20611    }
20612    #[inline]
20613    pub fn on_clause(&self) -> Option<OnClause> {
20614        support::child(&self.syntax)
20615    }
20616    #[inline]
20617    pub fn using_token(&self) -> Option<SyntaxToken> {
20618        support::token(&self.syntax, SyntaxKind::USING_KW)
20619    }
20620}
20621
20622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20623pub struct Vacuum {
20624    pub(crate) syntax: SyntaxNode,
20625}
20626impl Vacuum {
20627    #[inline]
20628    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
20629        support::child(&self.syntax)
20630    }
20631    #[inline]
20632    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
20633        support::child(&self.syntax)
20634    }
20635    #[inline]
20636    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
20637        support::token(&self.syntax, SyntaxKind::SEMICOLON)
20638    }
20639    #[inline]
20640    pub fn analyse_token(&self) -> Option<SyntaxToken> {
20641        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
20642    }
20643    #[inline]
20644    pub fn analyze_token(&self) -> Option<SyntaxToken> {
20645        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
20646    }
20647    #[inline]
20648    pub fn freeze_token(&self) -> Option<SyntaxToken> {
20649        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
20650    }
20651    #[inline]
20652    pub fn full_token(&self) -> Option<SyntaxToken> {
20653        support::token(&self.syntax, SyntaxKind::FULL_KW)
20654    }
20655    #[inline]
20656    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
20657        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
20658    }
20659    #[inline]
20660    pub fn verbose_token(&self) -> Option<SyntaxToken> {
20661        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
20662    }
20663}
20664
20665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20666pub struct VacuumOption {
20667    pub(crate) syntax: SyntaxNode,
20668}
20669impl VacuumOption {
20670    #[inline]
20671    pub fn name(&self) -> Option<Name> {
20672        support::child(&self.syntax)
20673    }
20674    #[inline]
20675    pub fn vacuum_option_value(&self) -> Option<VacuumOptionValue> {
20676        support::child(&self.syntax)
20677    }
20678}
20679
20680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20681pub struct VacuumOptionList {
20682    pub(crate) syntax: SyntaxNode,
20683}
20684impl VacuumOptionList {
20685    #[inline]
20686    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
20687        support::children(&self.syntax)
20688    }
20689    #[inline]
20690    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20691        support::token(&self.syntax, SyntaxKind::L_PAREN)
20692    }
20693    #[inline]
20694    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20695        support::token(&self.syntax, SyntaxKind::R_PAREN)
20696    }
20697}
20698
20699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20700pub struct VacuumOptionValue {
20701    pub(crate) syntax: SyntaxNode,
20702}
20703impl VacuumOptionValue {
20704    #[inline]
20705    pub fn literal(&self) -> Option<Literal> {
20706        support::child(&self.syntax)
20707    }
20708    #[inline]
20709    pub fn name(&self) -> Option<Name> {
20710        support::child(&self.syntax)
20711    }
20712}
20713
20714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20715pub struct ValidateConstraint {
20716    pub(crate) syntax: SyntaxNode,
20717}
20718impl ValidateConstraint {
20719    #[inline]
20720    pub fn name_ref(&self) -> Option<NameRef> {
20721        support::child(&self.syntax)
20722    }
20723    #[inline]
20724    pub fn constraint_token(&self) -> Option<SyntaxToken> {
20725        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
20726    }
20727    #[inline]
20728    pub fn validate_token(&self) -> Option<SyntaxToken> {
20729        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
20730    }
20731}
20732
20733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20734pub struct Values {
20735    pub(crate) syntax: SyntaxNode,
20736}
20737impl Values {
20738    #[inline]
20739    pub fn fetch_clause(&self) -> Option<FetchClause> {
20740        support::child(&self.syntax)
20741    }
20742    #[inline]
20743    pub fn limit_clause(&self) -> Option<LimitClause> {
20744        support::child(&self.syntax)
20745    }
20746    #[inline]
20747    pub fn offset_clause(&self) -> Option<OffsetClause> {
20748        support::child(&self.syntax)
20749    }
20750    #[inline]
20751    pub fn order_by_clause(&self) -> Option<OrderByClause> {
20752        support::child(&self.syntax)
20753    }
20754    #[inline]
20755    pub fn row_list(&self) -> Option<RowList> {
20756        support::child(&self.syntax)
20757    }
20758    #[inline]
20759    pub fn with_clause(&self) -> Option<WithClause> {
20760        support::child(&self.syntax)
20761    }
20762    #[inline]
20763    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
20764        support::token(&self.syntax, SyntaxKind::SEMICOLON)
20765    }
20766    #[inline]
20767    pub fn values_token(&self) -> Option<SyntaxToken> {
20768        support::token(&self.syntax, SyntaxKind::VALUES_KW)
20769    }
20770}
20771
20772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20773pub struct Variant {
20774    pub(crate) syntax: SyntaxNode,
20775}
20776impl Variant {
20777    #[inline]
20778    pub fn literal(&self) -> Option<Literal> {
20779        support::child(&self.syntax)
20780    }
20781}
20782
20783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20784pub struct VariantList {
20785    pub(crate) syntax: SyntaxNode,
20786}
20787impl VariantList {
20788    #[inline]
20789    pub fn variants(&self) -> AstChildren<Variant> {
20790        support::children(&self.syntax)
20791    }
20792    #[inline]
20793    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20794        support::token(&self.syntax, SyntaxKind::L_PAREN)
20795    }
20796    #[inline]
20797    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20798        support::token(&self.syntax, SyntaxKind::R_PAREN)
20799    }
20800}
20801
20802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20803pub struct VertexPattern {
20804    pub(crate) syntax: SyntaxNode,
20805}
20806impl VertexPattern {
20807    #[inline]
20808    pub fn is_label(&self) -> Option<IsLabel> {
20809        support::child(&self.syntax)
20810    }
20811    #[inline]
20812    pub fn name(&self) -> Option<Name> {
20813        support::child(&self.syntax)
20814    }
20815    #[inline]
20816    pub fn where_clause(&self) -> Option<WhereClause> {
20817        support::child(&self.syntax)
20818    }
20819    #[inline]
20820    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20821        support::token(&self.syntax, SyntaxKind::L_PAREN)
20822    }
20823    #[inline]
20824    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20825        support::token(&self.syntax, SyntaxKind::R_PAREN)
20826    }
20827}
20828
20829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20830pub struct VertexTableDef {
20831    pub(crate) syntax: SyntaxNode,
20832}
20833impl VertexTableDef {
20834    #[inline]
20835    pub fn column_list(&self) -> Option<ColumnList> {
20836        support::child(&self.syntax)
20837    }
20838    #[inline]
20839    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
20840        support::child(&self.syntax)
20841    }
20842    #[inline]
20843    pub fn name(&self) -> Option<Name> {
20844        support::child(&self.syntax)
20845    }
20846    #[inline]
20847    pub fn path(&self) -> Option<Path> {
20848        support::child(&self.syntax)
20849    }
20850    #[inline]
20851    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20852        support::token(&self.syntax, SyntaxKind::L_PAREN)
20853    }
20854    #[inline]
20855    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20856        support::token(&self.syntax, SyntaxKind::R_PAREN)
20857    }
20858    #[inline]
20859    pub fn as_token(&self) -> Option<SyntaxToken> {
20860        support::token(&self.syntax, SyntaxKind::AS_KW)
20861    }
20862    #[inline]
20863    pub fn key_token(&self) -> Option<SyntaxToken> {
20864        support::token(&self.syntax, SyntaxKind::KEY_KW)
20865    }
20866}
20867
20868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20869pub struct VertexTables {
20870    pub(crate) syntax: SyntaxNode,
20871}
20872impl VertexTables {
20873    #[inline]
20874    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
20875        support::children(&self.syntax)
20876    }
20877    #[inline]
20878    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20879        support::token(&self.syntax, SyntaxKind::L_PAREN)
20880    }
20881    #[inline]
20882    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20883        support::token(&self.syntax, SyntaxKind::R_PAREN)
20884    }
20885    #[inline]
20886    pub fn node_token(&self) -> Option<SyntaxToken> {
20887        support::token(&self.syntax, SyntaxKind::NODE_KW)
20888    }
20889    #[inline]
20890    pub fn tables_token(&self) -> Option<SyntaxToken> {
20891        support::token(&self.syntax, SyntaxKind::TABLES_KW)
20892    }
20893    #[inline]
20894    pub fn vertex_token(&self) -> Option<SyntaxToken> {
20895        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
20896    }
20897}
20898
20899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20900pub struct VolatilityFuncOption {
20901    pub(crate) syntax: SyntaxNode,
20902}
20903impl VolatilityFuncOption {
20904    #[inline]
20905    pub fn immutable_token(&self) -> Option<SyntaxToken> {
20906        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
20907    }
20908    #[inline]
20909    pub fn stable_token(&self) -> Option<SyntaxToken> {
20910        support::token(&self.syntax, SyntaxKind::STABLE_KW)
20911    }
20912    #[inline]
20913    pub fn volatile_token(&self) -> Option<SyntaxToken> {
20914        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
20915    }
20916}
20917
20918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20919pub struct WhenClause {
20920    pub(crate) syntax: SyntaxNode,
20921}
20922impl WhenClause {
20923    #[inline]
20924    pub fn then_token(&self) -> Option<SyntaxToken> {
20925        support::token(&self.syntax, SyntaxKind::THEN_KW)
20926    }
20927    #[inline]
20928    pub fn when_token(&self) -> Option<SyntaxToken> {
20929        support::token(&self.syntax, SyntaxKind::WHEN_KW)
20930    }
20931}
20932
20933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20934pub struct WhenClauseList {
20935    pub(crate) syntax: SyntaxNode,
20936}
20937impl WhenClauseList {
20938    #[inline]
20939    pub fn when_clause(&self) -> Option<WhenClause> {
20940        support::child(&self.syntax)
20941    }
20942    #[inline]
20943    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
20944        support::children(&self.syntax)
20945    }
20946}
20947
20948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20949pub struct WhenCondition {
20950    pub(crate) syntax: SyntaxNode,
20951}
20952impl WhenCondition {
20953    #[inline]
20954    pub fn expr(&self) -> Option<Expr> {
20955        support::child(&self.syntax)
20956    }
20957    #[inline]
20958    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20959        support::token(&self.syntax, SyntaxKind::L_PAREN)
20960    }
20961    #[inline]
20962    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
20963        support::token(&self.syntax, SyntaxKind::R_PAREN)
20964    }
20965    #[inline]
20966    pub fn when_token(&self) -> Option<SyntaxToken> {
20967        support::token(&self.syntax, SyntaxKind::WHEN_KW)
20968    }
20969}
20970
20971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20972pub struct WhereClause {
20973    pub(crate) syntax: SyntaxNode,
20974}
20975impl WhereClause {
20976    #[inline]
20977    pub fn expr(&self) -> Option<Expr> {
20978        support::child(&self.syntax)
20979    }
20980    #[inline]
20981    pub fn where_token(&self) -> Option<SyntaxToken> {
20982        support::token(&self.syntax, SyntaxKind::WHERE_KW)
20983    }
20984}
20985
20986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
20987pub struct WhereConditionClause {
20988    pub(crate) syntax: SyntaxNode,
20989}
20990impl WhereConditionClause {
20991    #[inline]
20992    pub fn expr(&self) -> Option<Expr> {
20993        support::child(&self.syntax)
20994    }
20995    #[inline]
20996    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
20997        support::token(&self.syntax, SyntaxKind::L_PAREN)
20998    }
20999    #[inline]
21000    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21001        support::token(&self.syntax, SyntaxKind::R_PAREN)
21002    }
21003    #[inline]
21004    pub fn where_token(&self) -> Option<SyntaxToken> {
21005        support::token(&self.syntax, SyntaxKind::WHERE_KW)
21006    }
21007}
21008
21009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21010pub struct WhereCurrentOf {
21011    pub(crate) syntax: SyntaxNode,
21012}
21013impl WhereCurrentOf {
21014    #[inline]
21015    pub fn name_ref(&self) -> Option<NameRef> {
21016        support::child(&self.syntax)
21017    }
21018    #[inline]
21019    pub fn current_token(&self) -> Option<SyntaxToken> {
21020        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
21021    }
21022    #[inline]
21023    pub fn of_token(&self) -> Option<SyntaxToken> {
21024        support::token(&self.syntax, SyntaxKind::OF_KW)
21025    }
21026    #[inline]
21027    pub fn where_token(&self) -> Option<SyntaxToken> {
21028        support::token(&self.syntax, SyntaxKind::WHERE_KW)
21029    }
21030}
21031
21032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21033pub struct WindowClause {
21034    pub(crate) syntax: SyntaxNode,
21035}
21036impl WindowClause {
21037    #[inline]
21038    pub fn window_defs(&self) -> AstChildren<WindowDef> {
21039        support::children(&self.syntax)
21040    }
21041    #[inline]
21042    pub fn window_token(&self) -> Option<SyntaxToken> {
21043        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
21044    }
21045}
21046
21047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21048pub struct WindowDef {
21049    pub(crate) syntax: SyntaxNode,
21050}
21051impl WindowDef {
21052    #[inline]
21053    pub fn name(&self) -> Option<Name> {
21054        support::child(&self.syntax)
21055    }
21056    #[inline]
21057    pub fn window_spec(&self) -> Option<WindowSpec> {
21058        support::child(&self.syntax)
21059    }
21060    #[inline]
21061    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21062        support::token(&self.syntax, SyntaxKind::L_PAREN)
21063    }
21064    #[inline]
21065    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21066        support::token(&self.syntax, SyntaxKind::R_PAREN)
21067    }
21068    #[inline]
21069    pub fn as_token(&self) -> Option<SyntaxToken> {
21070        support::token(&self.syntax, SyntaxKind::AS_KW)
21071    }
21072}
21073
21074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21075pub struct WindowFuncOption {
21076    pub(crate) syntax: SyntaxNode,
21077}
21078impl WindowFuncOption {
21079    #[inline]
21080    pub fn window_token(&self) -> Option<SyntaxToken> {
21081        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
21082    }
21083}
21084
21085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21086pub struct WindowSpec {
21087    pub(crate) syntax: SyntaxNode,
21088}
21089impl WindowSpec {
21090    #[inline]
21091    pub fn exprs(&self) -> AstChildren<Expr> {
21092        support::children(&self.syntax)
21093    }
21094    #[inline]
21095    pub fn frame_clause(&self) -> Option<FrameClause> {
21096        support::child(&self.syntax)
21097    }
21098    #[inline]
21099    pub fn order_by_clause(&self) -> Option<OrderByClause> {
21100        support::child(&self.syntax)
21101    }
21102    #[inline]
21103    pub fn by_token(&self) -> Option<SyntaxToken> {
21104        support::token(&self.syntax, SyntaxKind::BY_KW)
21105    }
21106    #[inline]
21107    pub fn ident_token(&self) -> Option<SyntaxToken> {
21108        support::token(&self.syntax, SyntaxKind::IDENT)
21109    }
21110    #[inline]
21111    pub fn partition_token(&self) -> Option<SyntaxToken> {
21112        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
21113    }
21114}
21115
21116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21117pub struct WithCheckExprClause {
21118    pub(crate) syntax: SyntaxNode,
21119}
21120impl WithCheckExprClause {
21121    #[inline]
21122    pub fn expr(&self) -> Option<Expr> {
21123        support::child(&self.syntax)
21124    }
21125    #[inline]
21126    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21127        support::token(&self.syntax, SyntaxKind::L_PAREN)
21128    }
21129    #[inline]
21130    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21131        support::token(&self.syntax, SyntaxKind::R_PAREN)
21132    }
21133    #[inline]
21134    pub fn check_token(&self) -> Option<SyntaxToken> {
21135        support::token(&self.syntax, SyntaxKind::CHECK_KW)
21136    }
21137    #[inline]
21138    pub fn with_token(&self) -> Option<SyntaxToken> {
21139        support::token(&self.syntax, SyntaxKind::WITH_KW)
21140    }
21141}
21142
21143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21144pub struct WithClause {
21145    pub(crate) syntax: SyntaxNode,
21146}
21147impl WithClause {
21148    #[inline]
21149    pub fn with_tables(&self) -> AstChildren<WithTable> {
21150        support::children(&self.syntax)
21151    }
21152    #[inline]
21153    pub fn recursive_token(&self) -> Option<SyntaxToken> {
21154        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
21155    }
21156    #[inline]
21157    pub fn with_token(&self) -> Option<SyntaxToken> {
21158        support::token(&self.syntax, SyntaxKind::WITH_KW)
21159    }
21160}
21161
21162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21163pub struct WithData {
21164    pub(crate) syntax: SyntaxNode,
21165}
21166impl WithData {
21167    #[inline]
21168    pub fn data_token(&self) -> Option<SyntaxToken> {
21169        support::token(&self.syntax, SyntaxKind::DATA_KW)
21170    }
21171    #[inline]
21172    pub fn with_token(&self) -> Option<SyntaxToken> {
21173        support::token(&self.syntax, SyntaxKind::WITH_KW)
21174    }
21175}
21176
21177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21178pub struct WithNoData {
21179    pub(crate) syntax: SyntaxNode,
21180}
21181impl WithNoData {
21182    #[inline]
21183    pub fn data_token(&self) -> Option<SyntaxToken> {
21184        support::token(&self.syntax, SyntaxKind::DATA_KW)
21185    }
21186    #[inline]
21187    pub fn no_token(&self) -> Option<SyntaxToken> {
21188        support::token(&self.syntax, SyntaxKind::NO_KW)
21189    }
21190    #[inline]
21191    pub fn with_token(&self) -> Option<SyntaxToken> {
21192        support::token(&self.syntax, SyntaxKind::WITH_KW)
21193    }
21194}
21195
21196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21197pub struct WithOptions {
21198    pub(crate) syntax: SyntaxNode,
21199}
21200impl WithOptions {
21201    #[inline]
21202    pub fn options_token(&self) -> Option<SyntaxToken> {
21203        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
21204    }
21205    #[inline]
21206    pub fn with_token(&self) -> Option<SyntaxToken> {
21207        support::token(&self.syntax, SyntaxKind::WITH_KW)
21208    }
21209}
21210
21211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21212pub struct WithParams {
21213    pub(crate) syntax: SyntaxNode,
21214}
21215impl WithParams {
21216    #[inline]
21217    pub fn attribute_list(&self) -> Option<AttributeList> {
21218        support::child(&self.syntax)
21219    }
21220    #[inline]
21221    pub fn with_token(&self) -> Option<SyntaxToken> {
21222        support::token(&self.syntax, SyntaxKind::WITH_KW)
21223    }
21224}
21225
21226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21227pub struct WithTable {
21228    pub(crate) syntax: SyntaxNode,
21229}
21230impl WithTable {
21231    #[inline]
21232    pub fn column_list(&self) -> Option<ColumnList> {
21233        support::child(&self.syntax)
21234    }
21235    #[inline]
21236    pub fn cycle_clause(&self) -> Option<CycleClause> {
21237        support::child(&self.syntax)
21238    }
21239    #[inline]
21240    pub fn materialized(&self) -> Option<Materialized> {
21241        support::child(&self.syntax)
21242    }
21243    #[inline]
21244    pub fn name(&self) -> Option<Name> {
21245        support::child(&self.syntax)
21246    }
21247    #[inline]
21248    pub fn not_materialized(&self) -> Option<NotMaterialized> {
21249        support::child(&self.syntax)
21250    }
21251    #[inline]
21252    pub fn query(&self) -> Option<WithQuery> {
21253        support::child(&self.syntax)
21254    }
21255    #[inline]
21256    pub fn search_clause(&self) -> Option<SearchClause> {
21257        support::child(&self.syntax)
21258    }
21259    #[inline]
21260    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21261        support::token(&self.syntax, SyntaxKind::L_PAREN)
21262    }
21263    #[inline]
21264    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21265        support::token(&self.syntax, SyntaxKind::R_PAREN)
21266    }
21267    #[inline]
21268    pub fn as_token(&self) -> Option<SyntaxToken> {
21269        support::token(&self.syntax, SyntaxKind::AS_KW)
21270    }
21271}
21272
21273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21274pub struct WithTimezone {
21275    pub(crate) syntax: SyntaxNode,
21276}
21277impl WithTimezone {
21278    #[inline]
21279    pub fn time_token(&self) -> Option<SyntaxToken> {
21280        support::token(&self.syntax, SyntaxKind::TIME_KW)
21281    }
21282    #[inline]
21283    pub fn with_token(&self) -> Option<SyntaxToken> {
21284        support::token(&self.syntax, SyntaxKind::WITH_KW)
21285    }
21286    #[inline]
21287    pub fn zone_token(&self) -> Option<SyntaxToken> {
21288        support::token(&self.syntax, SyntaxKind::ZONE_KW)
21289    }
21290}
21291
21292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21293pub struct WithinClause {
21294    pub(crate) syntax: SyntaxNode,
21295}
21296impl WithinClause {
21297    #[inline]
21298    pub fn order_by_clause(&self) -> Option<OrderByClause> {
21299        support::child(&self.syntax)
21300    }
21301    #[inline]
21302    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21303        support::token(&self.syntax, SyntaxKind::L_PAREN)
21304    }
21305    #[inline]
21306    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21307        support::token(&self.syntax, SyntaxKind::R_PAREN)
21308    }
21309    #[inline]
21310    pub fn group_token(&self) -> Option<SyntaxToken> {
21311        support::token(&self.syntax, SyntaxKind::GROUP_KW)
21312    }
21313    #[inline]
21314    pub fn within_token(&self) -> Option<SyntaxToken> {
21315        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
21316    }
21317}
21318
21319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21320pub struct WithoutOids {
21321    pub(crate) syntax: SyntaxNode,
21322}
21323impl WithoutOids {
21324    #[inline]
21325    pub fn oids_token(&self) -> Option<SyntaxToken> {
21326        support::token(&self.syntax, SyntaxKind::OIDS_KW)
21327    }
21328    #[inline]
21329    pub fn without_token(&self) -> Option<SyntaxToken> {
21330        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
21331    }
21332}
21333
21334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21335pub struct WithoutTimezone {
21336    pub(crate) syntax: SyntaxNode,
21337}
21338impl WithoutTimezone {
21339    #[inline]
21340    pub fn time_token(&self) -> Option<SyntaxToken> {
21341        support::token(&self.syntax, SyntaxKind::TIME_KW)
21342    }
21343    #[inline]
21344    pub fn without_token(&self) -> Option<SyntaxToken> {
21345        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
21346    }
21347    #[inline]
21348    pub fn zone_token(&self) -> Option<SyntaxToken> {
21349        support::token(&self.syntax, SyntaxKind::ZONE_KW)
21350    }
21351}
21352
21353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21354pub struct XmlColumnOption {
21355    pub(crate) syntax: SyntaxNode,
21356}
21357impl XmlColumnOption {
21358    #[inline]
21359    pub fn expr(&self) -> Option<Expr> {
21360        support::child(&self.syntax)
21361    }
21362    #[inline]
21363    pub fn default_token(&self) -> Option<SyntaxToken> {
21364        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
21365    }
21366    #[inline]
21367    pub fn ident_token(&self) -> Option<SyntaxToken> {
21368        support::token(&self.syntax, SyntaxKind::IDENT)
21369    }
21370    #[inline]
21371    pub fn not_token(&self) -> Option<SyntaxToken> {
21372        support::token(&self.syntax, SyntaxKind::NOT_KW)
21373    }
21374    #[inline]
21375    pub fn null_token(&self) -> Option<SyntaxToken> {
21376        support::token(&self.syntax, SyntaxKind::NULL_KW)
21377    }
21378    #[inline]
21379    pub fn path_token(&self) -> Option<SyntaxToken> {
21380        support::token(&self.syntax, SyntaxKind::PATH_KW)
21381    }
21382}
21383
21384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21385pub struct XmlColumnOptionList {
21386    pub(crate) syntax: SyntaxNode,
21387}
21388impl XmlColumnOptionList {
21389    #[inline]
21390    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
21391        support::child(&self.syntax)
21392    }
21393    #[inline]
21394    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
21395        support::children(&self.syntax)
21396    }
21397}
21398
21399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21400pub struct XmlElementFn {
21401    pub(crate) syntax: SyntaxNode,
21402}
21403impl XmlElementFn {
21404    #[inline]
21405    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
21406        support::child(&self.syntax)
21407    }
21408    #[inline]
21409    pub fn exprs(&self) -> AstChildren<Expr> {
21410        support::children(&self.syntax)
21411    }
21412    #[inline]
21413    pub fn name(&self) -> Option<Name> {
21414        support::child(&self.syntax)
21415    }
21416    #[inline]
21417    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21418        support::token(&self.syntax, SyntaxKind::L_PAREN)
21419    }
21420    #[inline]
21421    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21422        support::token(&self.syntax, SyntaxKind::R_PAREN)
21423    }
21424    #[inline]
21425    pub fn comma_token(&self) -> Option<SyntaxToken> {
21426        support::token(&self.syntax, SyntaxKind::COMMA)
21427    }
21428    #[inline]
21429    pub fn name_token(&self) -> Option<SyntaxToken> {
21430        support::token(&self.syntax, SyntaxKind::NAME_KW)
21431    }
21432    #[inline]
21433    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
21434        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
21435    }
21436    #[inline]
21437    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
21438        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
21439    }
21440}
21441
21442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21443pub struct XmlExistsFn {
21444    pub(crate) syntax: SyntaxNode,
21445}
21446impl XmlExistsFn {
21447    #[inline]
21448    pub fn expr(&self) -> Option<Expr> {
21449        support::child(&self.syntax)
21450    }
21451    #[inline]
21452    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
21453        support::child(&self.syntax)
21454    }
21455    #[inline]
21456    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21457        support::token(&self.syntax, SyntaxKind::L_PAREN)
21458    }
21459    #[inline]
21460    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21461        support::token(&self.syntax, SyntaxKind::R_PAREN)
21462    }
21463    #[inline]
21464    pub fn passing_token(&self) -> Option<SyntaxToken> {
21465        support::token(&self.syntax, SyntaxKind::PASSING_KW)
21466    }
21467    #[inline]
21468    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
21469        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
21470    }
21471}
21472
21473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21474pub struct XmlForestFn {
21475    pub(crate) syntax: SyntaxNode,
21476}
21477impl XmlForestFn {
21478    #[inline]
21479    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
21480        support::child(&self.syntax)
21481    }
21482    #[inline]
21483    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21484        support::token(&self.syntax, SyntaxKind::L_PAREN)
21485    }
21486    #[inline]
21487    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21488        support::token(&self.syntax, SyntaxKind::R_PAREN)
21489    }
21490    #[inline]
21491    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
21492        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
21493    }
21494}
21495
21496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21497pub struct XmlNamespace {
21498    pub(crate) syntax: SyntaxNode,
21499}
21500impl XmlNamespace {
21501    #[inline]
21502    pub fn expr(&self) -> Option<Expr> {
21503        support::child(&self.syntax)
21504    }
21505    #[inline]
21506    pub fn name(&self) -> Option<Name> {
21507        support::child(&self.syntax)
21508    }
21509    #[inline]
21510    pub fn as_token(&self) -> Option<SyntaxToken> {
21511        support::token(&self.syntax, SyntaxKind::AS_KW)
21512    }
21513    #[inline]
21514    pub fn default_token(&self) -> Option<SyntaxToken> {
21515        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
21516    }
21517}
21518
21519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21520pub struct XmlNamespaceList {
21521    pub(crate) syntax: SyntaxNode,
21522}
21523impl XmlNamespaceList {
21524    #[inline]
21525    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
21526        support::children(&self.syntax)
21527    }
21528    #[inline]
21529    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21530        support::token(&self.syntax, SyntaxKind::L_PAREN)
21531    }
21532    #[inline]
21533    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21534        support::token(&self.syntax, SyntaxKind::R_PAREN)
21535    }
21536}
21537
21538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21539pub struct XmlParseFn {
21540    pub(crate) syntax: SyntaxNode,
21541}
21542impl XmlParseFn {
21543    #[inline]
21544    pub fn expr(&self) -> Option<Expr> {
21545        support::child(&self.syntax)
21546    }
21547    #[inline]
21548    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21549        support::token(&self.syntax, SyntaxKind::L_PAREN)
21550    }
21551    #[inline]
21552    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21553        support::token(&self.syntax, SyntaxKind::R_PAREN)
21554    }
21555    #[inline]
21556    pub fn content_token(&self) -> Option<SyntaxToken> {
21557        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
21558    }
21559    #[inline]
21560    pub fn document_token(&self) -> Option<SyntaxToken> {
21561        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
21562    }
21563    #[inline]
21564    pub fn preserve_token(&self) -> Option<SyntaxToken> {
21565        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
21566    }
21567    #[inline]
21568    pub fn strip_token(&self) -> Option<SyntaxToken> {
21569        support::token(&self.syntax, SyntaxKind::STRIP_KW)
21570    }
21571    #[inline]
21572    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
21573        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
21574    }
21575    #[inline]
21576    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
21577        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
21578    }
21579}
21580
21581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21582pub struct XmlPassingMech {
21583    pub(crate) syntax: SyntaxNode,
21584}
21585impl XmlPassingMech {
21586    #[inline]
21587    pub fn by_token(&self) -> Option<SyntaxToken> {
21588        support::token(&self.syntax, SyntaxKind::BY_KW)
21589    }
21590    #[inline]
21591    pub fn ref_token(&self) -> Option<SyntaxToken> {
21592        support::token(&self.syntax, SyntaxKind::REF_KW)
21593    }
21594    #[inline]
21595    pub fn value_token(&self) -> Option<SyntaxToken> {
21596        support::token(&self.syntax, SyntaxKind::VALUE_KW)
21597    }
21598}
21599
21600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21601pub struct XmlPiFn {
21602    pub(crate) syntax: SyntaxNode,
21603}
21604impl XmlPiFn {
21605    #[inline]
21606    pub fn expr(&self) -> Option<Expr> {
21607        support::child(&self.syntax)
21608    }
21609    #[inline]
21610    pub fn name(&self) -> Option<Name> {
21611        support::child(&self.syntax)
21612    }
21613    #[inline]
21614    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21615        support::token(&self.syntax, SyntaxKind::L_PAREN)
21616    }
21617    #[inline]
21618    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21619        support::token(&self.syntax, SyntaxKind::R_PAREN)
21620    }
21621    #[inline]
21622    pub fn comma_token(&self) -> Option<SyntaxToken> {
21623        support::token(&self.syntax, SyntaxKind::COMMA)
21624    }
21625    #[inline]
21626    pub fn name_token(&self) -> Option<SyntaxToken> {
21627        support::token(&self.syntax, SyntaxKind::NAME_KW)
21628    }
21629    #[inline]
21630    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
21631        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
21632    }
21633}
21634
21635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21636pub struct XmlRootFn {
21637    pub(crate) syntax: SyntaxNode,
21638}
21639impl XmlRootFn {
21640    #[inline]
21641    pub fn expr(&self) -> Option<Expr> {
21642        support::child(&self.syntax)
21643    }
21644    #[inline]
21645    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21646        support::token(&self.syntax, SyntaxKind::L_PAREN)
21647    }
21648    #[inline]
21649    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21650        support::token(&self.syntax, SyntaxKind::R_PAREN)
21651    }
21652    #[inline]
21653    pub fn comma_token(&self) -> Option<SyntaxToken> {
21654        support::token(&self.syntax, SyntaxKind::COMMA)
21655    }
21656    #[inline]
21657    pub fn no_token(&self) -> Option<SyntaxToken> {
21658        support::token(&self.syntax, SyntaxKind::NO_KW)
21659    }
21660    #[inline]
21661    pub fn standalone_token(&self) -> Option<SyntaxToken> {
21662        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
21663    }
21664    #[inline]
21665    pub fn value_token(&self) -> Option<SyntaxToken> {
21666        support::token(&self.syntax, SyntaxKind::VALUE_KW)
21667    }
21668    #[inline]
21669    pub fn version_token(&self) -> Option<SyntaxToken> {
21670        support::token(&self.syntax, SyntaxKind::VERSION_KW)
21671    }
21672    #[inline]
21673    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
21674        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
21675    }
21676    #[inline]
21677    pub fn yes_token(&self) -> Option<SyntaxToken> {
21678        support::token(&self.syntax, SyntaxKind::YES_KW)
21679    }
21680}
21681
21682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21683pub struct XmlRowPassingClause {
21684    pub(crate) syntax: SyntaxNode,
21685}
21686impl XmlRowPassingClause {
21687    #[inline]
21688    pub fn expr(&self) -> Option<Expr> {
21689        support::child(&self.syntax)
21690    }
21691    #[inline]
21692    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
21693        support::child(&self.syntax)
21694    }
21695    #[inline]
21696    pub fn passing_token(&self) -> Option<SyntaxToken> {
21697        support::token(&self.syntax, SyntaxKind::PASSING_KW)
21698    }
21699}
21700
21701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21702pub struct XmlSerializeFn {
21703    pub(crate) syntax: SyntaxNode,
21704}
21705impl XmlSerializeFn {
21706    #[inline]
21707    pub fn expr(&self) -> Option<Expr> {
21708        support::child(&self.syntax)
21709    }
21710    #[inline]
21711    pub fn ty(&self) -> Option<Type> {
21712        support::child(&self.syntax)
21713    }
21714    #[inline]
21715    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21716        support::token(&self.syntax, SyntaxKind::L_PAREN)
21717    }
21718    #[inline]
21719    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21720        support::token(&self.syntax, SyntaxKind::R_PAREN)
21721    }
21722    #[inline]
21723    pub fn as_token(&self) -> Option<SyntaxToken> {
21724        support::token(&self.syntax, SyntaxKind::AS_KW)
21725    }
21726    #[inline]
21727    pub fn content_token(&self) -> Option<SyntaxToken> {
21728        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
21729    }
21730    #[inline]
21731    pub fn document_token(&self) -> Option<SyntaxToken> {
21732        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
21733    }
21734    #[inline]
21735    pub fn indent_token(&self) -> Option<SyntaxToken> {
21736        support::token(&self.syntax, SyntaxKind::INDENT_KW)
21737    }
21738    #[inline]
21739    pub fn no_token(&self) -> Option<SyntaxToken> {
21740        support::token(&self.syntax, SyntaxKind::NO_KW)
21741    }
21742    #[inline]
21743    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
21744        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
21745    }
21746}
21747
21748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21749pub struct XmlTable {
21750    pub(crate) syntax: SyntaxNode,
21751}
21752impl XmlTable {
21753    #[inline]
21754    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
21755        support::child(&self.syntax)
21756    }
21757    #[inline]
21758    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
21759        support::child(&self.syntax)
21760    }
21761    #[inline]
21762    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
21763        support::child(&self.syntax)
21764    }
21765    #[inline]
21766    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
21767        support::token(&self.syntax, SyntaxKind::L_PAREN)
21768    }
21769    #[inline]
21770    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
21771        support::token(&self.syntax, SyntaxKind::R_PAREN)
21772    }
21773    #[inline]
21774    pub fn comma_token(&self) -> Option<SyntaxToken> {
21775        support::token(&self.syntax, SyntaxKind::COMMA)
21776    }
21777    #[inline]
21778    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
21779        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
21780    }
21781    #[inline]
21782    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
21783        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
21784    }
21785}
21786
21787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21788pub struct XmlTableColumn {
21789    pub(crate) syntax: SyntaxNode,
21790}
21791impl XmlTableColumn {
21792    #[inline]
21793    pub fn name(&self) -> Option<Name> {
21794        support::child(&self.syntax)
21795    }
21796    #[inline]
21797    pub fn ty(&self) -> Option<Type> {
21798        support::child(&self.syntax)
21799    }
21800    #[inline]
21801    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
21802        support::child(&self.syntax)
21803    }
21804    #[inline]
21805    pub fn for_token(&self) -> Option<SyntaxToken> {
21806        support::token(&self.syntax, SyntaxKind::FOR_KW)
21807    }
21808    #[inline]
21809    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
21810        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
21811    }
21812}
21813
21814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21815pub struct XmlTableColumnList {
21816    pub(crate) syntax: SyntaxNode,
21817}
21818impl XmlTableColumnList {
21819    #[inline]
21820    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
21821        support::children(&self.syntax)
21822    }
21823    #[inline]
21824    pub fn columns_token(&self) -> Option<SyntaxToken> {
21825        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
21826    }
21827}
21828
21829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21830pub enum AlterColumnOption {
21831    AddGenerated(AddGenerated),
21832    DropDefault(DropDefault),
21833    DropExpression(DropExpression),
21834    DropIdentity(DropIdentity),
21835    DropNotNull(DropNotNull),
21836    Inherit(Inherit),
21837    NoInherit(NoInherit),
21838    ResetOptions(ResetOptions),
21839    Restart(Restart),
21840    SetCompression(SetCompression),
21841    SetDefault(SetDefault),
21842    SetExpression(SetExpression),
21843    SetGenerated(SetGenerated),
21844    SetGeneratedOptions(SetGeneratedOptions),
21845    SetNotNull(SetNotNull),
21846    SetOptions(SetOptions),
21847    SetOptionsList(SetOptionsList),
21848    SetSequenceOption(SetSequenceOption),
21849    SetStatistics(SetStatistics),
21850    SetStorage(SetStorage),
21851    SetType(SetType),
21852}
21853
21854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21855pub enum AlterDomainAction {
21856    AddConstraint(AddConstraint),
21857    DropConstraint(DropConstraint),
21858    DropDefault(DropDefault),
21859    DropNotNull(DropNotNull),
21860    OwnerTo(OwnerTo),
21861    RenameConstraint(RenameConstraint),
21862    RenameTo(RenameTo),
21863    SetDefault(SetDefault),
21864    SetNotNull(SetNotNull),
21865    SetSchema(SetSchema),
21866    ValidateConstraint(ValidateConstraint),
21867}
21868
21869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21870pub enum AlterIndexAction {
21871    AlterSetStatistics(AlterSetStatistics),
21872    AttachPartition(AttachPartition),
21873    DependsOnExtension(DependsOnExtension),
21874    NoDependsOnExtension(NoDependsOnExtension),
21875    RenameTo(RenameTo),
21876    ResetOptions(ResetOptions),
21877    SetOptions(SetOptions),
21878    SetTablespace(SetTablespace),
21879}
21880
21881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21882pub enum AlterMaterializedViewAction {
21883    DependsOnExtension(DependsOnExtension),
21884    NoDependsOnExtension(NoDependsOnExtension),
21885    RenameColumn(RenameColumn),
21886    RenameTo(RenameTo),
21887    SetSchema(SetSchema),
21888    AlterTableAction(AlterTableAction),
21889}
21890
21891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21892pub enum AlterPropertyGraphAction {
21893    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
21894    AddVertexEdgeTables(AddVertexEdgeTables),
21895    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
21896    DropEdgeTables(DropEdgeTables),
21897    DropVertexEdgeLabel(DropVertexEdgeLabel),
21898    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
21899    DropVertexTables(DropVertexTables),
21900    OwnerTo(OwnerTo),
21901    RenameTo(RenameTo),
21902    SetSchema(SetSchema),
21903}
21904
21905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21906pub enum AlterTableAction {
21907    AddColumn(AddColumn),
21908    AddConstraint(AddConstraint),
21909    AlterColumn(AlterColumn),
21910    AlterConstraint(AlterConstraint),
21911    AttachPartition(AttachPartition),
21912    ClusterOn(ClusterOn),
21913    DetachPartition(DetachPartition),
21914    DisableRls(DisableRls),
21915    DisableRule(DisableRule),
21916    DisableTrigger(DisableTrigger),
21917    DropColumn(DropColumn),
21918    DropConstraint(DropConstraint),
21919    EnableAlwaysRule(EnableAlwaysRule),
21920    EnableAlwaysTrigger(EnableAlwaysTrigger),
21921    EnableReplicaRule(EnableReplicaRule),
21922    EnableReplicaTrigger(EnableReplicaTrigger),
21923    EnableRls(EnableRls),
21924    EnableRule(EnableRule),
21925    EnableTrigger(EnableTrigger),
21926    ForceRls(ForceRls),
21927    InheritTable(InheritTable),
21928    MergePartitions(MergePartitions),
21929    NoForceRls(NoForceRls),
21930    NoInheritTable(NoInheritTable),
21931    NotOf(NotOf),
21932    OfType(OfType),
21933    OptionItemList(OptionItemList),
21934    OwnerTo(OwnerTo),
21935    RenameColumn(RenameColumn),
21936    RenameConstraint(RenameConstraint),
21937    RenameTo(RenameTo),
21938    ReplicaIdentity(ReplicaIdentity),
21939    ResetOptions(ResetOptions),
21940    SetAccessMethod(SetAccessMethod),
21941    SetLogged(SetLogged),
21942    SetOptions(SetOptions),
21943    SetSchema(SetSchema),
21944    SetTablespace(SetTablespace),
21945    SetUnlogged(SetUnlogged),
21946    SetWithoutCluster(SetWithoutCluster),
21947    SetWithoutOids(SetWithoutOids),
21948    SplitPartition(SplitPartition),
21949    ValidateConstraint(ValidateConstraint),
21950}
21951
21952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21953pub enum AlterTypeAction {
21954    AddAttribute(AddAttribute),
21955    AlterAttribute(AlterAttribute),
21956    DropAttribute(DropAttribute),
21957}
21958
21959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21960pub enum BeginFuncOption {
21961    ReturnFuncOption(ReturnFuncOption),
21962    Stmt(Stmt),
21963}
21964
21965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21966pub enum ColumnConstraint {
21967    CheckConstraint(CheckConstraint),
21968    DefaultConstraint(DefaultConstraint),
21969    ExcludeConstraint(ExcludeConstraint),
21970    GeneratedConstraint(GeneratedConstraint),
21971    NotNullConstraint(NotNullConstraint),
21972    NullConstraint(NullConstraint),
21973    PrimaryKeyConstraint(PrimaryKeyConstraint),
21974    ReferencesConstraint(ReferencesConstraint),
21975    UniqueConstraint(UniqueConstraint),
21976}
21977
21978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21979pub enum ConfigValue {
21980    Literal(Literal),
21981    NameRef(NameRef),
21982}
21983
21984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21985pub enum ConflictAction {
21986    ConflictDoNothing(ConflictDoNothing),
21987    ConflictDoSelect(ConflictDoSelect),
21988    ConflictDoUpdateSet(ConflictDoUpdateSet),
21989}
21990
21991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21992pub enum ConflictTarget {
21993    ConflictOnConstraint(ConflictOnConstraint),
21994    ConflictOnIndex(ConflictOnIndex),
21995}
21996
21997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
21998pub enum Constraint {
21999    CheckConstraint(CheckConstraint),
22000    DefaultConstraint(DefaultConstraint),
22001    ForeignKeyConstraint(ForeignKeyConstraint),
22002    GeneratedConstraint(GeneratedConstraint),
22003    NotNullConstraint(NotNullConstraint),
22004    NullConstraint(NullConstraint),
22005    PrimaryKeyConstraint(PrimaryKeyConstraint),
22006    ReferencesConstraint(ReferencesConstraint),
22007    UniqueConstraint(UniqueConstraint),
22008}
22009
22010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22011pub enum CreateTableAsQuery {
22012    Execute(Execute),
22013    SelectVariant(SelectVariant),
22014}
22015
22016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22017pub enum ElementTableLabelAndProperties {
22018    LabelAndPropertiesList(LabelAndPropertiesList),
22019    ElementTableProperties(ElementTableProperties),
22020}
22021
22022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22023pub enum ElementTableProperties {
22024    AllProperties(AllProperties),
22025    NoProperties(NoProperties),
22026    Properties(Properties),
22027}
22028
22029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22030pub enum ExplainStmt {
22031    CompoundSelect(CompoundSelect),
22032    CreateMaterializedView(CreateMaterializedView),
22033    CreateTableAs(CreateTableAs),
22034    Declare(Declare),
22035    Delete(Delete),
22036    Execute(Execute),
22037    Insert(Insert),
22038    Merge(Merge),
22039    ParenSelect(ParenSelect),
22040    Select(Select),
22041    SelectInto(SelectInto),
22042    Table(Table),
22043    Update(Update),
22044    Values(Values),
22045}
22046
22047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22048pub enum Expr {
22049    ArrayExpr(ArrayExpr),
22050    BetweenExpr(BetweenExpr),
22051    BinExpr(BinExpr),
22052    CallExpr(CallExpr),
22053    CaseExpr(CaseExpr),
22054    CastExpr(CastExpr),
22055    FieldExpr(FieldExpr),
22056    IndexExpr(IndexExpr),
22057    Literal(Literal),
22058    NameRef(NameRef),
22059    ParenExpr(ParenExpr),
22060    PostfixExpr(PostfixExpr),
22061    PrefixExpr(PrefixExpr),
22062    SliceExpr(SliceExpr),
22063    TupleExpr(TupleExpr),
22064}
22065
22066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22067pub enum FrameBound {
22068    CurrentRow(CurrentRow),
22069    ExprFollowing(ExprFollowing),
22070    ExprPreceding(ExprPreceding),
22071    UnboundedFollowing(UnboundedFollowing),
22072    UnboundedPreceding(UnboundedPreceding),
22073}
22074
22075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22076pub enum FuncOption {
22077    AsFuncOption(AsFuncOption),
22078    BeginFuncOptionList(BeginFuncOptionList),
22079    CostFuncOption(CostFuncOption),
22080    LanguageFuncOption(LanguageFuncOption),
22081    LeakproofFuncOption(LeakproofFuncOption),
22082    ParallelFuncOption(ParallelFuncOption),
22083    ResetFuncOption(ResetFuncOption),
22084    ReturnFuncOption(ReturnFuncOption),
22085    RowsFuncOption(RowsFuncOption),
22086    SecurityFuncOption(SecurityFuncOption),
22087    SetFuncOption(SetFuncOption),
22088    StrictFuncOption(StrictFuncOption),
22089    SupportFuncOption(SupportFuncOption),
22090    TransformFuncOption(TransformFuncOption),
22091    VolatilityFuncOption(VolatilityFuncOption),
22092    WindowFuncOption(WindowFuncOption),
22093}
22094
22095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22096pub enum GroupBy {
22097    GroupingCube(GroupingCube),
22098    GroupingExpr(GroupingExpr),
22099    GroupingRollup(GroupingRollup),
22100    GroupingSets(GroupingSets),
22101}
22102
22103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22104pub enum JoinType {
22105    JoinCross(JoinCross),
22106    JoinFull(JoinFull),
22107    JoinInner(JoinInner),
22108    JoinLeft(JoinLeft),
22109    JoinRight(JoinRight),
22110}
22111
22112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22113pub enum JsonBehavior {
22114    JsonBehaviorDefault(JsonBehaviorDefault),
22115    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
22116    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
22117    JsonBehaviorError(JsonBehaviorError),
22118    JsonBehaviorFalse(JsonBehaviorFalse),
22119    JsonBehaviorNull(JsonBehaviorNull),
22120    JsonBehaviorTrue(JsonBehaviorTrue),
22121    JsonBehaviorUnknown(JsonBehaviorUnknown),
22122}
22123
22124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22125pub enum LockMode {
22126    AccessExclusive(AccessExclusive),
22127    AccessShare(AccessShare),
22128    Exclusive(Exclusive),
22129    RowExclusive(RowExclusive),
22130    RowShare(RowShare),
22131    Share(Share),
22132    ShareRowExclusive(ShareRowExclusive),
22133    ShareUpdateExclusive(ShareUpdateExclusive),
22134}
22135
22136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22137pub enum MatchType {
22138    MatchFull(MatchFull),
22139    MatchPartial(MatchPartial),
22140    MatchSimple(MatchSimple),
22141}
22142
22143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22144pub enum MergeAction {
22145    MergeDelete(MergeDelete),
22146    MergeDoNothing(MergeDoNothing),
22147    MergeInsert(MergeInsert),
22148    MergeUpdate(MergeUpdate),
22149}
22150
22151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22152pub enum MergeWhenClause {
22153    MergeWhenMatched(MergeWhenMatched),
22154    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
22155    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
22156}
22157
22158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22159pub enum OnCommitAction {
22160    DeleteRows(DeleteRows),
22161    Drop(Drop),
22162    PreserveRows(PreserveRows),
22163}
22164
22165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22166pub enum ParamMode {
22167    ParamIn(ParamIn),
22168    ParamInOut(ParamInOut),
22169    ParamOut(ParamOut),
22170    ParamVariadic(ParamVariadic),
22171}
22172
22173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22174pub enum PartitionType {
22175    PartitionDefault(PartitionDefault),
22176    PartitionForValuesFrom(PartitionForValuesFrom),
22177    PartitionForValuesIn(PartitionForValuesIn),
22178    PartitionForValuesWith(PartitionForValuesWith),
22179}
22180
22181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22182pub enum PathPrimary {
22183    EdgeAny(EdgeAny),
22184    EdgeLeft(EdgeLeft),
22185    EdgeRight(EdgeRight),
22186    ParenGraphPattern(ParenGraphPattern),
22187    VertexPattern(VertexPattern),
22188}
22189
22190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22191pub enum Persistence {
22192    Temp(Temp),
22193    Unlogged(Unlogged),
22194}
22195
22196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22197pub enum PreparableStmt {
22198    CompoundSelect(CompoundSelect),
22199    Delete(Delete),
22200    Insert(Insert),
22201    Merge(Merge),
22202    Select(Select),
22203    SelectInto(SelectInto),
22204    Table(Table),
22205    Update(Update),
22206    Values(Values),
22207}
22208
22209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22210pub enum RefAction {
22211    Cascade(Cascade),
22212    NoAction(NoAction),
22213    Restrict(Restrict),
22214    SetDefaultColumns(SetDefaultColumns),
22215    SetNullColumns(SetNullColumns),
22216}
22217
22218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22219pub enum RuleAction {
22220    Nothing(Nothing),
22221    RuleStmtList(RuleStmtList),
22222    RuleStmt(RuleStmt),
22223}
22224
22225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22226pub enum RuleStmt {
22227    Delete(Delete),
22228    Insert(Insert),
22229    Notify(Notify),
22230    Update(Update),
22231    SelectVariant(SelectVariant),
22232}
22233
22234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22235pub enum SchemaElement {
22236    CreateIndex(CreateIndex),
22237    CreateSequence(CreateSequence),
22238    CreateTable(CreateTable),
22239    CreateTrigger(CreateTrigger),
22240    CreateView(CreateView),
22241    Grant(Grant),
22242}
22243
22244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22245pub enum SelectVariant {
22246    CompoundSelect(CompoundSelect),
22247    ParenSelect(ParenSelect),
22248    Select(Select),
22249    SelectInto(SelectInto),
22250    Table(Table),
22251    Values(Values),
22252}
22253
22254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22255pub enum SetColumn {
22256    SetMultipleColumns(SetMultipleColumns),
22257    SetSingleColumn(SetSingleColumn),
22258}
22259
22260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22261pub enum Stmt {
22262    AlterAggregate(AlterAggregate),
22263    AlterCollation(AlterCollation),
22264    AlterConversion(AlterConversion),
22265    AlterDatabase(AlterDatabase),
22266    AlterDefaultPrivileges(AlterDefaultPrivileges),
22267    AlterDomain(AlterDomain),
22268    AlterEventTrigger(AlterEventTrigger),
22269    AlterExtension(AlterExtension),
22270    AlterForeignDataWrapper(AlterForeignDataWrapper),
22271    AlterForeignTable(AlterForeignTable),
22272    AlterFunction(AlterFunction),
22273    AlterGroup(AlterGroup),
22274    AlterIndex(AlterIndex),
22275    AlterLanguage(AlterLanguage),
22276    AlterLargeObject(AlterLargeObject),
22277    AlterMaterializedView(AlterMaterializedView),
22278    AlterOperator(AlterOperator),
22279    AlterOperatorClass(AlterOperatorClass),
22280    AlterOperatorFamily(AlterOperatorFamily),
22281    AlterPolicy(AlterPolicy),
22282    AlterProcedure(AlterProcedure),
22283    AlterPropertyGraph(AlterPropertyGraph),
22284    AlterPublication(AlterPublication),
22285    AlterRole(AlterRole),
22286    AlterRoutine(AlterRoutine),
22287    AlterRule(AlterRule),
22288    AlterSchema(AlterSchema),
22289    AlterSequence(AlterSequence),
22290    AlterServer(AlterServer),
22291    AlterStatistics(AlterStatistics),
22292    AlterSubscription(AlterSubscription),
22293    AlterSystem(AlterSystem),
22294    AlterTable(AlterTable),
22295    AlterTablespace(AlterTablespace),
22296    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
22297    AlterTextSearchDictionary(AlterTextSearchDictionary),
22298    AlterTextSearchParser(AlterTextSearchParser),
22299    AlterTextSearchTemplate(AlterTextSearchTemplate),
22300    AlterTrigger(AlterTrigger),
22301    AlterType(AlterType),
22302    AlterUser(AlterUser),
22303    AlterUserMapping(AlterUserMapping),
22304    AlterView(AlterView),
22305    Analyze(Analyze),
22306    Begin(Begin),
22307    Call(Call),
22308    Checkpoint(Checkpoint),
22309    Close(Close),
22310    Cluster(Cluster),
22311    CommentOn(CommentOn),
22312    Commit(Commit),
22313    Copy(Copy),
22314    CreateAccessMethod(CreateAccessMethod),
22315    CreateAggregate(CreateAggregate),
22316    CreateCast(CreateCast),
22317    CreateCollation(CreateCollation),
22318    CreateConversion(CreateConversion),
22319    CreateDatabase(CreateDatabase),
22320    CreateDomain(CreateDomain),
22321    CreateEventTrigger(CreateEventTrigger),
22322    CreateExtension(CreateExtension),
22323    CreateForeignDataWrapper(CreateForeignDataWrapper),
22324    CreateForeignTable(CreateForeignTable),
22325    CreateFunction(CreateFunction),
22326    CreateGroup(CreateGroup),
22327    CreateIndex(CreateIndex),
22328    CreateLanguage(CreateLanguage),
22329    CreateMaterializedView(CreateMaterializedView),
22330    CreateOperator(CreateOperator),
22331    CreateOperatorClass(CreateOperatorClass),
22332    CreateOperatorFamily(CreateOperatorFamily),
22333    CreatePolicy(CreatePolicy),
22334    CreateProcedure(CreateProcedure),
22335    CreatePropertyGraph(CreatePropertyGraph),
22336    CreatePublication(CreatePublication),
22337    CreateRole(CreateRole),
22338    CreateRule(CreateRule),
22339    CreateSchema(CreateSchema),
22340    CreateSequence(CreateSequence),
22341    CreateServer(CreateServer),
22342    CreateStatistics(CreateStatistics),
22343    CreateSubscription(CreateSubscription),
22344    CreateTable(CreateTable),
22345    CreateTableAs(CreateTableAs),
22346    CreateTablespace(CreateTablespace),
22347    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
22348    CreateTextSearchDictionary(CreateTextSearchDictionary),
22349    CreateTextSearchParser(CreateTextSearchParser),
22350    CreateTextSearchTemplate(CreateTextSearchTemplate),
22351    CreateTransform(CreateTransform),
22352    CreateTrigger(CreateTrigger),
22353    CreateType(CreateType),
22354    CreateUser(CreateUser),
22355    CreateUserMapping(CreateUserMapping),
22356    CreateView(CreateView),
22357    Deallocate(Deallocate),
22358    Declare(Declare),
22359    Delete(Delete),
22360    Discard(Discard),
22361    Do(Do),
22362    DropAccessMethod(DropAccessMethod),
22363    DropAggregate(DropAggregate),
22364    DropCast(DropCast),
22365    DropCollation(DropCollation),
22366    DropConversion(DropConversion),
22367    DropDatabase(DropDatabase),
22368    DropDomain(DropDomain),
22369    DropEventTrigger(DropEventTrigger),
22370    DropExtension(DropExtension),
22371    DropForeignDataWrapper(DropForeignDataWrapper),
22372    DropForeignTable(DropForeignTable),
22373    DropFunction(DropFunction),
22374    DropGroup(DropGroup),
22375    DropIndex(DropIndex),
22376    DropLanguage(DropLanguage),
22377    DropMaterializedView(DropMaterializedView),
22378    DropOperator(DropOperator),
22379    DropOperatorClass(DropOperatorClass),
22380    DropOperatorFamily(DropOperatorFamily),
22381    DropOwned(DropOwned),
22382    DropPolicy(DropPolicy),
22383    DropProcedure(DropProcedure),
22384    DropPropertyGraph(DropPropertyGraph),
22385    DropPublication(DropPublication),
22386    DropRole(DropRole),
22387    DropRoutine(DropRoutine),
22388    DropRule(DropRule),
22389    DropSchema(DropSchema),
22390    DropSequence(DropSequence),
22391    DropServer(DropServer),
22392    DropStatistics(DropStatistics),
22393    DropSubscription(DropSubscription),
22394    DropTable(DropTable),
22395    DropTablespace(DropTablespace),
22396    DropTextSearchConfig(DropTextSearchConfig),
22397    DropTextSearchDict(DropTextSearchDict),
22398    DropTextSearchParser(DropTextSearchParser),
22399    DropTextSearchTemplate(DropTextSearchTemplate),
22400    DropTransform(DropTransform),
22401    DropTrigger(DropTrigger),
22402    DropType(DropType),
22403    DropUser(DropUser),
22404    DropUserMapping(DropUserMapping),
22405    DropView(DropView),
22406    EmptyStmt(EmptyStmt),
22407    Execute(Execute),
22408    Explain(Explain),
22409    Fetch(Fetch),
22410    Grant(Grant),
22411    ImportForeignSchema(ImportForeignSchema),
22412    Insert(Insert),
22413    Listen(Listen),
22414    Load(Load),
22415    Lock(Lock),
22416    Merge(Merge),
22417    Move(Move),
22418    Notify(Notify),
22419    ParenSelect(ParenSelect),
22420    Prepare(Prepare),
22421    PrepareTransaction(PrepareTransaction),
22422    Reassign(Reassign),
22423    Refresh(Refresh),
22424    Reindex(Reindex),
22425    ReleaseSavepoint(ReleaseSavepoint),
22426    Repack(Repack),
22427    Reset(Reset),
22428    ResetSessionAuth(ResetSessionAuth),
22429    Revoke(Revoke),
22430    Rollback(Rollback),
22431    Savepoint(Savepoint),
22432    SecurityLabel(SecurityLabel),
22433    Select(Select),
22434    SelectInto(SelectInto),
22435    Set(Set),
22436    SetConstraints(SetConstraints),
22437    SetRole(SetRole),
22438    SetSessionAuth(SetSessionAuth),
22439    SetTransaction(SetTransaction),
22440    Show(Show),
22441    Table(Table),
22442    Truncate(Truncate),
22443    Unlisten(Unlisten),
22444    Update(Update),
22445    Vacuum(Vacuum),
22446    Values(Values),
22447}
22448
22449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22450pub enum TableArg {
22451    Column(Column),
22452    LikeClause(LikeClause),
22453    TableConstraint(TableConstraint),
22454}
22455
22456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22457pub enum TableConstraint {
22458    CheckConstraint(CheckConstraint),
22459    ExcludeConstraint(ExcludeConstraint),
22460    ForeignKeyConstraint(ForeignKeyConstraint),
22461    PrimaryKeyConstraint(PrimaryKeyConstraint),
22462    UniqueConstraint(UniqueConstraint),
22463}
22464
22465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22466pub enum Timezone {
22467    WithTimezone(WithTimezone),
22468    WithoutTimezone(WithoutTimezone),
22469}
22470
22471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22472pub enum TransactionMode {
22473    Deferrable(Deferrable),
22474    NotDeferrable(NotDeferrable),
22475    ReadCommitted(ReadCommitted),
22476    ReadOnly(ReadOnly),
22477    ReadUncommitted(ReadUncommitted),
22478    ReadWrite(ReadWrite),
22479    RepeatableRead(RepeatableRead),
22480    Serializable(Serializable),
22481}
22482
22483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22484pub enum Type {
22485    ArrayType(ArrayType),
22486    BitType(BitType),
22487    CharType(CharType),
22488    DoubleType(DoubleType),
22489    ExprType(ExprType),
22490    IntervalType(IntervalType),
22491    PathType(PathType),
22492    PercentType(PercentType),
22493    TimeType(TimeType),
22494}
22495
22496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22497pub enum ValuePosition {
22498    AfterValue(AfterValue),
22499    BeforeValue(BeforeValue),
22500}
22501
22502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
22503pub enum WithQuery {
22504    CompoundSelect(CompoundSelect),
22505    Delete(Delete),
22506    Insert(Insert),
22507    Merge(Merge),
22508    ParenSelect(ParenSelect),
22509    Select(Select),
22510    Table(Table),
22511    Update(Update),
22512    Values(Values),
22513}
22514impl AstNode for Absolute {
22515    #[inline]
22516    fn can_cast(kind: SyntaxKind) -> bool {
22517        kind == SyntaxKind::ABSOLUTE
22518    }
22519    #[inline]
22520    fn cast(syntax: SyntaxNode) -> Option<Self> {
22521        if Self::can_cast(syntax.kind()) {
22522            Some(Self { syntax })
22523        } else {
22524            None
22525        }
22526    }
22527    #[inline]
22528    fn syntax(&self) -> &SyntaxNode {
22529        &self.syntax
22530    }
22531}
22532impl AstNode for AccessExclusive {
22533    #[inline]
22534    fn can_cast(kind: SyntaxKind) -> bool {
22535        kind == SyntaxKind::ACCESS_EXCLUSIVE
22536    }
22537    #[inline]
22538    fn cast(syntax: SyntaxNode) -> Option<Self> {
22539        if Self::can_cast(syntax.kind()) {
22540            Some(Self { syntax })
22541        } else {
22542            None
22543        }
22544    }
22545    #[inline]
22546    fn syntax(&self) -> &SyntaxNode {
22547        &self.syntax
22548    }
22549}
22550impl AstNode for AccessShare {
22551    #[inline]
22552    fn can_cast(kind: SyntaxKind) -> bool {
22553        kind == SyntaxKind::ACCESS_SHARE
22554    }
22555    #[inline]
22556    fn cast(syntax: SyntaxNode) -> Option<Self> {
22557        if Self::can_cast(syntax.kind()) {
22558            Some(Self { syntax })
22559        } else {
22560            None
22561        }
22562    }
22563    #[inline]
22564    fn syntax(&self) -> &SyntaxNode {
22565        &self.syntax
22566    }
22567}
22568impl AstNode for AddAttribute {
22569    #[inline]
22570    fn can_cast(kind: SyntaxKind) -> bool {
22571        kind == SyntaxKind::ADD_ATTRIBUTE
22572    }
22573    #[inline]
22574    fn cast(syntax: SyntaxNode) -> Option<Self> {
22575        if Self::can_cast(syntax.kind()) {
22576            Some(Self { syntax })
22577        } else {
22578            None
22579        }
22580    }
22581    #[inline]
22582    fn syntax(&self) -> &SyntaxNode {
22583        &self.syntax
22584    }
22585}
22586impl AstNode for AddColumn {
22587    #[inline]
22588    fn can_cast(kind: SyntaxKind) -> bool {
22589        kind == SyntaxKind::ADD_COLUMN
22590    }
22591    #[inline]
22592    fn cast(syntax: SyntaxNode) -> Option<Self> {
22593        if Self::can_cast(syntax.kind()) {
22594            Some(Self { syntax })
22595        } else {
22596            None
22597        }
22598    }
22599    #[inline]
22600    fn syntax(&self) -> &SyntaxNode {
22601        &self.syntax
22602    }
22603}
22604impl AstNode for AddConstraint {
22605    #[inline]
22606    fn can_cast(kind: SyntaxKind) -> bool {
22607        kind == SyntaxKind::ADD_CONSTRAINT
22608    }
22609    #[inline]
22610    fn cast(syntax: SyntaxNode) -> Option<Self> {
22611        if Self::can_cast(syntax.kind()) {
22612            Some(Self { syntax })
22613        } else {
22614            None
22615        }
22616    }
22617    #[inline]
22618    fn syntax(&self) -> &SyntaxNode {
22619        &self.syntax
22620    }
22621}
22622impl AstNode for AddGenerated {
22623    #[inline]
22624    fn can_cast(kind: SyntaxKind) -> bool {
22625        kind == SyntaxKind::ADD_GENERATED
22626    }
22627    #[inline]
22628    fn cast(syntax: SyntaxNode) -> Option<Self> {
22629        if Self::can_cast(syntax.kind()) {
22630            Some(Self { syntax })
22631        } else {
22632            None
22633        }
22634    }
22635    #[inline]
22636    fn syntax(&self) -> &SyntaxNode {
22637        &self.syntax
22638    }
22639}
22640impl AstNode for AddLabel {
22641    #[inline]
22642    fn can_cast(kind: SyntaxKind) -> bool {
22643        kind == SyntaxKind::ADD_LABEL
22644    }
22645    #[inline]
22646    fn cast(syntax: SyntaxNode) -> Option<Self> {
22647        if Self::can_cast(syntax.kind()) {
22648            Some(Self { syntax })
22649        } else {
22650            None
22651        }
22652    }
22653    #[inline]
22654    fn syntax(&self) -> &SyntaxNode {
22655        &self.syntax
22656    }
22657}
22658impl AstNode for AddOpClassOptions {
22659    #[inline]
22660    fn can_cast(kind: SyntaxKind) -> bool {
22661        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
22662    }
22663    #[inline]
22664    fn cast(syntax: SyntaxNode) -> Option<Self> {
22665        if Self::can_cast(syntax.kind()) {
22666            Some(Self { syntax })
22667        } else {
22668            None
22669        }
22670    }
22671    #[inline]
22672    fn syntax(&self) -> &SyntaxNode {
22673        &self.syntax
22674    }
22675}
22676impl AstNode for AddValue {
22677    #[inline]
22678    fn can_cast(kind: SyntaxKind) -> bool {
22679        kind == SyntaxKind::ADD_VALUE
22680    }
22681    #[inline]
22682    fn cast(syntax: SyntaxNode) -> Option<Self> {
22683        if Self::can_cast(syntax.kind()) {
22684            Some(Self { syntax })
22685        } else {
22686            None
22687        }
22688    }
22689    #[inline]
22690    fn syntax(&self) -> &SyntaxNode {
22691        &self.syntax
22692    }
22693}
22694impl AstNode for AddVertexEdgeLabelProperties {
22695    #[inline]
22696    fn can_cast(kind: SyntaxKind) -> bool {
22697        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
22698    }
22699    #[inline]
22700    fn cast(syntax: SyntaxNode) -> Option<Self> {
22701        if Self::can_cast(syntax.kind()) {
22702            Some(Self { syntax })
22703        } else {
22704            None
22705        }
22706    }
22707    #[inline]
22708    fn syntax(&self) -> &SyntaxNode {
22709        &self.syntax
22710    }
22711}
22712impl AstNode for AddVertexEdgeTables {
22713    #[inline]
22714    fn can_cast(kind: SyntaxKind) -> bool {
22715        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
22716    }
22717    #[inline]
22718    fn cast(syntax: SyntaxNode) -> Option<Self> {
22719        if Self::can_cast(syntax.kind()) {
22720            Some(Self { syntax })
22721        } else {
22722            None
22723        }
22724    }
22725    #[inline]
22726    fn syntax(&self) -> &SyntaxNode {
22727        &self.syntax
22728    }
22729}
22730impl AstNode for AfterValue {
22731    #[inline]
22732    fn can_cast(kind: SyntaxKind) -> bool {
22733        kind == SyntaxKind::AFTER_VALUE
22734    }
22735    #[inline]
22736    fn cast(syntax: SyntaxNode) -> Option<Self> {
22737        if Self::can_cast(syntax.kind()) {
22738            Some(Self { syntax })
22739        } else {
22740            None
22741        }
22742    }
22743    #[inline]
22744    fn syntax(&self) -> &SyntaxNode {
22745        &self.syntax
22746    }
22747}
22748impl AstNode for Aggregate {
22749    #[inline]
22750    fn can_cast(kind: SyntaxKind) -> bool {
22751        kind == SyntaxKind::AGGREGATE
22752    }
22753    #[inline]
22754    fn cast(syntax: SyntaxNode) -> Option<Self> {
22755        if Self::can_cast(syntax.kind()) {
22756            Some(Self { syntax })
22757        } else {
22758            None
22759        }
22760    }
22761    #[inline]
22762    fn syntax(&self) -> &SyntaxNode {
22763        &self.syntax
22764    }
22765}
22766impl AstNode for Alias {
22767    #[inline]
22768    fn can_cast(kind: SyntaxKind) -> bool {
22769        kind == SyntaxKind::ALIAS
22770    }
22771    #[inline]
22772    fn cast(syntax: SyntaxNode) -> Option<Self> {
22773        if Self::can_cast(syntax.kind()) {
22774            Some(Self { syntax })
22775        } else {
22776            None
22777        }
22778    }
22779    #[inline]
22780    fn syntax(&self) -> &SyntaxNode {
22781        &self.syntax
22782    }
22783}
22784impl AstNode for All {
22785    #[inline]
22786    fn can_cast(kind: SyntaxKind) -> bool {
22787        kind == SyntaxKind::ALL
22788    }
22789    #[inline]
22790    fn cast(syntax: SyntaxNode) -> Option<Self> {
22791        if Self::can_cast(syntax.kind()) {
22792            Some(Self { syntax })
22793        } else {
22794            None
22795        }
22796    }
22797    #[inline]
22798    fn syntax(&self) -> &SyntaxNode {
22799        &self.syntax
22800    }
22801}
22802impl AstNode for AllFn {
22803    #[inline]
22804    fn can_cast(kind: SyntaxKind) -> bool {
22805        kind == SyntaxKind::ALL_FN
22806    }
22807    #[inline]
22808    fn cast(syntax: SyntaxNode) -> Option<Self> {
22809        if Self::can_cast(syntax.kind()) {
22810            Some(Self { syntax })
22811        } else {
22812            None
22813        }
22814    }
22815    #[inline]
22816    fn syntax(&self) -> &SyntaxNode {
22817        &self.syntax
22818    }
22819}
22820impl AstNode for AllProperties {
22821    #[inline]
22822    fn can_cast(kind: SyntaxKind) -> bool {
22823        kind == SyntaxKind::ALL_PROPERTIES
22824    }
22825    #[inline]
22826    fn cast(syntax: SyntaxNode) -> Option<Self> {
22827        if Self::can_cast(syntax.kind()) {
22828            Some(Self { syntax })
22829        } else {
22830            None
22831        }
22832    }
22833    #[inline]
22834    fn syntax(&self) -> &SyntaxNode {
22835        &self.syntax
22836    }
22837}
22838impl AstNode for AlterAggregate {
22839    #[inline]
22840    fn can_cast(kind: SyntaxKind) -> bool {
22841        kind == SyntaxKind::ALTER_AGGREGATE
22842    }
22843    #[inline]
22844    fn cast(syntax: SyntaxNode) -> Option<Self> {
22845        if Self::can_cast(syntax.kind()) {
22846            Some(Self { syntax })
22847        } else {
22848            None
22849        }
22850    }
22851    #[inline]
22852    fn syntax(&self) -> &SyntaxNode {
22853        &self.syntax
22854    }
22855}
22856impl AstNode for AlterAttribute {
22857    #[inline]
22858    fn can_cast(kind: SyntaxKind) -> bool {
22859        kind == SyntaxKind::ALTER_ATTRIBUTE
22860    }
22861    #[inline]
22862    fn cast(syntax: SyntaxNode) -> Option<Self> {
22863        if Self::can_cast(syntax.kind()) {
22864            Some(Self { syntax })
22865        } else {
22866            None
22867        }
22868    }
22869    #[inline]
22870    fn syntax(&self) -> &SyntaxNode {
22871        &self.syntax
22872    }
22873}
22874impl AstNode for AlterCollation {
22875    #[inline]
22876    fn can_cast(kind: SyntaxKind) -> bool {
22877        kind == SyntaxKind::ALTER_COLLATION
22878    }
22879    #[inline]
22880    fn cast(syntax: SyntaxNode) -> Option<Self> {
22881        if Self::can_cast(syntax.kind()) {
22882            Some(Self { syntax })
22883        } else {
22884            None
22885        }
22886    }
22887    #[inline]
22888    fn syntax(&self) -> &SyntaxNode {
22889        &self.syntax
22890    }
22891}
22892impl AstNode for AlterColumn {
22893    #[inline]
22894    fn can_cast(kind: SyntaxKind) -> bool {
22895        kind == SyntaxKind::ALTER_COLUMN
22896    }
22897    #[inline]
22898    fn cast(syntax: SyntaxNode) -> Option<Self> {
22899        if Self::can_cast(syntax.kind()) {
22900            Some(Self { syntax })
22901        } else {
22902            None
22903        }
22904    }
22905    #[inline]
22906    fn syntax(&self) -> &SyntaxNode {
22907        &self.syntax
22908    }
22909}
22910impl AstNode for AlterConstraint {
22911    #[inline]
22912    fn can_cast(kind: SyntaxKind) -> bool {
22913        kind == SyntaxKind::ALTER_CONSTRAINT
22914    }
22915    #[inline]
22916    fn cast(syntax: SyntaxNode) -> Option<Self> {
22917        if Self::can_cast(syntax.kind()) {
22918            Some(Self { syntax })
22919        } else {
22920            None
22921        }
22922    }
22923    #[inline]
22924    fn syntax(&self) -> &SyntaxNode {
22925        &self.syntax
22926    }
22927}
22928impl AstNode for AlterConversion {
22929    #[inline]
22930    fn can_cast(kind: SyntaxKind) -> bool {
22931        kind == SyntaxKind::ALTER_CONVERSION
22932    }
22933    #[inline]
22934    fn cast(syntax: SyntaxNode) -> Option<Self> {
22935        if Self::can_cast(syntax.kind()) {
22936            Some(Self { syntax })
22937        } else {
22938            None
22939        }
22940    }
22941    #[inline]
22942    fn syntax(&self) -> &SyntaxNode {
22943        &self.syntax
22944    }
22945}
22946impl AstNode for AlterDatabase {
22947    #[inline]
22948    fn can_cast(kind: SyntaxKind) -> bool {
22949        kind == SyntaxKind::ALTER_DATABASE
22950    }
22951    #[inline]
22952    fn cast(syntax: SyntaxNode) -> Option<Self> {
22953        if Self::can_cast(syntax.kind()) {
22954            Some(Self { syntax })
22955        } else {
22956            None
22957        }
22958    }
22959    #[inline]
22960    fn syntax(&self) -> &SyntaxNode {
22961        &self.syntax
22962    }
22963}
22964impl AstNode for AlterDefaultPrivileges {
22965    #[inline]
22966    fn can_cast(kind: SyntaxKind) -> bool {
22967        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
22968    }
22969    #[inline]
22970    fn cast(syntax: SyntaxNode) -> Option<Self> {
22971        if Self::can_cast(syntax.kind()) {
22972            Some(Self { syntax })
22973        } else {
22974            None
22975        }
22976    }
22977    #[inline]
22978    fn syntax(&self) -> &SyntaxNode {
22979        &self.syntax
22980    }
22981}
22982impl AstNode for AlterDomain {
22983    #[inline]
22984    fn can_cast(kind: SyntaxKind) -> bool {
22985        kind == SyntaxKind::ALTER_DOMAIN
22986    }
22987    #[inline]
22988    fn cast(syntax: SyntaxNode) -> Option<Self> {
22989        if Self::can_cast(syntax.kind()) {
22990            Some(Self { syntax })
22991        } else {
22992            None
22993        }
22994    }
22995    #[inline]
22996    fn syntax(&self) -> &SyntaxNode {
22997        &self.syntax
22998    }
22999}
23000impl AstNode for AlterEventTrigger {
23001    #[inline]
23002    fn can_cast(kind: SyntaxKind) -> bool {
23003        kind == SyntaxKind::ALTER_EVENT_TRIGGER
23004    }
23005    #[inline]
23006    fn cast(syntax: SyntaxNode) -> Option<Self> {
23007        if Self::can_cast(syntax.kind()) {
23008            Some(Self { syntax })
23009        } else {
23010            None
23011        }
23012    }
23013    #[inline]
23014    fn syntax(&self) -> &SyntaxNode {
23015        &self.syntax
23016    }
23017}
23018impl AstNode for AlterExtension {
23019    #[inline]
23020    fn can_cast(kind: SyntaxKind) -> bool {
23021        kind == SyntaxKind::ALTER_EXTENSION
23022    }
23023    #[inline]
23024    fn cast(syntax: SyntaxNode) -> Option<Self> {
23025        if Self::can_cast(syntax.kind()) {
23026            Some(Self { syntax })
23027        } else {
23028            None
23029        }
23030    }
23031    #[inline]
23032    fn syntax(&self) -> &SyntaxNode {
23033        &self.syntax
23034    }
23035}
23036impl AstNode for AlterForeignDataWrapper {
23037    #[inline]
23038    fn can_cast(kind: SyntaxKind) -> bool {
23039        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
23040    }
23041    #[inline]
23042    fn cast(syntax: SyntaxNode) -> Option<Self> {
23043        if Self::can_cast(syntax.kind()) {
23044            Some(Self { syntax })
23045        } else {
23046            None
23047        }
23048    }
23049    #[inline]
23050    fn syntax(&self) -> &SyntaxNode {
23051        &self.syntax
23052    }
23053}
23054impl AstNode for AlterForeignTable {
23055    #[inline]
23056    fn can_cast(kind: SyntaxKind) -> bool {
23057        kind == SyntaxKind::ALTER_FOREIGN_TABLE
23058    }
23059    #[inline]
23060    fn cast(syntax: SyntaxNode) -> Option<Self> {
23061        if Self::can_cast(syntax.kind()) {
23062            Some(Self { syntax })
23063        } else {
23064            None
23065        }
23066    }
23067    #[inline]
23068    fn syntax(&self) -> &SyntaxNode {
23069        &self.syntax
23070    }
23071}
23072impl AstNode for AlterFunction {
23073    #[inline]
23074    fn can_cast(kind: SyntaxKind) -> bool {
23075        kind == SyntaxKind::ALTER_FUNCTION
23076    }
23077    #[inline]
23078    fn cast(syntax: SyntaxNode) -> Option<Self> {
23079        if Self::can_cast(syntax.kind()) {
23080            Some(Self { syntax })
23081        } else {
23082            None
23083        }
23084    }
23085    #[inline]
23086    fn syntax(&self) -> &SyntaxNode {
23087        &self.syntax
23088    }
23089}
23090impl AstNode for AlterGroup {
23091    #[inline]
23092    fn can_cast(kind: SyntaxKind) -> bool {
23093        kind == SyntaxKind::ALTER_GROUP
23094    }
23095    #[inline]
23096    fn cast(syntax: SyntaxNode) -> Option<Self> {
23097        if Self::can_cast(syntax.kind()) {
23098            Some(Self { syntax })
23099        } else {
23100            None
23101        }
23102    }
23103    #[inline]
23104    fn syntax(&self) -> &SyntaxNode {
23105        &self.syntax
23106    }
23107}
23108impl AstNode for AlterIndex {
23109    #[inline]
23110    fn can_cast(kind: SyntaxKind) -> bool {
23111        kind == SyntaxKind::ALTER_INDEX
23112    }
23113    #[inline]
23114    fn cast(syntax: SyntaxNode) -> Option<Self> {
23115        if Self::can_cast(syntax.kind()) {
23116            Some(Self { syntax })
23117        } else {
23118            None
23119        }
23120    }
23121    #[inline]
23122    fn syntax(&self) -> &SyntaxNode {
23123        &self.syntax
23124    }
23125}
23126impl AstNode for AlterLanguage {
23127    #[inline]
23128    fn can_cast(kind: SyntaxKind) -> bool {
23129        kind == SyntaxKind::ALTER_LANGUAGE
23130    }
23131    #[inline]
23132    fn cast(syntax: SyntaxNode) -> Option<Self> {
23133        if Self::can_cast(syntax.kind()) {
23134            Some(Self { syntax })
23135        } else {
23136            None
23137        }
23138    }
23139    #[inline]
23140    fn syntax(&self) -> &SyntaxNode {
23141        &self.syntax
23142    }
23143}
23144impl AstNode for AlterLargeObject {
23145    #[inline]
23146    fn can_cast(kind: SyntaxKind) -> bool {
23147        kind == SyntaxKind::ALTER_LARGE_OBJECT
23148    }
23149    #[inline]
23150    fn cast(syntax: SyntaxNode) -> Option<Self> {
23151        if Self::can_cast(syntax.kind()) {
23152            Some(Self { syntax })
23153        } else {
23154            None
23155        }
23156    }
23157    #[inline]
23158    fn syntax(&self) -> &SyntaxNode {
23159        &self.syntax
23160    }
23161}
23162impl AstNode for AlterMaterializedView {
23163    #[inline]
23164    fn can_cast(kind: SyntaxKind) -> bool {
23165        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
23166    }
23167    #[inline]
23168    fn cast(syntax: SyntaxNode) -> Option<Self> {
23169        if Self::can_cast(syntax.kind()) {
23170            Some(Self { syntax })
23171        } else {
23172            None
23173        }
23174    }
23175    #[inline]
23176    fn syntax(&self) -> &SyntaxNode {
23177        &self.syntax
23178    }
23179}
23180impl AstNode for AlterOperator {
23181    #[inline]
23182    fn can_cast(kind: SyntaxKind) -> bool {
23183        kind == SyntaxKind::ALTER_OPERATOR
23184    }
23185    #[inline]
23186    fn cast(syntax: SyntaxNode) -> Option<Self> {
23187        if Self::can_cast(syntax.kind()) {
23188            Some(Self { syntax })
23189        } else {
23190            None
23191        }
23192    }
23193    #[inline]
23194    fn syntax(&self) -> &SyntaxNode {
23195        &self.syntax
23196    }
23197}
23198impl AstNode for AlterOperatorClass {
23199    #[inline]
23200    fn can_cast(kind: SyntaxKind) -> bool {
23201        kind == SyntaxKind::ALTER_OPERATOR_CLASS
23202    }
23203    #[inline]
23204    fn cast(syntax: SyntaxNode) -> Option<Self> {
23205        if Self::can_cast(syntax.kind()) {
23206            Some(Self { syntax })
23207        } else {
23208            None
23209        }
23210    }
23211    #[inline]
23212    fn syntax(&self) -> &SyntaxNode {
23213        &self.syntax
23214    }
23215}
23216impl AstNode for AlterOperatorFamily {
23217    #[inline]
23218    fn can_cast(kind: SyntaxKind) -> bool {
23219        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
23220    }
23221    #[inline]
23222    fn cast(syntax: SyntaxNode) -> Option<Self> {
23223        if Self::can_cast(syntax.kind()) {
23224            Some(Self { syntax })
23225        } else {
23226            None
23227        }
23228    }
23229    #[inline]
23230    fn syntax(&self) -> &SyntaxNode {
23231        &self.syntax
23232    }
23233}
23234impl AstNode for AlterOption {
23235    #[inline]
23236    fn can_cast(kind: SyntaxKind) -> bool {
23237        kind == SyntaxKind::ALTER_OPTION
23238    }
23239    #[inline]
23240    fn cast(syntax: SyntaxNode) -> Option<Self> {
23241        if Self::can_cast(syntax.kind()) {
23242            Some(Self { syntax })
23243        } else {
23244            None
23245        }
23246    }
23247    #[inline]
23248    fn syntax(&self) -> &SyntaxNode {
23249        &self.syntax
23250    }
23251}
23252impl AstNode for AlterOptionList {
23253    #[inline]
23254    fn can_cast(kind: SyntaxKind) -> bool {
23255        kind == SyntaxKind::ALTER_OPTION_LIST
23256    }
23257    #[inline]
23258    fn cast(syntax: SyntaxNode) -> Option<Self> {
23259        if Self::can_cast(syntax.kind()) {
23260            Some(Self { syntax })
23261        } else {
23262            None
23263        }
23264    }
23265    #[inline]
23266    fn syntax(&self) -> &SyntaxNode {
23267        &self.syntax
23268    }
23269}
23270impl AstNode for AlterPolicy {
23271    #[inline]
23272    fn can_cast(kind: SyntaxKind) -> bool {
23273        kind == SyntaxKind::ALTER_POLICY
23274    }
23275    #[inline]
23276    fn cast(syntax: SyntaxNode) -> Option<Self> {
23277        if Self::can_cast(syntax.kind()) {
23278            Some(Self { syntax })
23279        } else {
23280            None
23281        }
23282    }
23283    #[inline]
23284    fn syntax(&self) -> &SyntaxNode {
23285        &self.syntax
23286    }
23287}
23288impl AstNode for AlterProcedure {
23289    #[inline]
23290    fn can_cast(kind: SyntaxKind) -> bool {
23291        kind == SyntaxKind::ALTER_PROCEDURE
23292    }
23293    #[inline]
23294    fn cast(syntax: SyntaxNode) -> Option<Self> {
23295        if Self::can_cast(syntax.kind()) {
23296            Some(Self { syntax })
23297        } else {
23298            None
23299        }
23300    }
23301    #[inline]
23302    fn syntax(&self) -> &SyntaxNode {
23303        &self.syntax
23304    }
23305}
23306impl AstNode for AlterPropertyGraph {
23307    #[inline]
23308    fn can_cast(kind: SyntaxKind) -> bool {
23309        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
23310    }
23311    #[inline]
23312    fn cast(syntax: SyntaxNode) -> Option<Self> {
23313        if Self::can_cast(syntax.kind()) {
23314            Some(Self { syntax })
23315        } else {
23316            None
23317        }
23318    }
23319    #[inline]
23320    fn syntax(&self) -> &SyntaxNode {
23321        &self.syntax
23322    }
23323}
23324impl AstNode for AlterPublication {
23325    #[inline]
23326    fn can_cast(kind: SyntaxKind) -> bool {
23327        kind == SyntaxKind::ALTER_PUBLICATION
23328    }
23329    #[inline]
23330    fn cast(syntax: SyntaxNode) -> Option<Self> {
23331        if Self::can_cast(syntax.kind()) {
23332            Some(Self { syntax })
23333        } else {
23334            None
23335        }
23336    }
23337    #[inline]
23338    fn syntax(&self) -> &SyntaxNode {
23339        &self.syntax
23340    }
23341}
23342impl AstNode for AlterRole {
23343    #[inline]
23344    fn can_cast(kind: SyntaxKind) -> bool {
23345        kind == SyntaxKind::ALTER_ROLE
23346    }
23347    #[inline]
23348    fn cast(syntax: SyntaxNode) -> Option<Self> {
23349        if Self::can_cast(syntax.kind()) {
23350            Some(Self { syntax })
23351        } else {
23352            None
23353        }
23354    }
23355    #[inline]
23356    fn syntax(&self) -> &SyntaxNode {
23357        &self.syntax
23358    }
23359}
23360impl AstNode for AlterRoutine {
23361    #[inline]
23362    fn can_cast(kind: SyntaxKind) -> bool {
23363        kind == SyntaxKind::ALTER_ROUTINE
23364    }
23365    #[inline]
23366    fn cast(syntax: SyntaxNode) -> Option<Self> {
23367        if Self::can_cast(syntax.kind()) {
23368            Some(Self { syntax })
23369        } else {
23370            None
23371        }
23372    }
23373    #[inline]
23374    fn syntax(&self) -> &SyntaxNode {
23375        &self.syntax
23376    }
23377}
23378impl AstNode for AlterRule {
23379    #[inline]
23380    fn can_cast(kind: SyntaxKind) -> bool {
23381        kind == SyntaxKind::ALTER_RULE
23382    }
23383    #[inline]
23384    fn cast(syntax: SyntaxNode) -> Option<Self> {
23385        if Self::can_cast(syntax.kind()) {
23386            Some(Self { syntax })
23387        } else {
23388            None
23389        }
23390    }
23391    #[inline]
23392    fn syntax(&self) -> &SyntaxNode {
23393        &self.syntax
23394    }
23395}
23396impl AstNode for AlterSchema {
23397    #[inline]
23398    fn can_cast(kind: SyntaxKind) -> bool {
23399        kind == SyntaxKind::ALTER_SCHEMA
23400    }
23401    #[inline]
23402    fn cast(syntax: SyntaxNode) -> Option<Self> {
23403        if Self::can_cast(syntax.kind()) {
23404            Some(Self { syntax })
23405        } else {
23406            None
23407        }
23408    }
23409    #[inline]
23410    fn syntax(&self) -> &SyntaxNode {
23411        &self.syntax
23412    }
23413}
23414impl AstNode for AlterSequence {
23415    #[inline]
23416    fn can_cast(kind: SyntaxKind) -> bool {
23417        kind == SyntaxKind::ALTER_SEQUENCE
23418    }
23419    #[inline]
23420    fn cast(syntax: SyntaxNode) -> Option<Self> {
23421        if Self::can_cast(syntax.kind()) {
23422            Some(Self { syntax })
23423        } else {
23424            None
23425        }
23426    }
23427    #[inline]
23428    fn syntax(&self) -> &SyntaxNode {
23429        &self.syntax
23430    }
23431}
23432impl AstNode for AlterServer {
23433    #[inline]
23434    fn can_cast(kind: SyntaxKind) -> bool {
23435        kind == SyntaxKind::ALTER_SERVER
23436    }
23437    #[inline]
23438    fn cast(syntax: SyntaxNode) -> Option<Self> {
23439        if Self::can_cast(syntax.kind()) {
23440            Some(Self { syntax })
23441        } else {
23442            None
23443        }
23444    }
23445    #[inline]
23446    fn syntax(&self) -> &SyntaxNode {
23447        &self.syntax
23448    }
23449}
23450impl AstNode for AlterSetStatistics {
23451    #[inline]
23452    fn can_cast(kind: SyntaxKind) -> bool {
23453        kind == SyntaxKind::ALTER_SET_STATISTICS
23454    }
23455    #[inline]
23456    fn cast(syntax: SyntaxNode) -> Option<Self> {
23457        if Self::can_cast(syntax.kind()) {
23458            Some(Self { syntax })
23459        } else {
23460            None
23461        }
23462    }
23463    #[inline]
23464    fn syntax(&self) -> &SyntaxNode {
23465        &self.syntax
23466    }
23467}
23468impl AstNode for AlterStatistics {
23469    #[inline]
23470    fn can_cast(kind: SyntaxKind) -> bool {
23471        kind == SyntaxKind::ALTER_STATISTICS
23472    }
23473    #[inline]
23474    fn cast(syntax: SyntaxNode) -> Option<Self> {
23475        if Self::can_cast(syntax.kind()) {
23476            Some(Self { syntax })
23477        } else {
23478            None
23479        }
23480    }
23481    #[inline]
23482    fn syntax(&self) -> &SyntaxNode {
23483        &self.syntax
23484    }
23485}
23486impl AstNode for AlterSubscription {
23487    #[inline]
23488    fn can_cast(kind: SyntaxKind) -> bool {
23489        kind == SyntaxKind::ALTER_SUBSCRIPTION
23490    }
23491    #[inline]
23492    fn cast(syntax: SyntaxNode) -> Option<Self> {
23493        if Self::can_cast(syntax.kind()) {
23494            Some(Self { syntax })
23495        } else {
23496            None
23497        }
23498    }
23499    #[inline]
23500    fn syntax(&self) -> &SyntaxNode {
23501        &self.syntax
23502    }
23503}
23504impl AstNode for AlterSystem {
23505    #[inline]
23506    fn can_cast(kind: SyntaxKind) -> bool {
23507        kind == SyntaxKind::ALTER_SYSTEM
23508    }
23509    #[inline]
23510    fn cast(syntax: SyntaxNode) -> Option<Self> {
23511        if Self::can_cast(syntax.kind()) {
23512            Some(Self { syntax })
23513        } else {
23514            None
23515        }
23516    }
23517    #[inline]
23518    fn syntax(&self) -> &SyntaxNode {
23519        &self.syntax
23520    }
23521}
23522impl AstNode for AlterTable {
23523    #[inline]
23524    fn can_cast(kind: SyntaxKind) -> bool {
23525        kind == SyntaxKind::ALTER_TABLE
23526    }
23527    #[inline]
23528    fn cast(syntax: SyntaxNode) -> Option<Self> {
23529        if Self::can_cast(syntax.kind()) {
23530            Some(Self { syntax })
23531        } else {
23532            None
23533        }
23534    }
23535    #[inline]
23536    fn syntax(&self) -> &SyntaxNode {
23537        &self.syntax
23538    }
23539}
23540impl AstNode for AlterTablespace {
23541    #[inline]
23542    fn can_cast(kind: SyntaxKind) -> bool {
23543        kind == SyntaxKind::ALTER_TABLESPACE
23544    }
23545    #[inline]
23546    fn cast(syntax: SyntaxNode) -> Option<Self> {
23547        if Self::can_cast(syntax.kind()) {
23548            Some(Self { syntax })
23549        } else {
23550            None
23551        }
23552    }
23553    #[inline]
23554    fn syntax(&self) -> &SyntaxNode {
23555        &self.syntax
23556    }
23557}
23558impl AstNode for AlterTextSearchConfiguration {
23559    #[inline]
23560    fn can_cast(kind: SyntaxKind) -> bool {
23561        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
23562    }
23563    #[inline]
23564    fn cast(syntax: SyntaxNode) -> Option<Self> {
23565        if Self::can_cast(syntax.kind()) {
23566            Some(Self { syntax })
23567        } else {
23568            None
23569        }
23570    }
23571    #[inline]
23572    fn syntax(&self) -> &SyntaxNode {
23573        &self.syntax
23574    }
23575}
23576impl AstNode for AlterTextSearchDictionary {
23577    #[inline]
23578    fn can_cast(kind: SyntaxKind) -> bool {
23579        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
23580    }
23581    #[inline]
23582    fn cast(syntax: SyntaxNode) -> Option<Self> {
23583        if Self::can_cast(syntax.kind()) {
23584            Some(Self { syntax })
23585        } else {
23586            None
23587        }
23588    }
23589    #[inline]
23590    fn syntax(&self) -> &SyntaxNode {
23591        &self.syntax
23592    }
23593}
23594impl AstNode for AlterTextSearchParser {
23595    #[inline]
23596    fn can_cast(kind: SyntaxKind) -> bool {
23597        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
23598    }
23599    #[inline]
23600    fn cast(syntax: SyntaxNode) -> Option<Self> {
23601        if Self::can_cast(syntax.kind()) {
23602            Some(Self { syntax })
23603        } else {
23604            None
23605        }
23606    }
23607    #[inline]
23608    fn syntax(&self) -> &SyntaxNode {
23609        &self.syntax
23610    }
23611}
23612impl AstNode for AlterTextSearchTemplate {
23613    #[inline]
23614    fn can_cast(kind: SyntaxKind) -> bool {
23615        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
23616    }
23617    #[inline]
23618    fn cast(syntax: SyntaxNode) -> Option<Self> {
23619        if Self::can_cast(syntax.kind()) {
23620            Some(Self { syntax })
23621        } else {
23622            None
23623        }
23624    }
23625    #[inline]
23626    fn syntax(&self) -> &SyntaxNode {
23627        &self.syntax
23628    }
23629}
23630impl AstNode for AlterTrigger {
23631    #[inline]
23632    fn can_cast(kind: SyntaxKind) -> bool {
23633        kind == SyntaxKind::ALTER_TRIGGER
23634    }
23635    #[inline]
23636    fn cast(syntax: SyntaxNode) -> Option<Self> {
23637        if Self::can_cast(syntax.kind()) {
23638            Some(Self { syntax })
23639        } else {
23640            None
23641        }
23642    }
23643    #[inline]
23644    fn syntax(&self) -> &SyntaxNode {
23645        &self.syntax
23646    }
23647}
23648impl AstNode for AlterType {
23649    #[inline]
23650    fn can_cast(kind: SyntaxKind) -> bool {
23651        kind == SyntaxKind::ALTER_TYPE
23652    }
23653    #[inline]
23654    fn cast(syntax: SyntaxNode) -> Option<Self> {
23655        if Self::can_cast(syntax.kind()) {
23656            Some(Self { syntax })
23657        } else {
23658            None
23659        }
23660    }
23661    #[inline]
23662    fn syntax(&self) -> &SyntaxNode {
23663        &self.syntax
23664    }
23665}
23666impl AstNode for AlterUser {
23667    #[inline]
23668    fn can_cast(kind: SyntaxKind) -> bool {
23669        kind == SyntaxKind::ALTER_USER
23670    }
23671    #[inline]
23672    fn cast(syntax: SyntaxNode) -> Option<Self> {
23673        if Self::can_cast(syntax.kind()) {
23674            Some(Self { syntax })
23675        } else {
23676            None
23677        }
23678    }
23679    #[inline]
23680    fn syntax(&self) -> &SyntaxNode {
23681        &self.syntax
23682    }
23683}
23684impl AstNode for AlterUserMapping {
23685    #[inline]
23686    fn can_cast(kind: SyntaxKind) -> bool {
23687        kind == SyntaxKind::ALTER_USER_MAPPING
23688    }
23689    #[inline]
23690    fn cast(syntax: SyntaxNode) -> Option<Self> {
23691        if Self::can_cast(syntax.kind()) {
23692            Some(Self { syntax })
23693        } else {
23694            None
23695        }
23696    }
23697    #[inline]
23698    fn syntax(&self) -> &SyntaxNode {
23699        &self.syntax
23700    }
23701}
23702impl AstNode for AlterVertexEdgeLabels {
23703    #[inline]
23704    fn can_cast(kind: SyntaxKind) -> bool {
23705        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
23706    }
23707    #[inline]
23708    fn cast(syntax: SyntaxNode) -> Option<Self> {
23709        if Self::can_cast(syntax.kind()) {
23710            Some(Self { syntax })
23711        } else {
23712            None
23713        }
23714    }
23715    #[inline]
23716    fn syntax(&self) -> &SyntaxNode {
23717        &self.syntax
23718    }
23719}
23720impl AstNode for AlterView {
23721    #[inline]
23722    fn can_cast(kind: SyntaxKind) -> bool {
23723        kind == SyntaxKind::ALTER_VIEW
23724    }
23725    #[inline]
23726    fn cast(syntax: SyntaxNode) -> Option<Self> {
23727        if Self::can_cast(syntax.kind()) {
23728            Some(Self { syntax })
23729        } else {
23730            None
23731        }
23732    }
23733    #[inline]
23734    fn syntax(&self) -> &SyntaxNode {
23735        &self.syntax
23736    }
23737}
23738impl AstNode for Analyze {
23739    #[inline]
23740    fn can_cast(kind: SyntaxKind) -> bool {
23741        kind == SyntaxKind::ANALYZE
23742    }
23743    #[inline]
23744    fn cast(syntax: SyntaxNode) -> Option<Self> {
23745        if Self::can_cast(syntax.kind()) {
23746            Some(Self { syntax })
23747        } else {
23748            None
23749        }
23750    }
23751    #[inline]
23752    fn syntax(&self) -> &SyntaxNode {
23753        &self.syntax
23754    }
23755}
23756impl AstNode for AnyFn {
23757    #[inline]
23758    fn can_cast(kind: SyntaxKind) -> bool {
23759        kind == SyntaxKind::ANY_FN
23760    }
23761    #[inline]
23762    fn cast(syntax: SyntaxNode) -> Option<Self> {
23763        if Self::can_cast(syntax.kind()) {
23764            Some(Self { syntax })
23765        } else {
23766            None
23767        }
23768    }
23769    #[inline]
23770    fn syntax(&self) -> &SyntaxNode {
23771        &self.syntax
23772    }
23773}
23774impl AstNode for Arg {
23775    #[inline]
23776    fn can_cast(kind: SyntaxKind) -> bool {
23777        kind == SyntaxKind::ARG
23778    }
23779    #[inline]
23780    fn cast(syntax: SyntaxNode) -> Option<Self> {
23781        if Self::can_cast(syntax.kind()) {
23782            Some(Self { syntax })
23783        } else {
23784            None
23785        }
23786    }
23787    #[inline]
23788    fn syntax(&self) -> &SyntaxNode {
23789        &self.syntax
23790    }
23791}
23792impl AstNode for ArgList {
23793    #[inline]
23794    fn can_cast(kind: SyntaxKind) -> bool {
23795        kind == SyntaxKind::ARG_LIST
23796    }
23797    #[inline]
23798    fn cast(syntax: SyntaxNode) -> Option<Self> {
23799        if Self::can_cast(syntax.kind()) {
23800            Some(Self { syntax })
23801        } else {
23802            None
23803        }
23804    }
23805    #[inline]
23806    fn syntax(&self) -> &SyntaxNode {
23807        &self.syntax
23808    }
23809}
23810impl AstNode for ArrayExpr {
23811    #[inline]
23812    fn can_cast(kind: SyntaxKind) -> bool {
23813        kind == SyntaxKind::ARRAY_EXPR
23814    }
23815    #[inline]
23816    fn cast(syntax: SyntaxNode) -> Option<Self> {
23817        if Self::can_cast(syntax.kind()) {
23818            Some(Self { syntax })
23819        } else {
23820            None
23821        }
23822    }
23823    #[inline]
23824    fn syntax(&self) -> &SyntaxNode {
23825        &self.syntax
23826    }
23827}
23828impl AstNode for ArrayType {
23829    #[inline]
23830    fn can_cast(kind: SyntaxKind) -> bool {
23831        kind == SyntaxKind::ARRAY_TYPE
23832    }
23833    #[inline]
23834    fn cast(syntax: SyntaxNode) -> Option<Self> {
23835        if Self::can_cast(syntax.kind()) {
23836            Some(Self { syntax })
23837        } else {
23838            None
23839        }
23840    }
23841    #[inline]
23842    fn syntax(&self) -> &SyntaxNode {
23843        &self.syntax
23844    }
23845}
23846impl AstNode for AsFuncOption {
23847    #[inline]
23848    fn can_cast(kind: SyntaxKind) -> bool {
23849        kind == SyntaxKind::AS_FUNC_OPTION
23850    }
23851    #[inline]
23852    fn cast(syntax: SyntaxNode) -> Option<Self> {
23853        if Self::can_cast(syntax.kind()) {
23854            Some(Self { syntax })
23855        } else {
23856            None
23857        }
23858    }
23859    #[inline]
23860    fn syntax(&self) -> &SyntaxNode {
23861        &self.syntax
23862    }
23863}
23864impl AstNode for AsName {
23865    #[inline]
23866    fn can_cast(kind: SyntaxKind) -> bool {
23867        kind == SyntaxKind::AS_NAME
23868    }
23869    #[inline]
23870    fn cast(syntax: SyntaxNode) -> Option<Self> {
23871        if Self::can_cast(syntax.kind()) {
23872            Some(Self { syntax })
23873        } else {
23874            None
23875        }
23876    }
23877    #[inline]
23878    fn syntax(&self) -> &SyntaxNode {
23879        &self.syntax
23880    }
23881}
23882impl AstNode for AsPolicyType {
23883    #[inline]
23884    fn can_cast(kind: SyntaxKind) -> bool {
23885        kind == SyntaxKind::AS_POLICY_TYPE
23886    }
23887    #[inline]
23888    fn cast(syntax: SyntaxNode) -> Option<Self> {
23889        if Self::can_cast(syntax.kind()) {
23890            Some(Self { syntax })
23891        } else {
23892            None
23893        }
23894    }
23895    #[inline]
23896    fn syntax(&self) -> &SyntaxNode {
23897        &self.syntax
23898    }
23899}
23900impl AstNode for AtLocal {
23901    #[inline]
23902    fn can_cast(kind: SyntaxKind) -> bool {
23903        kind == SyntaxKind::AT_LOCAL
23904    }
23905    #[inline]
23906    fn cast(syntax: SyntaxNode) -> Option<Self> {
23907        if Self::can_cast(syntax.kind()) {
23908            Some(Self { syntax })
23909        } else {
23910            None
23911        }
23912    }
23913    #[inline]
23914    fn syntax(&self) -> &SyntaxNode {
23915        &self.syntax
23916    }
23917}
23918impl AstNode for AtTimeZone {
23919    #[inline]
23920    fn can_cast(kind: SyntaxKind) -> bool {
23921        kind == SyntaxKind::AT_TIME_ZONE
23922    }
23923    #[inline]
23924    fn cast(syntax: SyntaxNode) -> Option<Self> {
23925        if Self::can_cast(syntax.kind()) {
23926            Some(Self { syntax })
23927        } else {
23928            None
23929        }
23930    }
23931    #[inline]
23932    fn syntax(&self) -> &SyntaxNode {
23933        &self.syntax
23934    }
23935}
23936impl AstNode for AttachPartition {
23937    #[inline]
23938    fn can_cast(kind: SyntaxKind) -> bool {
23939        kind == SyntaxKind::ATTACH_PARTITION
23940    }
23941    #[inline]
23942    fn cast(syntax: SyntaxNode) -> Option<Self> {
23943        if Self::can_cast(syntax.kind()) {
23944            Some(Self { syntax })
23945        } else {
23946            None
23947        }
23948    }
23949    #[inline]
23950    fn syntax(&self) -> &SyntaxNode {
23951        &self.syntax
23952    }
23953}
23954impl AstNode for AttributeList {
23955    #[inline]
23956    fn can_cast(kind: SyntaxKind) -> bool {
23957        kind == SyntaxKind::ATTRIBUTE_LIST
23958    }
23959    #[inline]
23960    fn cast(syntax: SyntaxNode) -> Option<Self> {
23961        if Self::can_cast(syntax.kind()) {
23962            Some(Self { syntax })
23963        } else {
23964            None
23965        }
23966    }
23967    #[inline]
23968    fn syntax(&self) -> &SyntaxNode {
23969        &self.syntax
23970    }
23971}
23972impl AstNode for AttributeOption {
23973    #[inline]
23974    fn can_cast(kind: SyntaxKind) -> bool {
23975        kind == SyntaxKind::ATTRIBUTE_OPTION
23976    }
23977    #[inline]
23978    fn cast(syntax: SyntaxNode) -> Option<Self> {
23979        if Self::can_cast(syntax.kind()) {
23980            Some(Self { syntax })
23981        } else {
23982            None
23983        }
23984    }
23985    #[inline]
23986    fn syntax(&self) -> &SyntaxNode {
23987        &self.syntax
23988    }
23989}
23990impl AstNode for AttributeValue {
23991    #[inline]
23992    fn can_cast(kind: SyntaxKind) -> bool {
23993        kind == SyntaxKind::ATTRIBUTE_VALUE
23994    }
23995    #[inline]
23996    fn cast(syntax: SyntaxNode) -> Option<Self> {
23997        if Self::can_cast(syntax.kind()) {
23998            Some(Self { syntax })
23999        } else {
24000            None
24001        }
24002    }
24003    #[inline]
24004    fn syntax(&self) -> &SyntaxNode {
24005        &self.syntax
24006    }
24007}
24008impl AstNode for Backward {
24009    #[inline]
24010    fn can_cast(kind: SyntaxKind) -> bool {
24011        kind == SyntaxKind::BACKWARD
24012    }
24013    #[inline]
24014    fn cast(syntax: SyntaxNode) -> Option<Self> {
24015        if Self::can_cast(syntax.kind()) {
24016            Some(Self { syntax })
24017        } else {
24018            None
24019        }
24020    }
24021    #[inline]
24022    fn syntax(&self) -> &SyntaxNode {
24023        &self.syntax
24024    }
24025}
24026impl AstNode for BeforeValue {
24027    #[inline]
24028    fn can_cast(kind: SyntaxKind) -> bool {
24029        kind == SyntaxKind::BEFORE_VALUE
24030    }
24031    #[inline]
24032    fn cast(syntax: SyntaxNode) -> Option<Self> {
24033        if Self::can_cast(syntax.kind()) {
24034            Some(Self { syntax })
24035        } else {
24036            None
24037        }
24038    }
24039    #[inline]
24040    fn syntax(&self) -> &SyntaxNode {
24041        &self.syntax
24042    }
24043}
24044impl AstNode for Begin {
24045    #[inline]
24046    fn can_cast(kind: SyntaxKind) -> bool {
24047        kind == SyntaxKind::BEGIN
24048    }
24049    #[inline]
24050    fn cast(syntax: SyntaxNode) -> Option<Self> {
24051        if Self::can_cast(syntax.kind()) {
24052            Some(Self { syntax })
24053        } else {
24054            None
24055        }
24056    }
24057    #[inline]
24058    fn syntax(&self) -> &SyntaxNode {
24059        &self.syntax
24060    }
24061}
24062impl AstNode for BeginFuncOptionList {
24063    #[inline]
24064    fn can_cast(kind: SyntaxKind) -> bool {
24065        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
24066    }
24067    #[inline]
24068    fn cast(syntax: SyntaxNode) -> Option<Self> {
24069        if Self::can_cast(syntax.kind()) {
24070            Some(Self { syntax })
24071        } else {
24072            None
24073        }
24074    }
24075    #[inline]
24076    fn syntax(&self) -> &SyntaxNode {
24077        &self.syntax
24078    }
24079}
24080impl AstNode for BetweenExpr {
24081    #[inline]
24082    fn can_cast(kind: SyntaxKind) -> bool {
24083        kind == SyntaxKind::BETWEEN_EXPR
24084    }
24085    #[inline]
24086    fn cast(syntax: SyntaxNode) -> Option<Self> {
24087        if Self::can_cast(syntax.kind()) {
24088            Some(Self { syntax })
24089        } else {
24090            None
24091        }
24092    }
24093    #[inline]
24094    fn syntax(&self) -> &SyntaxNode {
24095        &self.syntax
24096    }
24097}
24098impl AstNode for BinExpr {
24099    #[inline]
24100    fn can_cast(kind: SyntaxKind) -> bool {
24101        kind == SyntaxKind::BIN_EXPR
24102    }
24103    #[inline]
24104    fn cast(syntax: SyntaxNode) -> Option<Self> {
24105        if Self::can_cast(syntax.kind()) {
24106            Some(Self { syntax })
24107        } else {
24108            None
24109        }
24110    }
24111    #[inline]
24112    fn syntax(&self) -> &SyntaxNode {
24113        &self.syntax
24114    }
24115}
24116impl AstNode for BitType {
24117    #[inline]
24118    fn can_cast(kind: SyntaxKind) -> bool {
24119        kind == SyntaxKind::BIT_TYPE
24120    }
24121    #[inline]
24122    fn cast(syntax: SyntaxNode) -> Option<Self> {
24123        if Self::can_cast(syntax.kind()) {
24124            Some(Self { syntax })
24125        } else {
24126            None
24127        }
24128    }
24129    #[inline]
24130    fn syntax(&self) -> &SyntaxNode {
24131        &self.syntax
24132    }
24133}
24134impl AstNode for Call {
24135    #[inline]
24136    fn can_cast(kind: SyntaxKind) -> bool {
24137        kind == SyntaxKind::CALL
24138    }
24139    #[inline]
24140    fn cast(syntax: SyntaxNode) -> Option<Self> {
24141        if Self::can_cast(syntax.kind()) {
24142            Some(Self { syntax })
24143        } else {
24144            None
24145        }
24146    }
24147    #[inline]
24148    fn syntax(&self) -> &SyntaxNode {
24149        &self.syntax
24150    }
24151}
24152impl AstNode for CallExpr {
24153    #[inline]
24154    fn can_cast(kind: SyntaxKind) -> bool {
24155        kind == SyntaxKind::CALL_EXPR
24156    }
24157    #[inline]
24158    fn cast(syntax: SyntaxNode) -> Option<Self> {
24159        if Self::can_cast(syntax.kind()) {
24160            Some(Self { syntax })
24161        } else {
24162            None
24163        }
24164    }
24165    #[inline]
24166    fn syntax(&self) -> &SyntaxNode {
24167        &self.syntax
24168    }
24169}
24170impl AstNode for Cascade {
24171    #[inline]
24172    fn can_cast(kind: SyntaxKind) -> bool {
24173        kind == SyntaxKind::CASCADE
24174    }
24175    #[inline]
24176    fn cast(syntax: SyntaxNode) -> Option<Self> {
24177        if Self::can_cast(syntax.kind()) {
24178            Some(Self { syntax })
24179        } else {
24180            None
24181        }
24182    }
24183    #[inline]
24184    fn syntax(&self) -> &SyntaxNode {
24185        &self.syntax
24186    }
24187}
24188impl AstNode for CaseExpr {
24189    #[inline]
24190    fn can_cast(kind: SyntaxKind) -> bool {
24191        kind == SyntaxKind::CASE_EXPR
24192    }
24193    #[inline]
24194    fn cast(syntax: SyntaxNode) -> Option<Self> {
24195        if Self::can_cast(syntax.kind()) {
24196            Some(Self { syntax })
24197        } else {
24198            None
24199        }
24200    }
24201    #[inline]
24202    fn syntax(&self) -> &SyntaxNode {
24203        &self.syntax
24204    }
24205}
24206impl AstNode for CastExpr {
24207    #[inline]
24208    fn can_cast(kind: SyntaxKind) -> bool {
24209        kind == SyntaxKind::CAST_EXPR
24210    }
24211    #[inline]
24212    fn cast(syntax: SyntaxNode) -> Option<Self> {
24213        if Self::can_cast(syntax.kind()) {
24214            Some(Self { syntax })
24215        } else {
24216            None
24217        }
24218    }
24219    #[inline]
24220    fn syntax(&self) -> &SyntaxNode {
24221        &self.syntax
24222    }
24223}
24224impl AstNode for CastSig {
24225    #[inline]
24226    fn can_cast(kind: SyntaxKind) -> bool {
24227        kind == SyntaxKind::CAST_SIG
24228    }
24229    #[inline]
24230    fn cast(syntax: SyntaxNode) -> Option<Self> {
24231        if Self::can_cast(syntax.kind()) {
24232            Some(Self { syntax })
24233        } else {
24234            None
24235        }
24236    }
24237    #[inline]
24238    fn syntax(&self) -> &SyntaxNode {
24239        &self.syntax
24240    }
24241}
24242impl AstNode for CharType {
24243    #[inline]
24244    fn can_cast(kind: SyntaxKind) -> bool {
24245        kind == SyntaxKind::CHAR_TYPE
24246    }
24247    #[inline]
24248    fn cast(syntax: SyntaxNode) -> Option<Self> {
24249        if Self::can_cast(syntax.kind()) {
24250            Some(Self { syntax })
24251        } else {
24252            None
24253        }
24254    }
24255    #[inline]
24256    fn syntax(&self) -> &SyntaxNode {
24257        &self.syntax
24258    }
24259}
24260impl AstNode for CheckConstraint {
24261    #[inline]
24262    fn can_cast(kind: SyntaxKind) -> bool {
24263        kind == SyntaxKind::CHECK_CONSTRAINT
24264    }
24265    #[inline]
24266    fn cast(syntax: SyntaxNode) -> Option<Self> {
24267        if Self::can_cast(syntax.kind()) {
24268            Some(Self { syntax })
24269        } else {
24270            None
24271        }
24272    }
24273    #[inline]
24274    fn syntax(&self) -> &SyntaxNode {
24275        &self.syntax
24276    }
24277}
24278impl AstNode for Checkpoint {
24279    #[inline]
24280    fn can_cast(kind: SyntaxKind) -> bool {
24281        kind == SyntaxKind::CHECKPOINT
24282    }
24283    #[inline]
24284    fn cast(syntax: SyntaxNode) -> Option<Self> {
24285        if Self::can_cast(syntax.kind()) {
24286            Some(Self { syntax })
24287        } else {
24288            None
24289        }
24290    }
24291    #[inline]
24292    fn syntax(&self) -> &SyntaxNode {
24293        &self.syntax
24294    }
24295}
24296impl AstNode for CheckpointOption {
24297    #[inline]
24298    fn can_cast(kind: SyntaxKind) -> bool {
24299        kind == SyntaxKind::CHECKPOINT_OPTION
24300    }
24301    #[inline]
24302    fn cast(syntax: SyntaxNode) -> Option<Self> {
24303        if Self::can_cast(syntax.kind()) {
24304            Some(Self { syntax })
24305        } else {
24306            None
24307        }
24308    }
24309    #[inline]
24310    fn syntax(&self) -> &SyntaxNode {
24311        &self.syntax
24312    }
24313}
24314impl AstNode for CheckpointOptionList {
24315    #[inline]
24316    fn can_cast(kind: SyntaxKind) -> bool {
24317        kind == SyntaxKind::CHECKPOINT_OPTION_LIST
24318    }
24319    #[inline]
24320    fn cast(syntax: SyntaxNode) -> Option<Self> {
24321        if Self::can_cast(syntax.kind()) {
24322            Some(Self { syntax })
24323        } else {
24324            None
24325        }
24326    }
24327    #[inline]
24328    fn syntax(&self) -> &SyntaxNode {
24329        &self.syntax
24330    }
24331}
24332impl AstNode for Close {
24333    #[inline]
24334    fn can_cast(kind: SyntaxKind) -> bool {
24335        kind == SyntaxKind::CLOSE
24336    }
24337    #[inline]
24338    fn cast(syntax: SyntaxNode) -> Option<Self> {
24339        if Self::can_cast(syntax.kind()) {
24340            Some(Self { syntax })
24341        } else {
24342            None
24343        }
24344    }
24345    #[inline]
24346    fn syntax(&self) -> &SyntaxNode {
24347        &self.syntax
24348    }
24349}
24350impl AstNode for Cluster {
24351    #[inline]
24352    fn can_cast(kind: SyntaxKind) -> bool {
24353        kind == SyntaxKind::CLUSTER
24354    }
24355    #[inline]
24356    fn cast(syntax: SyntaxNode) -> Option<Self> {
24357        if Self::can_cast(syntax.kind()) {
24358            Some(Self { syntax })
24359        } else {
24360            None
24361        }
24362    }
24363    #[inline]
24364    fn syntax(&self) -> &SyntaxNode {
24365        &self.syntax
24366    }
24367}
24368impl AstNode for ClusterOn {
24369    #[inline]
24370    fn can_cast(kind: SyntaxKind) -> bool {
24371        kind == SyntaxKind::CLUSTER_ON
24372    }
24373    #[inline]
24374    fn cast(syntax: SyntaxNode) -> Option<Self> {
24375        if Self::can_cast(syntax.kind()) {
24376            Some(Self { syntax })
24377        } else {
24378            None
24379        }
24380    }
24381    #[inline]
24382    fn syntax(&self) -> &SyntaxNode {
24383        &self.syntax
24384    }
24385}
24386impl AstNode for Collate {
24387    #[inline]
24388    fn can_cast(kind: SyntaxKind) -> bool {
24389        kind == SyntaxKind::COLLATE
24390    }
24391    #[inline]
24392    fn cast(syntax: SyntaxNode) -> Option<Self> {
24393        if Self::can_cast(syntax.kind()) {
24394            Some(Self { syntax })
24395        } else {
24396            None
24397        }
24398    }
24399    #[inline]
24400    fn syntax(&self) -> &SyntaxNode {
24401        &self.syntax
24402    }
24403}
24404impl AstNode for CollationForFn {
24405    #[inline]
24406    fn can_cast(kind: SyntaxKind) -> bool {
24407        kind == SyntaxKind::COLLATION_FOR_FN
24408    }
24409    #[inline]
24410    fn cast(syntax: SyntaxNode) -> Option<Self> {
24411        if Self::can_cast(syntax.kind()) {
24412            Some(Self { syntax })
24413        } else {
24414            None
24415        }
24416    }
24417    #[inline]
24418    fn syntax(&self) -> &SyntaxNode {
24419        &self.syntax
24420    }
24421}
24422impl AstNode for CollationFrom {
24423    #[inline]
24424    fn can_cast(kind: SyntaxKind) -> bool {
24425        kind == SyntaxKind::COLLATION_FROM
24426    }
24427    #[inline]
24428    fn cast(syntax: SyntaxNode) -> Option<Self> {
24429        if Self::can_cast(syntax.kind()) {
24430            Some(Self { syntax })
24431        } else {
24432            None
24433        }
24434    }
24435    #[inline]
24436    fn syntax(&self) -> &SyntaxNode {
24437        &self.syntax
24438    }
24439}
24440impl AstNode for ColonColon {
24441    #[inline]
24442    fn can_cast(kind: SyntaxKind) -> bool {
24443        kind == SyntaxKind::COLON_COLON
24444    }
24445    #[inline]
24446    fn cast(syntax: SyntaxNode) -> Option<Self> {
24447        if Self::can_cast(syntax.kind()) {
24448            Some(Self { syntax })
24449        } else {
24450            None
24451        }
24452    }
24453    #[inline]
24454    fn syntax(&self) -> &SyntaxNode {
24455        &self.syntax
24456    }
24457}
24458impl AstNode for ColonEq {
24459    #[inline]
24460    fn can_cast(kind: SyntaxKind) -> bool {
24461        kind == SyntaxKind::COLON_EQ
24462    }
24463    #[inline]
24464    fn cast(syntax: SyntaxNode) -> Option<Self> {
24465        if Self::can_cast(syntax.kind()) {
24466            Some(Self { syntax })
24467        } else {
24468            None
24469        }
24470    }
24471    #[inline]
24472    fn syntax(&self) -> &SyntaxNode {
24473        &self.syntax
24474    }
24475}
24476impl AstNode for Column {
24477    #[inline]
24478    fn can_cast(kind: SyntaxKind) -> bool {
24479        kind == SyntaxKind::COLUMN
24480    }
24481    #[inline]
24482    fn cast(syntax: SyntaxNode) -> Option<Self> {
24483        if Self::can_cast(syntax.kind()) {
24484            Some(Self { syntax })
24485        } else {
24486            None
24487        }
24488    }
24489    #[inline]
24490    fn syntax(&self) -> &SyntaxNode {
24491        &self.syntax
24492    }
24493}
24494impl AstNode for ColumnList {
24495    #[inline]
24496    fn can_cast(kind: SyntaxKind) -> bool {
24497        kind == SyntaxKind::COLUMN_LIST
24498    }
24499    #[inline]
24500    fn cast(syntax: SyntaxNode) -> Option<Self> {
24501        if Self::can_cast(syntax.kind()) {
24502            Some(Self { syntax })
24503        } else {
24504            None
24505        }
24506    }
24507    #[inline]
24508    fn syntax(&self) -> &SyntaxNode {
24509        &self.syntax
24510    }
24511}
24512impl AstNode for CommentOn {
24513    #[inline]
24514    fn can_cast(kind: SyntaxKind) -> bool {
24515        kind == SyntaxKind::COMMENT_ON
24516    }
24517    #[inline]
24518    fn cast(syntax: SyntaxNode) -> Option<Self> {
24519        if Self::can_cast(syntax.kind()) {
24520            Some(Self { syntax })
24521        } else {
24522            None
24523        }
24524    }
24525    #[inline]
24526    fn syntax(&self) -> &SyntaxNode {
24527        &self.syntax
24528    }
24529}
24530impl AstNode for Commit {
24531    #[inline]
24532    fn can_cast(kind: SyntaxKind) -> bool {
24533        kind == SyntaxKind::COMMIT
24534    }
24535    #[inline]
24536    fn cast(syntax: SyntaxNode) -> Option<Self> {
24537        if Self::can_cast(syntax.kind()) {
24538            Some(Self { syntax })
24539        } else {
24540            None
24541        }
24542    }
24543    #[inline]
24544    fn syntax(&self) -> &SyntaxNode {
24545        &self.syntax
24546    }
24547}
24548impl AstNode for CompoundSelect {
24549    #[inline]
24550    fn can_cast(kind: SyntaxKind) -> bool {
24551        kind == SyntaxKind::COMPOUND_SELECT
24552    }
24553    #[inline]
24554    fn cast(syntax: SyntaxNode) -> Option<Self> {
24555        if Self::can_cast(syntax.kind()) {
24556            Some(Self { syntax })
24557        } else {
24558            None
24559        }
24560    }
24561    #[inline]
24562    fn syntax(&self) -> &SyntaxNode {
24563        &self.syntax
24564    }
24565}
24566impl AstNode for CompressionMethod {
24567    #[inline]
24568    fn can_cast(kind: SyntaxKind) -> bool {
24569        kind == SyntaxKind::COMPRESSION_METHOD
24570    }
24571    #[inline]
24572    fn cast(syntax: SyntaxNode) -> Option<Self> {
24573        if Self::can_cast(syntax.kind()) {
24574            Some(Self { syntax })
24575        } else {
24576            None
24577        }
24578    }
24579    #[inline]
24580    fn syntax(&self) -> &SyntaxNode {
24581        &self.syntax
24582    }
24583}
24584impl AstNode for ConflictDoNothing {
24585    #[inline]
24586    fn can_cast(kind: SyntaxKind) -> bool {
24587        kind == SyntaxKind::CONFLICT_DO_NOTHING
24588    }
24589    #[inline]
24590    fn cast(syntax: SyntaxNode) -> Option<Self> {
24591        if Self::can_cast(syntax.kind()) {
24592            Some(Self { syntax })
24593        } else {
24594            None
24595        }
24596    }
24597    #[inline]
24598    fn syntax(&self) -> &SyntaxNode {
24599        &self.syntax
24600    }
24601}
24602impl AstNode for ConflictDoSelect {
24603    #[inline]
24604    fn can_cast(kind: SyntaxKind) -> bool {
24605        kind == SyntaxKind::CONFLICT_DO_SELECT
24606    }
24607    #[inline]
24608    fn cast(syntax: SyntaxNode) -> Option<Self> {
24609        if Self::can_cast(syntax.kind()) {
24610            Some(Self { syntax })
24611        } else {
24612            None
24613        }
24614    }
24615    #[inline]
24616    fn syntax(&self) -> &SyntaxNode {
24617        &self.syntax
24618    }
24619}
24620impl AstNode for ConflictDoUpdateSet {
24621    #[inline]
24622    fn can_cast(kind: SyntaxKind) -> bool {
24623        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
24624    }
24625    #[inline]
24626    fn cast(syntax: SyntaxNode) -> Option<Self> {
24627        if Self::can_cast(syntax.kind()) {
24628            Some(Self { syntax })
24629        } else {
24630            None
24631        }
24632    }
24633    #[inline]
24634    fn syntax(&self) -> &SyntaxNode {
24635        &self.syntax
24636    }
24637}
24638impl AstNode for ConflictIndexItem {
24639    #[inline]
24640    fn can_cast(kind: SyntaxKind) -> bool {
24641        kind == SyntaxKind::CONFLICT_INDEX_ITEM
24642    }
24643    #[inline]
24644    fn cast(syntax: SyntaxNode) -> Option<Self> {
24645        if Self::can_cast(syntax.kind()) {
24646            Some(Self { syntax })
24647        } else {
24648            None
24649        }
24650    }
24651    #[inline]
24652    fn syntax(&self) -> &SyntaxNode {
24653        &self.syntax
24654    }
24655}
24656impl AstNode for ConflictIndexItemList {
24657    #[inline]
24658    fn can_cast(kind: SyntaxKind) -> bool {
24659        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
24660    }
24661    #[inline]
24662    fn cast(syntax: SyntaxNode) -> Option<Self> {
24663        if Self::can_cast(syntax.kind()) {
24664            Some(Self { syntax })
24665        } else {
24666            None
24667        }
24668    }
24669    #[inline]
24670    fn syntax(&self) -> &SyntaxNode {
24671        &self.syntax
24672    }
24673}
24674impl AstNode for ConflictOnConstraint {
24675    #[inline]
24676    fn can_cast(kind: SyntaxKind) -> bool {
24677        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
24678    }
24679    #[inline]
24680    fn cast(syntax: SyntaxNode) -> Option<Self> {
24681        if Self::can_cast(syntax.kind()) {
24682            Some(Self { syntax })
24683        } else {
24684            None
24685        }
24686    }
24687    #[inline]
24688    fn syntax(&self) -> &SyntaxNode {
24689        &self.syntax
24690    }
24691}
24692impl AstNode for ConflictOnIndex {
24693    #[inline]
24694    fn can_cast(kind: SyntaxKind) -> bool {
24695        kind == SyntaxKind::CONFLICT_ON_INDEX
24696    }
24697    #[inline]
24698    fn cast(syntax: SyntaxNode) -> Option<Self> {
24699        if Self::can_cast(syntax.kind()) {
24700            Some(Self { syntax })
24701        } else {
24702            None
24703        }
24704    }
24705    #[inline]
24706    fn syntax(&self) -> &SyntaxNode {
24707        &self.syntax
24708    }
24709}
24710impl AstNode for ConstraintExclusion {
24711    #[inline]
24712    fn can_cast(kind: SyntaxKind) -> bool {
24713        kind == SyntaxKind::CONSTRAINT_EXCLUSION
24714    }
24715    #[inline]
24716    fn cast(syntax: SyntaxNode) -> Option<Self> {
24717        if Self::can_cast(syntax.kind()) {
24718            Some(Self { syntax })
24719        } else {
24720            None
24721        }
24722    }
24723    #[inline]
24724    fn syntax(&self) -> &SyntaxNode {
24725        &self.syntax
24726    }
24727}
24728impl AstNode for ConstraintExclusionList {
24729    #[inline]
24730    fn can_cast(kind: SyntaxKind) -> bool {
24731        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
24732    }
24733    #[inline]
24734    fn cast(syntax: SyntaxNode) -> Option<Self> {
24735        if Self::can_cast(syntax.kind()) {
24736            Some(Self { syntax })
24737        } else {
24738            None
24739        }
24740    }
24741    #[inline]
24742    fn syntax(&self) -> &SyntaxNode {
24743        &self.syntax
24744    }
24745}
24746impl AstNode for ConstraintIncludeClause {
24747    #[inline]
24748    fn can_cast(kind: SyntaxKind) -> bool {
24749        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
24750    }
24751    #[inline]
24752    fn cast(syntax: SyntaxNode) -> Option<Self> {
24753        if Self::can_cast(syntax.kind()) {
24754            Some(Self { syntax })
24755        } else {
24756            None
24757        }
24758    }
24759    #[inline]
24760    fn syntax(&self) -> &SyntaxNode {
24761        &self.syntax
24762    }
24763}
24764impl AstNode for ConstraintIndexMethod {
24765    #[inline]
24766    fn can_cast(kind: SyntaxKind) -> bool {
24767        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
24768    }
24769    #[inline]
24770    fn cast(syntax: SyntaxNode) -> Option<Self> {
24771        if Self::can_cast(syntax.kind()) {
24772            Some(Self { syntax })
24773        } else {
24774            None
24775        }
24776    }
24777    #[inline]
24778    fn syntax(&self) -> &SyntaxNode {
24779        &self.syntax
24780    }
24781}
24782impl AstNode for ConstraintIndexTablespace {
24783    #[inline]
24784    fn can_cast(kind: SyntaxKind) -> bool {
24785        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
24786    }
24787    #[inline]
24788    fn cast(syntax: SyntaxNode) -> Option<Self> {
24789        if Self::can_cast(syntax.kind()) {
24790            Some(Self { syntax })
24791        } else {
24792            None
24793        }
24794    }
24795    #[inline]
24796    fn syntax(&self) -> &SyntaxNode {
24797        &self.syntax
24798    }
24799}
24800impl AstNode for ConstraintName {
24801    #[inline]
24802    fn can_cast(kind: SyntaxKind) -> bool {
24803        kind == SyntaxKind::CONSTRAINT_NAME
24804    }
24805    #[inline]
24806    fn cast(syntax: SyntaxNode) -> Option<Self> {
24807        if Self::can_cast(syntax.kind()) {
24808            Some(Self { syntax })
24809        } else {
24810            None
24811        }
24812    }
24813    #[inline]
24814    fn syntax(&self) -> &SyntaxNode {
24815        &self.syntax
24816    }
24817}
24818impl AstNode for Copy {
24819    #[inline]
24820    fn can_cast(kind: SyntaxKind) -> bool {
24821        kind == SyntaxKind::COPY
24822    }
24823    #[inline]
24824    fn cast(syntax: SyntaxNode) -> Option<Self> {
24825        if Self::can_cast(syntax.kind()) {
24826            Some(Self { syntax })
24827        } else {
24828            None
24829        }
24830    }
24831    #[inline]
24832    fn syntax(&self) -> &SyntaxNode {
24833        &self.syntax
24834    }
24835}
24836impl AstNode for CopyLegacyOption {
24837    #[inline]
24838    fn can_cast(kind: SyntaxKind) -> bool {
24839        kind == SyntaxKind::COPY_LEGACY_OPTION
24840    }
24841    #[inline]
24842    fn cast(syntax: SyntaxNode) -> Option<Self> {
24843        if Self::can_cast(syntax.kind()) {
24844            Some(Self { syntax })
24845        } else {
24846            None
24847        }
24848    }
24849    #[inline]
24850    fn syntax(&self) -> &SyntaxNode {
24851        &self.syntax
24852    }
24853}
24854impl AstNode for CopyOption {
24855    #[inline]
24856    fn can_cast(kind: SyntaxKind) -> bool {
24857        kind == SyntaxKind::COPY_OPTION
24858    }
24859    #[inline]
24860    fn cast(syntax: SyntaxNode) -> Option<Self> {
24861        if Self::can_cast(syntax.kind()) {
24862            Some(Self { syntax })
24863        } else {
24864            None
24865        }
24866    }
24867    #[inline]
24868    fn syntax(&self) -> &SyntaxNode {
24869        &self.syntax
24870    }
24871}
24872impl AstNode for CopyOptionList {
24873    #[inline]
24874    fn can_cast(kind: SyntaxKind) -> bool {
24875        kind == SyntaxKind::COPY_OPTION_LIST
24876    }
24877    #[inline]
24878    fn cast(syntax: SyntaxNode) -> Option<Self> {
24879        if Self::can_cast(syntax.kind()) {
24880            Some(Self { syntax })
24881        } else {
24882            None
24883        }
24884    }
24885    #[inline]
24886    fn syntax(&self) -> &SyntaxNode {
24887        &self.syntax
24888    }
24889}
24890impl AstNode for CostFuncOption {
24891    #[inline]
24892    fn can_cast(kind: SyntaxKind) -> bool {
24893        kind == SyntaxKind::COST_FUNC_OPTION
24894    }
24895    #[inline]
24896    fn cast(syntax: SyntaxNode) -> Option<Self> {
24897        if Self::can_cast(syntax.kind()) {
24898            Some(Self { syntax })
24899        } else {
24900            None
24901        }
24902    }
24903    #[inline]
24904    fn syntax(&self) -> &SyntaxNode {
24905        &self.syntax
24906    }
24907}
24908impl AstNode for CreateAccessMethod {
24909    #[inline]
24910    fn can_cast(kind: SyntaxKind) -> bool {
24911        kind == SyntaxKind::CREATE_ACCESS_METHOD
24912    }
24913    #[inline]
24914    fn cast(syntax: SyntaxNode) -> Option<Self> {
24915        if Self::can_cast(syntax.kind()) {
24916            Some(Self { syntax })
24917        } else {
24918            None
24919        }
24920    }
24921    #[inline]
24922    fn syntax(&self) -> &SyntaxNode {
24923        &self.syntax
24924    }
24925}
24926impl AstNode for CreateAggregate {
24927    #[inline]
24928    fn can_cast(kind: SyntaxKind) -> bool {
24929        kind == SyntaxKind::CREATE_AGGREGATE
24930    }
24931    #[inline]
24932    fn cast(syntax: SyntaxNode) -> Option<Self> {
24933        if Self::can_cast(syntax.kind()) {
24934            Some(Self { syntax })
24935        } else {
24936            None
24937        }
24938    }
24939    #[inline]
24940    fn syntax(&self) -> &SyntaxNode {
24941        &self.syntax
24942    }
24943}
24944impl AstNode for CreateCast {
24945    #[inline]
24946    fn can_cast(kind: SyntaxKind) -> bool {
24947        kind == SyntaxKind::CREATE_CAST
24948    }
24949    #[inline]
24950    fn cast(syntax: SyntaxNode) -> Option<Self> {
24951        if Self::can_cast(syntax.kind()) {
24952            Some(Self { syntax })
24953        } else {
24954            None
24955        }
24956    }
24957    #[inline]
24958    fn syntax(&self) -> &SyntaxNode {
24959        &self.syntax
24960    }
24961}
24962impl AstNode for CreateCollation {
24963    #[inline]
24964    fn can_cast(kind: SyntaxKind) -> bool {
24965        kind == SyntaxKind::CREATE_COLLATION
24966    }
24967    #[inline]
24968    fn cast(syntax: SyntaxNode) -> Option<Self> {
24969        if Self::can_cast(syntax.kind()) {
24970            Some(Self { syntax })
24971        } else {
24972            None
24973        }
24974    }
24975    #[inline]
24976    fn syntax(&self) -> &SyntaxNode {
24977        &self.syntax
24978    }
24979}
24980impl AstNode for CreateConversion {
24981    #[inline]
24982    fn can_cast(kind: SyntaxKind) -> bool {
24983        kind == SyntaxKind::CREATE_CONVERSION
24984    }
24985    #[inline]
24986    fn cast(syntax: SyntaxNode) -> Option<Self> {
24987        if Self::can_cast(syntax.kind()) {
24988            Some(Self { syntax })
24989        } else {
24990            None
24991        }
24992    }
24993    #[inline]
24994    fn syntax(&self) -> &SyntaxNode {
24995        &self.syntax
24996    }
24997}
24998impl AstNode for CreateDatabase {
24999    #[inline]
25000    fn can_cast(kind: SyntaxKind) -> bool {
25001        kind == SyntaxKind::CREATE_DATABASE
25002    }
25003    #[inline]
25004    fn cast(syntax: SyntaxNode) -> Option<Self> {
25005        if Self::can_cast(syntax.kind()) {
25006            Some(Self { syntax })
25007        } else {
25008            None
25009        }
25010    }
25011    #[inline]
25012    fn syntax(&self) -> &SyntaxNode {
25013        &self.syntax
25014    }
25015}
25016impl AstNode for CreateDomain {
25017    #[inline]
25018    fn can_cast(kind: SyntaxKind) -> bool {
25019        kind == SyntaxKind::CREATE_DOMAIN
25020    }
25021    #[inline]
25022    fn cast(syntax: SyntaxNode) -> Option<Self> {
25023        if Self::can_cast(syntax.kind()) {
25024            Some(Self { syntax })
25025        } else {
25026            None
25027        }
25028    }
25029    #[inline]
25030    fn syntax(&self) -> &SyntaxNode {
25031        &self.syntax
25032    }
25033}
25034impl AstNode for CreateEventTrigger {
25035    #[inline]
25036    fn can_cast(kind: SyntaxKind) -> bool {
25037        kind == SyntaxKind::CREATE_EVENT_TRIGGER
25038    }
25039    #[inline]
25040    fn cast(syntax: SyntaxNode) -> Option<Self> {
25041        if Self::can_cast(syntax.kind()) {
25042            Some(Self { syntax })
25043        } else {
25044            None
25045        }
25046    }
25047    #[inline]
25048    fn syntax(&self) -> &SyntaxNode {
25049        &self.syntax
25050    }
25051}
25052impl AstNode for CreateExtension {
25053    #[inline]
25054    fn can_cast(kind: SyntaxKind) -> bool {
25055        kind == SyntaxKind::CREATE_EXTENSION
25056    }
25057    #[inline]
25058    fn cast(syntax: SyntaxNode) -> Option<Self> {
25059        if Self::can_cast(syntax.kind()) {
25060            Some(Self { syntax })
25061        } else {
25062            None
25063        }
25064    }
25065    #[inline]
25066    fn syntax(&self) -> &SyntaxNode {
25067        &self.syntax
25068    }
25069}
25070impl AstNode for CreateForeignDataWrapper {
25071    #[inline]
25072    fn can_cast(kind: SyntaxKind) -> bool {
25073        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
25074    }
25075    #[inline]
25076    fn cast(syntax: SyntaxNode) -> Option<Self> {
25077        if Self::can_cast(syntax.kind()) {
25078            Some(Self { syntax })
25079        } else {
25080            None
25081        }
25082    }
25083    #[inline]
25084    fn syntax(&self) -> &SyntaxNode {
25085        &self.syntax
25086    }
25087}
25088impl AstNode for CreateForeignTable {
25089    #[inline]
25090    fn can_cast(kind: SyntaxKind) -> bool {
25091        kind == SyntaxKind::CREATE_FOREIGN_TABLE
25092    }
25093    #[inline]
25094    fn cast(syntax: SyntaxNode) -> Option<Self> {
25095        if Self::can_cast(syntax.kind()) {
25096            Some(Self { syntax })
25097        } else {
25098            None
25099        }
25100    }
25101    #[inline]
25102    fn syntax(&self) -> &SyntaxNode {
25103        &self.syntax
25104    }
25105}
25106impl AstNode for CreateFunction {
25107    #[inline]
25108    fn can_cast(kind: SyntaxKind) -> bool {
25109        kind == SyntaxKind::CREATE_FUNCTION
25110    }
25111    #[inline]
25112    fn cast(syntax: SyntaxNode) -> Option<Self> {
25113        if Self::can_cast(syntax.kind()) {
25114            Some(Self { syntax })
25115        } else {
25116            None
25117        }
25118    }
25119    #[inline]
25120    fn syntax(&self) -> &SyntaxNode {
25121        &self.syntax
25122    }
25123}
25124impl AstNode for CreateGroup {
25125    #[inline]
25126    fn can_cast(kind: SyntaxKind) -> bool {
25127        kind == SyntaxKind::CREATE_GROUP
25128    }
25129    #[inline]
25130    fn cast(syntax: SyntaxNode) -> Option<Self> {
25131        if Self::can_cast(syntax.kind()) {
25132            Some(Self { syntax })
25133        } else {
25134            None
25135        }
25136    }
25137    #[inline]
25138    fn syntax(&self) -> &SyntaxNode {
25139        &self.syntax
25140    }
25141}
25142impl AstNode for CreateIndex {
25143    #[inline]
25144    fn can_cast(kind: SyntaxKind) -> bool {
25145        kind == SyntaxKind::CREATE_INDEX
25146    }
25147    #[inline]
25148    fn cast(syntax: SyntaxNode) -> Option<Self> {
25149        if Self::can_cast(syntax.kind()) {
25150            Some(Self { syntax })
25151        } else {
25152            None
25153        }
25154    }
25155    #[inline]
25156    fn syntax(&self) -> &SyntaxNode {
25157        &self.syntax
25158    }
25159}
25160impl AstNode for CreateLanguage {
25161    #[inline]
25162    fn can_cast(kind: SyntaxKind) -> bool {
25163        kind == SyntaxKind::CREATE_LANGUAGE
25164    }
25165    #[inline]
25166    fn cast(syntax: SyntaxNode) -> Option<Self> {
25167        if Self::can_cast(syntax.kind()) {
25168            Some(Self { syntax })
25169        } else {
25170            None
25171        }
25172    }
25173    #[inline]
25174    fn syntax(&self) -> &SyntaxNode {
25175        &self.syntax
25176    }
25177}
25178impl AstNode for CreateMaterializedView {
25179    #[inline]
25180    fn can_cast(kind: SyntaxKind) -> bool {
25181        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
25182    }
25183    #[inline]
25184    fn cast(syntax: SyntaxNode) -> Option<Self> {
25185        if Self::can_cast(syntax.kind()) {
25186            Some(Self { syntax })
25187        } else {
25188            None
25189        }
25190    }
25191    #[inline]
25192    fn syntax(&self) -> &SyntaxNode {
25193        &self.syntax
25194    }
25195}
25196impl AstNode for CreateOperator {
25197    #[inline]
25198    fn can_cast(kind: SyntaxKind) -> bool {
25199        kind == SyntaxKind::CREATE_OPERATOR
25200    }
25201    #[inline]
25202    fn cast(syntax: SyntaxNode) -> Option<Self> {
25203        if Self::can_cast(syntax.kind()) {
25204            Some(Self { syntax })
25205        } else {
25206            None
25207        }
25208    }
25209    #[inline]
25210    fn syntax(&self) -> &SyntaxNode {
25211        &self.syntax
25212    }
25213}
25214impl AstNode for CreateOperatorClass {
25215    #[inline]
25216    fn can_cast(kind: SyntaxKind) -> bool {
25217        kind == SyntaxKind::CREATE_OPERATOR_CLASS
25218    }
25219    #[inline]
25220    fn cast(syntax: SyntaxNode) -> Option<Self> {
25221        if Self::can_cast(syntax.kind()) {
25222            Some(Self { syntax })
25223        } else {
25224            None
25225        }
25226    }
25227    #[inline]
25228    fn syntax(&self) -> &SyntaxNode {
25229        &self.syntax
25230    }
25231}
25232impl AstNode for CreateOperatorFamily {
25233    #[inline]
25234    fn can_cast(kind: SyntaxKind) -> bool {
25235        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
25236    }
25237    #[inline]
25238    fn cast(syntax: SyntaxNode) -> Option<Self> {
25239        if Self::can_cast(syntax.kind()) {
25240            Some(Self { syntax })
25241        } else {
25242            None
25243        }
25244    }
25245    #[inline]
25246    fn syntax(&self) -> &SyntaxNode {
25247        &self.syntax
25248    }
25249}
25250impl AstNode for CreatePolicy {
25251    #[inline]
25252    fn can_cast(kind: SyntaxKind) -> bool {
25253        kind == SyntaxKind::CREATE_POLICY
25254    }
25255    #[inline]
25256    fn cast(syntax: SyntaxNode) -> Option<Self> {
25257        if Self::can_cast(syntax.kind()) {
25258            Some(Self { syntax })
25259        } else {
25260            None
25261        }
25262    }
25263    #[inline]
25264    fn syntax(&self) -> &SyntaxNode {
25265        &self.syntax
25266    }
25267}
25268impl AstNode for CreateProcedure {
25269    #[inline]
25270    fn can_cast(kind: SyntaxKind) -> bool {
25271        kind == SyntaxKind::CREATE_PROCEDURE
25272    }
25273    #[inline]
25274    fn cast(syntax: SyntaxNode) -> Option<Self> {
25275        if Self::can_cast(syntax.kind()) {
25276            Some(Self { syntax })
25277        } else {
25278            None
25279        }
25280    }
25281    #[inline]
25282    fn syntax(&self) -> &SyntaxNode {
25283        &self.syntax
25284    }
25285}
25286impl AstNode for CreatePropertyGraph {
25287    #[inline]
25288    fn can_cast(kind: SyntaxKind) -> bool {
25289        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
25290    }
25291    #[inline]
25292    fn cast(syntax: SyntaxNode) -> Option<Self> {
25293        if Self::can_cast(syntax.kind()) {
25294            Some(Self { syntax })
25295        } else {
25296            None
25297        }
25298    }
25299    #[inline]
25300    fn syntax(&self) -> &SyntaxNode {
25301        &self.syntax
25302    }
25303}
25304impl AstNode for CreatePublication {
25305    #[inline]
25306    fn can_cast(kind: SyntaxKind) -> bool {
25307        kind == SyntaxKind::CREATE_PUBLICATION
25308    }
25309    #[inline]
25310    fn cast(syntax: SyntaxNode) -> Option<Self> {
25311        if Self::can_cast(syntax.kind()) {
25312            Some(Self { syntax })
25313        } else {
25314            None
25315        }
25316    }
25317    #[inline]
25318    fn syntax(&self) -> &SyntaxNode {
25319        &self.syntax
25320    }
25321}
25322impl AstNode for CreateRole {
25323    #[inline]
25324    fn can_cast(kind: SyntaxKind) -> bool {
25325        kind == SyntaxKind::CREATE_ROLE
25326    }
25327    #[inline]
25328    fn cast(syntax: SyntaxNode) -> Option<Self> {
25329        if Self::can_cast(syntax.kind()) {
25330            Some(Self { syntax })
25331        } else {
25332            None
25333        }
25334    }
25335    #[inline]
25336    fn syntax(&self) -> &SyntaxNode {
25337        &self.syntax
25338    }
25339}
25340impl AstNode for CreateRule {
25341    #[inline]
25342    fn can_cast(kind: SyntaxKind) -> bool {
25343        kind == SyntaxKind::CREATE_RULE
25344    }
25345    #[inline]
25346    fn cast(syntax: SyntaxNode) -> Option<Self> {
25347        if Self::can_cast(syntax.kind()) {
25348            Some(Self { syntax })
25349        } else {
25350            None
25351        }
25352    }
25353    #[inline]
25354    fn syntax(&self) -> &SyntaxNode {
25355        &self.syntax
25356    }
25357}
25358impl AstNode for CreateSchema {
25359    #[inline]
25360    fn can_cast(kind: SyntaxKind) -> bool {
25361        kind == SyntaxKind::CREATE_SCHEMA
25362    }
25363    #[inline]
25364    fn cast(syntax: SyntaxNode) -> Option<Self> {
25365        if Self::can_cast(syntax.kind()) {
25366            Some(Self { syntax })
25367        } else {
25368            None
25369        }
25370    }
25371    #[inline]
25372    fn syntax(&self) -> &SyntaxNode {
25373        &self.syntax
25374    }
25375}
25376impl AstNode for CreateSequence {
25377    #[inline]
25378    fn can_cast(kind: SyntaxKind) -> bool {
25379        kind == SyntaxKind::CREATE_SEQUENCE
25380    }
25381    #[inline]
25382    fn cast(syntax: SyntaxNode) -> Option<Self> {
25383        if Self::can_cast(syntax.kind()) {
25384            Some(Self { syntax })
25385        } else {
25386            None
25387        }
25388    }
25389    #[inline]
25390    fn syntax(&self) -> &SyntaxNode {
25391        &self.syntax
25392    }
25393}
25394impl AstNode for CreateServer {
25395    #[inline]
25396    fn can_cast(kind: SyntaxKind) -> bool {
25397        kind == SyntaxKind::CREATE_SERVER
25398    }
25399    #[inline]
25400    fn cast(syntax: SyntaxNode) -> Option<Self> {
25401        if Self::can_cast(syntax.kind()) {
25402            Some(Self { syntax })
25403        } else {
25404            None
25405        }
25406    }
25407    #[inline]
25408    fn syntax(&self) -> &SyntaxNode {
25409        &self.syntax
25410    }
25411}
25412impl AstNode for CreateStatistics {
25413    #[inline]
25414    fn can_cast(kind: SyntaxKind) -> bool {
25415        kind == SyntaxKind::CREATE_STATISTICS
25416    }
25417    #[inline]
25418    fn cast(syntax: SyntaxNode) -> Option<Self> {
25419        if Self::can_cast(syntax.kind()) {
25420            Some(Self { syntax })
25421        } else {
25422            None
25423        }
25424    }
25425    #[inline]
25426    fn syntax(&self) -> &SyntaxNode {
25427        &self.syntax
25428    }
25429}
25430impl AstNode for CreateSubscription {
25431    #[inline]
25432    fn can_cast(kind: SyntaxKind) -> bool {
25433        kind == SyntaxKind::CREATE_SUBSCRIPTION
25434    }
25435    #[inline]
25436    fn cast(syntax: SyntaxNode) -> Option<Self> {
25437        if Self::can_cast(syntax.kind()) {
25438            Some(Self { syntax })
25439        } else {
25440            None
25441        }
25442    }
25443    #[inline]
25444    fn syntax(&self) -> &SyntaxNode {
25445        &self.syntax
25446    }
25447}
25448impl AstNode for CreateTable {
25449    #[inline]
25450    fn can_cast(kind: SyntaxKind) -> bool {
25451        kind == SyntaxKind::CREATE_TABLE
25452    }
25453    #[inline]
25454    fn cast(syntax: SyntaxNode) -> Option<Self> {
25455        if Self::can_cast(syntax.kind()) {
25456            Some(Self { syntax })
25457        } else {
25458            None
25459        }
25460    }
25461    #[inline]
25462    fn syntax(&self) -> &SyntaxNode {
25463        &self.syntax
25464    }
25465}
25466impl AstNode for CreateTableAs {
25467    #[inline]
25468    fn can_cast(kind: SyntaxKind) -> bool {
25469        kind == SyntaxKind::CREATE_TABLE_AS
25470    }
25471    #[inline]
25472    fn cast(syntax: SyntaxNode) -> Option<Self> {
25473        if Self::can_cast(syntax.kind()) {
25474            Some(Self { syntax })
25475        } else {
25476            None
25477        }
25478    }
25479    #[inline]
25480    fn syntax(&self) -> &SyntaxNode {
25481        &self.syntax
25482    }
25483}
25484impl AstNode for CreateTablespace {
25485    #[inline]
25486    fn can_cast(kind: SyntaxKind) -> bool {
25487        kind == SyntaxKind::CREATE_TABLESPACE
25488    }
25489    #[inline]
25490    fn cast(syntax: SyntaxNode) -> Option<Self> {
25491        if Self::can_cast(syntax.kind()) {
25492            Some(Self { syntax })
25493        } else {
25494            None
25495        }
25496    }
25497    #[inline]
25498    fn syntax(&self) -> &SyntaxNode {
25499        &self.syntax
25500    }
25501}
25502impl AstNode for CreateTextSearchConfiguration {
25503    #[inline]
25504    fn can_cast(kind: SyntaxKind) -> bool {
25505        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
25506    }
25507    #[inline]
25508    fn cast(syntax: SyntaxNode) -> Option<Self> {
25509        if Self::can_cast(syntax.kind()) {
25510            Some(Self { syntax })
25511        } else {
25512            None
25513        }
25514    }
25515    #[inline]
25516    fn syntax(&self) -> &SyntaxNode {
25517        &self.syntax
25518    }
25519}
25520impl AstNode for CreateTextSearchDictionary {
25521    #[inline]
25522    fn can_cast(kind: SyntaxKind) -> bool {
25523        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
25524    }
25525    #[inline]
25526    fn cast(syntax: SyntaxNode) -> Option<Self> {
25527        if Self::can_cast(syntax.kind()) {
25528            Some(Self { syntax })
25529        } else {
25530            None
25531        }
25532    }
25533    #[inline]
25534    fn syntax(&self) -> &SyntaxNode {
25535        &self.syntax
25536    }
25537}
25538impl AstNode for CreateTextSearchParser {
25539    #[inline]
25540    fn can_cast(kind: SyntaxKind) -> bool {
25541        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
25542    }
25543    #[inline]
25544    fn cast(syntax: SyntaxNode) -> Option<Self> {
25545        if Self::can_cast(syntax.kind()) {
25546            Some(Self { syntax })
25547        } else {
25548            None
25549        }
25550    }
25551    #[inline]
25552    fn syntax(&self) -> &SyntaxNode {
25553        &self.syntax
25554    }
25555}
25556impl AstNode for CreateTextSearchTemplate {
25557    #[inline]
25558    fn can_cast(kind: SyntaxKind) -> bool {
25559        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
25560    }
25561    #[inline]
25562    fn cast(syntax: SyntaxNode) -> Option<Self> {
25563        if Self::can_cast(syntax.kind()) {
25564            Some(Self { syntax })
25565        } else {
25566            None
25567        }
25568    }
25569    #[inline]
25570    fn syntax(&self) -> &SyntaxNode {
25571        &self.syntax
25572    }
25573}
25574impl AstNode for CreateTransform {
25575    #[inline]
25576    fn can_cast(kind: SyntaxKind) -> bool {
25577        kind == SyntaxKind::CREATE_TRANSFORM
25578    }
25579    #[inline]
25580    fn cast(syntax: SyntaxNode) -> Option<Self> {
25581        if Self::can_cast(syntax.kind()) {
25582            Some(Self { syntax })
25583        } else {
25584            None
25585        }
25586    }
25587    #[inline]
25588    fn syntax(&self) -> &SyntaxNode {
25589        &self.syntax
25590    }
25591}
25592impl AstNode for CreateTrigger {
25593    #[inline]
25594    fn can_cast(kind: SyntaxKind) -> bool {
25595        kind == SyntaxKind::CREATE_TRIGGER
25596    }
25597    #[inline]
25598    fn cast(syntax: SyntaxNode) -> Option<Self> {
25599        if Self::can_cast(syntax.kind()) {
25600            Some(Self { syntax })
25601        } else {
25602            None
25603        }
25604    }
25605    #[inline]
25606    fn syntax(&self) -> &SyntaxNode {
25607        &self.syntax
25608    }
25609}
25610impl AstNode for CreateType {
25611    #[inline]
25612    fn can_cast(kind: SyntaxKind) -> bool {
25613        kind == SyntaxKind::CREATE_TYPE
25614    }
25615    #[inline]
25616    fn cast(syntax: SyntaxNode) -> Option<Self> {
25617        if Self::can_cast(syntax.kind()) {
25618            Some(Self { syntax })
25619        } else {
25620            None
25621        }
25622    }
25623    #[inline]
25624    fn syntax(&self) -> &SyntaxNode {
25625        &self.syntax
25626    }
25627}
25628impl AstNode for CreateUser {
25629    #[inline]
25630    fn can_cast(kind: SyntaxKind) -> bool {
25631        kind == SyntaxKind::CREATE_USER
25632    }
25633    #[inline]
25634    fn cast(syntax: SyntaxNode) -> Option<Self> {
25635        if Self::can_cast(syntax.kind()) {
25636            Some(Self { syntax })
25637        } else {
25638            None
25639        }
25640    }
25641    #[inline]
25642    fn syntax(&self) -> &SyntaxNode {
25643        &self.syntax
25644    }
25645}
25646impl AstNode for CreateUserMapping {
25647    #[inline]
25648    fn can_cast(kind: SyntaxKind) -> bool {
25649        kind == SyntaxKind::CREATE_USER_MAPPING
25650    }
25651    #[inline]
25652    fn cast(syntax: SyntaxNode) -> Option<Self> {
25653        if Self::can_cast(syntax.kind()) {
25654            Some(Self { syntax })
25655        } else {
25656            None
25657        }
25658    }
25659    #[inline]
25660    fn syntax(&self) -> &SyntaxNode {
25661        &self.syntax
25662    }
25663}
25664impl AstNode for CreateView {
25665    #[inline]
25666    fn can_cast(kind: SyntaxKind) -> bool {
25667        kind == SyntaxKind::CREATE_VIEW
25668    }
25669    #[inline]
25670    fn cast(syntax: SyntaxNode) -> Option<Self> {
25671        if Self::can_cast(syntax.kind()) {
25672            Some(Self { syntax })
25673        } else {
25674            None
25675        }
25676    }
25677    #[inline]
25678    fn syntax(&self) -> &SyntaxNode {
25679        &self.syntax
25680    }
25681}
25682impl AstNode for CurrentRow {
25683    #[inline]
25684    fn can_cast(kind: SyntaxKind) -> bool {
25685        kind == SyntaxKind::CURRENT_ROW
25686    }
25687    #[inline]
25688    fn cast(syntax: SyntaxNode) -> Option<Self> {
25689        if Self::can_cast(syntax.kind()) {
25690            Some(Self { syntax })
25691        } else {
25692            None
25693        }
25694    }
25695    #[inline]
25696    fn syntax(&self) -> &SyntaxNode {
25697        &self.syntax
25698    }
25699}
25700impl AstNode for CustomOp {
25701    #[inline]
25702    fn can_cast(kind: SyntaxKind) -> bool {
25703        kind == SyntaxKind::CUSTOM_OP
25704    }
25705    #[inline]
25706    fn cast(syntax: SyntaxNode) -> Option<Self> {
25707        if Self::can_cast(syntax.kind()) {
25708            Some(Self { syntax })
25709        } else {
25710            None
25711        }
25712    }
25713    #[inline]
25714    fn syntax(&self) -> &SyntaxNode {
25715        &self.syntax
25716    }
25717}
25718impl AstNode for CycleClause {
25719    #[inline]
25720    fn can_cast(kind: SyntaxKind) -> bool {
25721        kind == SyntaxKind::CYCLE_CLAUSE
25722    }
25723    #[inline]
25724    fn cast(syntax: SyntaxNode) -> Option<Self> {
25725        if Self::can_cast(syntax.kind()) {
25726            Some(Self { syntax })
25727        } else {
25728            None
25729        }
25730    }
25731    #[inline]
25732    fn syntax(&self) -> &SyntaxNode {
25733        &self.syntax
25734    }
25735}
25736impl AstNode for CycleColumnTo {
25737    #[inline]
25738    fn can_cast(kind: SyntaxKind) -> bool {
25739        kind == SyntaxKind::CYCLE_COLUMN_TO
25740    }
25741    #[inline]
25742    fn cast(syntax: SyntaxNode) -> Option<Self> {
25743        if Self::can_cast(syntax.kind()) {
25744            Some(Self { syntax })
25745        } else {
25746            None
25747        }
25748    }
25749    #[inline]
25750    fn syntax(&self) -> &SyntaxNode {
25751        &self.syntax
25752    }
25753}
25754impl AstNode for CycleColumns {
25755    #[inline]
25756    fn can_cast(kind: SyntaxKind) -> bool {
25757        kind == SyntaxKind::CYCLE_COLUMNS
25758    }
25759    #[inline]
25760    fn cast(syntax: SyntaxNode) -> Option<Self> {
25761        if Self::can_cast(syntax.kind()) {
25762            Some(Self { syntax })
25763        } else {
25764            None
25765        }
25766    }
25767    #[inline]
25768    fn syntax(&self) -> &SyntaxNode {
25769        &self.syntax
25770    }
25771}
25772impl AstNode for CycleDefault {
25773    #[inline]
25774    fn can_cast(kind: SyntaxKind) -> bool {
25775        kind == SyntaxKind::CYCLE_DEFAULT
25776    }
25777    #[inline]
25778    fn cast(syntax: SyntaxNode) -> Option<Self> {
25779        if Self::can_cast(syntax.kind()) {
25780            Some(Self { syntax })
25781        } else {
25782            None
25783        }
25784    }
25785    #[inline]
25786    fn syntax(&self) -> &SyntaxNode {
25787        &self.syntax
25788    }
25789}
25790impl AstNode for CyclePath {
25791    #[inline]
25792    fn can_cast(kind: SyntaxKind) -> bool {
25793        kind == SyntaxKind::CYCLE_PATH
25794    }
25795    #[inline]
25796    fn cast(syntax: SyntaxNode) -> Option<Self> {
25797        if Self::can_cast(syntax.kind()) {
25798            Some(Self { syntax })
25799        } else {
25800            None
25801        }
25802    }
25803    #[inline]
25804    fn syntax(&self) -> &SyntaxNode {
25805        &self.syntax
25806    }
25807}
25808impl AstNode for CycleSetColumn {
25809    #[inline]
25810    fn can_cast(kind: SyntaxKind) -> bool {
25811        kind == SyntaxKind::CYCLE_SET_COLUMN
25812    }
25813    #[inline]
25814    fn cast(syntax: SyntaxNode) -> Option<Self> {
25815        if Self::can_cast(syntax.kind()) {
25816            Some(Self { syntax })
25817        } else {
25818            None
25819        }
25820    }
25821    #[inline]
25822    fn syntax(&self) -> &SyntaxNode {
25823        &self.syntax
25824    }
25825}
25826impl AstNode for DatabaseOption {
25827    #[inline]
25828    fn can_cast(kind: SyntaxKind) -> bool {
25829        kind == SyntaxKind::DATABASE_OPTION
25830    }
25831    #[inline]
25832    fn cast(syntax: SyntaxNode) -> Option<Self> {
25833        if Self::can_cast(syntax.kind()) {
25834            Some(Self { syntax })
25835        } else {
25836            None
25837        }
25838    }
25839    #[inline]
25840    fn syntax(&self) -> &SyntaxNode {
25841        &self.syntax
25842    }
25843}
25844impl AstNode for DatabaseOptionList {
25845    #[inline]
25846    fn can_cast(kind: SyntaxKind) -> bool {
25847        kind == SyntaxKind::DATABASE_OPTION_LIST
25848    }
25849    #[inline]
25850    fn cast(syntax: SyntaxNode) -> Option<Self> {
25851        if Self::can_cast(syntax.kind()) {
25852            Some(Self { syntax })
25853        } else {
25854            None
25855        }
25856    }
25857    #[inline]
25858    fn syntax(&self) -> &SyntaxNode {
25859        &self.syntax
25860    }
25861}
25862impl AstNode for Deallocate {
25863    #[inline]
25864    fn can_cast(kind: SyntaxKind) -> bool {
25865        kind == SyntaxKind::DEALLOCATE
25866    }
25867    #[inline]
25868    fn cast(syntax: SyntaxNode) -> Option<Self> {
25869        if Self::can_cast(syntax.kind()) {
25870            Some(Self { syntax })
25871        } else {
25872            None
25873        }
25874    }
25875    #[inline]
25876    fn syntax(&self) -> &SyntaxNode {
25877        &self.syntax
25878    }
25879}
25880impl AstNode for Declare {
25881    #[inline]
25882    fn can_cast(kind: SyntaxKind) -> bool {
25883        kind == SyntaxKind::DECLARE
25884    }
25885    #[inline]
25886    fn cast(syntax: SyntaxNode) -> Option<Self> {
25887        if Self::can_cast(syntax.kind()) {
25888            Some(Self { syntax })
25889        } else {
25890            None
25891        }
25892    }
25893    #[inline]
25894    fn syntax(&self) -> &SyntaxNode {
25895        &self.syntax
25896    }
25897}
25898impl AstNode for DefaultConstraint {
25899    #[inline]
25900    fn can_cast(kind: SyntaxKind) -> bool {
25901        kind == SyntaxKind::DEFAULT_CONSTRAINT
25902    }
25903    #[inline]
25904    fn cast(syntax: SyntaxNode) -> Option<Self> {
25905        if Self::can_cast(syntax.kind()) {
25906            Some(Self { syntax })
25907        } else {
25908            None
25909        }
25910    }
25911    #[inline]
25912    fn syntax(&self) -> &SyntaxNode {
25913        &self.syntax
25914    }
25915}
25916impl AstNode for Deferrable {
25917    #[inline]
25918    fn can_cast(kind: SyntaxKind) -> bool {
25919        kind == SyntaxKind::DEFERRABLE
25920    }
25921    #[inline]
25922    fn cast(syntax: SyntaxNode) -> Option<Self> {
25923        if Self::can_cast(syntax.kind()) {
25924            Some(Self { syntax })
25925        } else {
25926            None
25927        }
25928    }
25929    #[inline]
25930    fn syntax(&self) -> &SyntaxNode {
25931        &self.syntax
25932    }
25933}
25934impl AstNode for DeferrableConstraintOption {
25935    #[inline]
25936    fn can_cast(kind: SyntaxKind) -> bool {
25937        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
25938    }
25939    #[inline]
25940    fn cast(syntax: SyntaxNode) -> Option<Self> {
25941        if Self::can_cast(syntax.kind()) {
25942            Some(Self { syntax })
25943        } else {
25944            None
25945        }
25946    }
25947    #[inline]
25948    fn syntax(&self) -> &SyntaxNode {
25949        &self.syntax
25950    }
25951}
25952impl AstNode for Delete {
25953    #[inline]
25954    fn can_cast(kind: SyntaxKind) -> bool {
25955        kind == SyntaxKind::DELETE
25956    }
25957    #[inline]
25958    fn cast(syntax: SyntaxNode) -> Option<Self> {
25959        if Self::can_cast(syntax.kind()) {
25960            Some(Self { syntax })
25961        } else {
25962            None
25963        }
25964    }
25965    #[inline]
25966    fn syntax(&self) -> &SyntaxNode {
25967        &self.syntax
25968    }
25969}
25970impl AstNode for DeleteRows {
25971    #[inline]
25972    fn can_cast(kind: SyntaxKind) -> bool {
25973        kind == SyntaxKind::DELETE_ROWS
25974    }
25975    #[inline]
25976    fn cast(syntax: SyntaxNode) -> Option<Self> {
25977        if Self::can_cast(syntax.kind()) {
25978            Some(Self { syntax })
25979        } else {
25980            None
25981        }
25982    }
25983    #[inline]
25984    fn syntax(&self) -> &SyntaxNode {
25985        &self.syntax
25986    }
25987}
25988impl AstNode for DependsOnExtension {
25989    #[inline]
25990    fn can_cast(kind: SyntaxKind) -> bool {
25991        kind == SyntaxKind::DEPENDS_ON_EXTENSION
25992    }
25993    #[inline]
25994    fn cast(syntax: SyntaxNode) -> Option<Self> {
25995        if Self::can_cast(syntax.kind()) {
25996            Some(Self { syntax })
25997        } else {
25998            None
25999        }
26000    }
26001    #[inline]
26002    fn syntax(&self) -> &SyntaxNode {
26003        &self.syntax
26004    }
26005}
26006impl AstNode for DestVertexTable {
26007    #[inline]
26008    fn can_cast(kind: SyntaxKind) -> bool {
26009        kind == SyntaxKind::DEST_VERTEX_TABLE
26010    }
26011    #[inline]
26012    fn cast(syntax: SyntaxNode) -> Option<Self> {
26013        if Self::can_cast(syntax.kind()) {
26014            Some(Self { syntax })
26015        } else {
26016            None
26017        }
26018    }
26019    #[inline]
26020    fn syntax(&self) -> &SyntaxNode {
26021        &self.syntax
26022    }
26023}
26024impl AstNode for DetachPartition {
26025    #[inline]
26026    fn can_cast(kind: SyntaxKind) -> bool {
26027        kind == SyntaxKind::DETACH_PARTITION
26028    }
26029    #[inline]
26030    fn cast(syntax: SyntaxNode) -> Option<Self> {
26031        if Self::can_cast(syntax.kind()) {
26032            Some(Self { syntax })
26033        } else {
26034            None
26035        }
26036    }
26037    #[inline]
26038    fn syntax(&self) -> &SyntaxNode {
26039        &self.syntax
26040    }
26041}
26042impl AstNode for DisableRls {
26043    #[inline]
26044    fn can_cast(kind: SyntaxKind) -> bool {
26045        kind == SyntaxKind::DISABLE_RLS
26046    }
26047    #[inline]
26048    fn cast(syntax: SyntaxNode) -> Option<Self> {
26049        if Self::can_cast(syntax.kind()) {
26050            Some(Self { syntax })
26051        } else {
26052            None
26053        }
26054    }
26055    #[inline]
26056    fn syntax(&self) -> &SyntaxNode {
26057        &self.syntax
26058    }
26059}
26060impl AstNode for DisableRule {
26061    #[inline]
26062    fn can_cast(kind: SyntaxKind) -> bool {
26063        kind == SyntaxKind::DISABLE_RULE
26064    }
26065    #[inline]
26066    fn cast(syntax: SyntaxNode) -> Option<Self> {
26067        if Self::can_cast(syntax.kind()) {
26068            Some(Self { syntax })
26069        } else {
26070            None
26071        }
26072    }
26073    #[inline]
26074    fn syntax(&self) -> &SyntaxNode {
26075        &self.syntax
26076    }
26077}
26078impl AstNode for DisableTrigger {
26079    #[inline]
26080    fn can_cast(kind: SyntaxKind) -> bool {
26081        kind == SyntaxKind::DISABLE_TRIGGER
26082    }
26083    #[inline]
26084    fn cast(syntax: SyntaxNode) -> Option<Self> {
26085        if Self::can_cast(syntax.kind()) {
26086            Some(Self { syntax })
26087        } else {
26088            None
26089        }
26090    }
26091    #[inline]
26092    fn syntax(&self) -> &SyntaxNode {
26093        &self.syntax
26094    }
26095}
26096impl AstNode for Discard {
26097    #[inline]
26098    fn can_cast(kind: SyntaxKind) -> bool {
26099        kind == SyntaxKind::DISCARD
26100    }
26101    #[inline]
26102    fn cast(syntax: SyntaxNode) -> Option<Self> {
26103        if Self::can_cast(syntax.kind()) {
26104            Some(Self { syntax })
26105        } else {
26106            None
26107        }
26108    }
26109    #[inline]
26110    fn syntax(&self) -> &SyntaxNode {
26111        &self.syntax
26112    }
26113}
26114impl AstNode for DistinctClause {
26115    #[inline]
26116    fn can_cast(kind: SyntaxKind) -> bool {
26117        kind == SyntaxKind::DISTINCT_CLAUSE
26118    }
26119    #[inline]
26120    fn cast(syntax: SyntaxNode) -> Option<Self> {
26121        if Self::can_cast(syntax.kind()) {
26122            Some(Self { syntax })
26123        } else {
26124            None
26125        }
26126    }
26127    #[inline]
26128    fn syntax(&self) -> &SyntaxNode {
26129        &self.syntax
26130    }
26131}
26132impl AstNode for Do {
26133    #[inline]
26134    fn can_cast(kind: SyntaxKind) -> bool {
26135        kind == SyntaxKind::DO
26136    }
26137    #[inline]
26138    fn cast(syntax: SyntaxNode) -> Option<Self> {
26139        if Self::can_cast(syntax.kind()) {
26140            Some(Self { syntax })
26141        } else {
26142            None
26143        }
26144    }
26145    #[inline]
26146    fn syntax(&self) -> &SyntaxNode {
26147        &self.syntax
26148    }
26149}
26150impl AstNode for DoubleType {
26151    #[inline]
26152    fn can_cast(kind: SyntaxKind) -> bool {
26153        kind == SyntaxKind::DOUBLE_TYPE
26154    }
26155    #[inline]
26156    fn cast(syntax: SyntaxNode) -> Option<Self> {
26157        if Self::can_cast(syntax.kind()) {
26158            Some(Self { syntax })
26159        } else {
26160            None
26161        }
26162    }
26163    #[inline]
26164    fn syntax(&self) -> &SyntaxNode {
26165        &self.syntax
26166    }
26167}
26168impl AstNode for Drop {
26169    #[inline]
26170    fn can_cast(kind: SyntaxKind) -> bool {
26171        kind == SyntaxKind::DROP
26172    }
26173    #[inline]
26174    fn cast(syntax: SyntaxNode) -> Option<Self> {
26175        if Self::can_cast(syntax.kind()) {
26176            Some(Self { syntax })
26177        } else {
26178            None
26179        }
26180    }
26181    #[inline]
26182    fn syntax(&self) -> &SyntaxNode {
26183        &self.syntax
26184    }
26185}
26186impl AstNode for DropAccessMethod {
26187    #[inline]
26188    fn can_cast(kind: SyntaxKind) -> bool {
26189        kind == SyntaxKind::DROP_ACCESS_METHOD
26190    }
26191    #[inline]
26192    fn cast(syntax: SyntaxNode) -> Option<Self> {
26193        if Self::can_cast(syntax.kind()) {
26194            Some(Self { syntax })
26195        } else {
26196            None
26197        }
26198    }
26199    #[inline]
26200    fn syntax(&self) -> &SyntaxNode {
26201        &self.syntax
26202    }
26203}
26204impl AstNode for DropAggregate {
26205    #[inline]
26206    fn can_cast(kind: SyntaxKind) -> bool {
26207        kind == SyntaxKind::DROP_AGGREGATE
26208    }
26209    #[inline]
26210    fn cast(syntax: SyntaxNode) -> Option<Self> {
26211        if Self::can_cast(syntax.kind()) {
26212            Some(Self { syntax })
26213        } else {
26214            None
26215        }
26216    }
26217    #[inline]
26218    fn syntax(&self) -> &SyntaxNode {
26219        &self.syntax
26220    }
26221}
26222impl AstNode for DropAttribute {
26223    #[inline]
26224    fn can_cast(kind: SyntaxKind) -> bool {
26225        kind == SyntaxKind::DROP_ATTRIBUTE
26226    }
26227    #[inline]
26228    fn cast(syntax: SyntaxNode) -> Option<Self> {
26229        if Self::can_cast(syntax.kind()) {
26230            Some(Self { syntax })
26231        } else {
26232            None
26233        }
26234    }
26235    #[inline]
26236    fn syntax(&self) -> &SyntaxNode {
26237        &self.syntax
26238    }
26239}
26240impl AstNode for DropCast {
26241    #[inline]
26242    fn can_cast(kind: SyntaxKind) -> bool {
26243        kind == SyntaxKind::DROP_CAST
26244    }
26245    #[inline]
26246    fn cast(syntax: SyntaxNode) -> Option<Self> {
26247        if Self::can_cast(syntax.kind()) {
26248            Some(Self { syntax })
26249        } else {
26250            None
26251        }
26252    }
26253    #[inline]
26254    fn syntax(&self) -> &SyntaxNode {
26255        &self.syntax
26256    }
26257}
26258impl AstNode for DropCollation {
26259    #[inline]
26260    fn can_cast(kind: SyntaxKind) -> bool {
26261        kind == SyntaxKind::DROP_COLLATION
26262    }
26263    #[inline]
26264    fn cast(syntax: SyntaxNode) -> Option<Self> {
26265        if Self::can_cast(syntax.kind()) {
26266            Some(Self { syntax })
26267        } else {
26268            None
26269        }
26270    }
26271    #[inline]
26272    fn syntax(&self) -> &SyntaxNode {
26273        &self.syntax
26274    }
26275}
26276impl AstNode for DropColumn {
26277    #[inline]
26278    fn can_cast(kind: SyntaxKind) -> bool {
26279        kind == SyntaxKind::DROP_COLUMN
26280    }
26281    #[inline]
26282    fn cast(syntax: SyntaxNode) -> Option<Self> {
26283        if Self::can_cast(syntax.kind()) {
26284            Some(Self { syntax })
26285        } else {
26286            None
26287        }
26288    }
26289    #[inline]
26290    fn syntax(&self) -> &SyntaxNode {
26291        &self.syntax
26292    }
26293}
26294impl AstNode for DropConstraint {
26295    #[inline]
26296    fn can_cast(kind: SyntaxKind) -> bool {
26297        kind == SyntaxKind::DROP_CONSTRAINT
26298    }
26299    #[inline]
26300    fn cast(syntax: SyntaxNode) -> Option<Self> {
26301        if Self::can_cast(syntax.kind()) {
26302            Some(Self { syntax })
26303        } else {
26304            None
26305        }
26306    }
26307    #[inline]
26308    fn syntax(&self) -> &SyntaxNode {
26309        &self.syntax
26310    }
26311}
26312impl AstNode for DropConversion {
26313    #[inline]
26314    fn can_cast(kind: SyntaxKind) -> bool {
26315        kind == SyntaxKind::DROP_CONVERSION
26316    }
26317    #[inline]
26318    fn cast(syntax: SyntaxNode) -> Option<Self> {
26319        if Self::can_cast(syntax.kind()) {
26320            Some(Self { syntax })
26321        } else {
26322            None
26323        }
26324    }
26325    #[inline]
26326    fn syntax(&self) -> &SyntaxNode {
26327        &self.syntax
26328    }
26329}
26330impl AstNode for DropDatabase {
26331    #[inline]
26332    fn can_cast(kind: SyntaxKind) -> bool {
26333        kind == SyntaxKind::DROP_DATABASE
26334    }
26335    #[inline]
26336    fn cast(syntax: SyntaxNode) -> Option<Self> {
26337        if Self::can_cast(syntax.kind()) {
26338            Some(Self { syntax })
26339        } else {
26340            None
26341        }
26342    }
26343    #[inline]
26344    fn syntax(&self) -> &SyntaxNode {
26345        &self.syntax
26346    }
26347}
26348impl AstNode for DropDefault {
26349    #[inline]
26350    fn can_cast(kind: SyntaxKind) -> bool {
26351        kind == SyntaxKind::DROP_DEFAULT
26352    }
26353    #[inline]
26354    fn cast(syntax: SyntaxNode) -> Option<Self> {
26355        if Self::can_cast(syntax.kind()) {
26356            Some(Self { syntax })
26357        } else {
26358            None
26359        }
26360    }
26361    #[inline]
26362    fn syntax(&self) -> &SyntaxNode {
26363        &self.syntax
26364    }
26365}
26366impl AstNode for DropDomain {
26367    #[inline]
26368    fn can_cast(kind: SyntaxKind) -> bool {
26369        kind == SyntaxKind::DROP_DOMAIN
26370    }
26371    #[inline]
26372    fn cast(syntax: SyntaxNode) -> Option<Self> {
26373        if Self::can_cast(syntax.kind()) {
26374            Some(Self { syntax })
26375        } else {
26376            None
26377        }
26378    }
26379    #[inline]
26380    fn syntax(&self) -> &SyntaxNode {
26381        &self.syntax
26382    }
26383}
26384impl AstNode for DropEdgeTables {
26385    #[inline]
26386    fn can_cast(kind: SyntaxKind) -> bool {
26387        kind == SyntaxKind::DROP_EDGE_TABLES
26388    }
26389    #[inline]
26390    fn cast(syntax: SyntaxNode) -> Option<Self> {
26391        if Self::can_cast(syntax.kind()) {
26392            Some(Self { syntax })
26393        } else {
26394            None
26395        }
26396    }
26397    #[inline]
26398    fn syntax(&self) -> &SyntaxNode {
26399        &self.syntax
26400    }
26401}
26402impl AstNode for DropEventTrigger {
26403    #[inline]
26404    fn can_cast(kind: SyntaxKind) -> bool {
26405        kind == SyntaxKind::DROP_EVENT_TRIGGER
26406    }
26407    #[inline]
26408    fn cast(syntax: SyntaxNode) -> Option<Self> {
26409        if Self::can_cast(syntax.kind()) {
26410            Some(Self { syntax })
26411        } else {
26412            None
26413        }
26414    }
26415    #[inline]
26416    fn syntax(&self) -> &SyntaxNode {
26417        &self.syntax
26418    }
26419}
26420impl AstNode for DropExpression {
26421    #[inline]
26422    fn can_cast(kind: SyntaxKind) -> bool {
26423        kind == SyntaxKind::DROP_EXPRESSION
26424    }
26425    #[inline]
26426    fn cast(syntax: SyntaxNode) -> Option<Self> {
26427        if Self::can_cast(syntax.kind()) {
26428            Some(Self { syntax })
26429        } else {
26430            None
26431        }
26432    }
26433    #[inline]
26434    fn syntax(&self) -> &SyntaxNode {
26435        &self.syntax
26436    }
26437}
26438impl AstNode for DropExtension {
26439    #[inline]
26440    fn can_cast(kind: SyntaxKind) -> bool {
26441        kind == SyntaxKind::DROP_EXTENSION
26442    }
26443    #[inline]
26444    fn cast(syntax: SyntaxNode) -> Option<Self> {
26445        if Self::can_cast(syntax.kind()) {
26446            Some(Self { syntax })
26447        } else {
26448            None
26449        }
26450    }
26451    #[inline]
26452    fn syntax(&self) -> &SyntaxNode {
26453        &self.syntax
26454    }
26455}
26456impl AstNode for DropForeignDataWrapper {
26457    #[inline]
26458    fn can_cast(kind: SyntaxKind) -> bool {
26459        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
26460    }
26461    #[inline]
26462    fn cast(syntax: SyntaxNode) -> Option<Self> {
26463        if Self::can_cast(syntax.kind()) {
26464            Some(Self { syntax })
26465        } else {
26466            None
26467        }
26468    }
26469    #[inline]
26470    fn syntax(&self) -> &SyntaxNode {
26471        &self.syntax
26472    }
26473}
26474impl AstNode for DropForeignTable {
26475    #[inline]
26476    fn can_cast(kind: SyntaxKind) -> bool {
26477        kind == SyntaxKind::DROP_FOREIGN_TABLE
26478    }
26479    #[inline]
26480    fn cast(syntax: SyntaxNode) -> Option<Self> {
26481        if Self::can_cast(syntax.kind()) {
26482            Some(Self { syntax })
26483        } else {
26484            None
26485        }
26486    }
26487    #[inline]
26488    fn syntax(&self) -> &SyntaxNode {
26489        &self.syntax
26490    }
26491}
26492impl AstNode for DropFunction {
26493    #[inline]
26494    fn can_cast(kind: SyntaxKind) -> bool {
26495        kind == SyntaxKind::DROP_FUNCTION
26496    }
26497    #[inline]
26498    fn cast(syntax: SyntaxNode) -> Option<Self> {
26499        if Self::can_cast(syntax.kind()) {
26500            Some(Self { syntax })
26501        } else {
26502            None
26503        }
26504    }
26505    #[inline]
26506    fn syntax(&self) -> &SyntaxNode {
26507        &self.syntax
26508    }
26509}
26510impl AstNode for DropGroup {
26511    #[inline]
26512    fn can_cast(kind: SyntaxKind) -> bool {
26513        kind == SyntaxKind::DROP_GROUP
26514    }
26515    #[inline]
26516    fn cast(syntax: SyntaxNode) -> Option<Self> {
26517        if Self::can_cast(syntax.kind()) {
26518            Some(Self { syntax })
26519        } else {
26520            None
26521        }
26522    }
26523    #[inline]
26524    fn syntax(&self) -> &SyntaxNode {
26525        &self.syntax
26526    }
26527}
26528impl AstNode for DropIdentity {
26529    #[inline]
26530    fn can_cast(kind: SyntaxKind) -> bool {
26531        kind == SyntaxKind::DROP_IDENTITY
26532    }
26533    #[inline]
26534    fn cast(syntax: SyntaxNode) -> Option<Self> {
26535        if Self::can_cast(syntax.kind()) {
26536            Some(Self { syntax })
26537        } else {
26538            None
26539        }
26540    }
26541    #[inline]
26542    fn syntax(&self) -> &SyntaxNode {
26543        &self.syntax
26544    }
26545}
26546impl AstNode for DropIndex {
26547    #[inline]
26548    fn can_cast(kind: SyntaxKind) -> bool {
26549        kind == SyntaxKind::DROP_INDEX
26550    }
26551    #[inline]
26552    fn cast(syntax: SyntaxNode) -> Option<Self> {
26553        if Self::can_cast(syntax.kind()) {
26554            Some(Self { syntax })
26555        } else {
26556            None
26557        }
26558    }
26559    #[inline]
26560    fn syntax(&self) -> &SyntaxNode {
26561        &self.syntax
26562    }
26563}
26564impl AstNode for DropLanguage {
26565    #[inline]
26566    fn can_cast(kind: SyntaxKind) -> bool {
26567        kind == SyntaxKind::DROP_LANGUAGE
26568    }
26569    #[inline]
26570    fn cast(syntax: SyntaxNode) -> Option<Self> {
26571        if Self::can_cast(syntax.kind()) {
26572            Some(Self { syntax })
26573        } else {
26574            None
26575        }
26576    }
26577    #[inline]
26578    fn syntax(&self) -> &SyntaxNode {
26579        &self.syntax
26580    }
26581}
26582impl AstNode for DropMaterializedView {
26583    #[inline]
26584    fn can_cast(kind: SyntaxKind) -> bool {
26585        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
26586    }
26587    #[inline]
26588    fn cast(syntax: SyntaxNode) -> Option<Self> {
26589        if Self::can_cast(syntax.kind()) {
26590            Some(Self { syntax })
26591        } else {
26592            None
26593        }
26594    }
26595    #[inline]
26596    fn syntax(&self) -> &SyntaxNode {
26597        &self.syntax
26598    }
26599}
26600impl AstNode for DropNotNull {
26601    #[inline]
26602    fn can_cast(kind: SyntaxKind) -> bool {
26603        kind == SyntaxKind::DROP_NOT_NULL
26604    }
26605    #[inline]
26606    fn cast(syntax: SyntaxNode) -> Option<Self> {
26607        if Self::can_cast(syntax.kind()) {
26608            Some(Self { syntax })
26609        } else {
26610            None
26611        }
26612    }
26613    #[inline]
26614    fn syntax(&self) -> &SyntaxNode {
26615        &self.syntax
26616    }
26617}
26618impl AstNode for DropOpClassOption {
26619    #[inline]
26620    fn can_cast(kind: SyntaxKind) -> bool {
26621        kind == SyntaxKind::DROP_OP_CLASS_OPTION
26622    }
26623    #[inline]
26624    fn cast(syntax: SyntaxNode) -> Option<Self> {
26625        if Self::can_cast(syntax.kind()) {
26626            Some(Self { syntax })
26627        } else {
26628            None
26629        }
26630    }
26631    #[inline]
26632    fn syntax(&self) -> &SyntaxNode {
26633        &self.syntax
26634    }
26635}
26636impl AstNode for DropOpClassOptionList {
26637    #[inline]
26638    fn can_cast(kind: SyntaxKind) -> bool {
26639        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
26640    }
26641    #[inline]
26642    fn cast(syntax: SyntaxNode) -> Option<Self> {
26643        if Self::can_cast(syntax.kind()) {
26644            Some(Self { syntax })
26645        } else {
26646            None
26647        }
26648    }
26649    #[inline]
26650    fn syntax(&self) -> &SyntaxNode {
26651        &self.syntax
26652    }
26653}
26654impl AstNode for DropOpClassOptions {
26655    #[inline]
26656    fn can_cast(kind: SyntaxKind) -> bool {
26657        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
26658    }
26659    #[inline]
26660    fn cast(syntax: SyntaxNode) -> Option<Self> {
26661        if Self::can_cast(syntax.kind()) {
26662            Some(Self { syntax })
26663        } else {
26664            None
26665        }
26666    }
26667    #[inline]
26668    fn syntax(&self) -> &SyntaxNode {
26669        &self.syntax
26670    }
26671}
26672impl AstNode for DropOperator {
26673    #[inline]
26674    fn can_cast(kind: SyntaxKind) -> bool {
26675        kind == SyntaxKind::DROP_OPERATOR
26676    }
26677    #[inline]
26678    fn cast(syntax: SyntaxNode) -> Option<Self> {
26679        if Self::can_cast(syntax.kind()) {
26680            Some(Self { syntax })
26681        } else {
26682            None
26683        }
26684    }
26685    #[inline]
26686    fn syntax(&self) -> &SyntaxNode {
26687        &self.syntax
26688    }
26689}
26690impl AstNode for DropOperatorClass {
26691    #[inline]
26692    fn can_cast(kind: SyntaxKind) -> bool {
26693        kind == SyntaxKind::DROP_OPERATOR_CLASS
26694    }
26695    #[inline]
26696    fn cast(syntax: SyntaxNode) -> Option<Self> {
26697        if Self::can_cast(syntax.kind()) {
26698            Some(Self { syntax })
26699        } else {
26700            None
26701        }
26702    }
26703    #[inline]
26704    fn syntax(&self) -> &SyntaxNode {
26705        &self.syntax
26706    }
26707}
26708impl AstNode for DropOperatorFamily {
26709    #[inline]
26710    fn can_cast(kind: SyntaxKind) -> bool {
26711        kind == SyntaxKind::DROP_OPERATOR_FAMILY
26712    }
26713    #[inline]
26714    fn cast(syntax: SyntaxNode) -> Option<Self> {
26715        if Self::can_cast(syntax.kind()) {
26716            Some(Self { syntax })
26717        } else {
26718            None
26719        }
26720    }
26721    #[inline]
26722    fn syntax(&self) -> &SyntaxNode {
26723        &self.syntax
26724    }
26725}
26726impl AstNode for DropOwned {
26727    #[inline]
26728    fn can_cast(kind: SyntaxKind) -> bool {
26729        kind == SyntaxKind::DROP_OWNED
26730    }
26731    #[inline]
26732    fn cast(syntax: SyntaxNode) -> Option<Self> {
26733        if Self::can_cast(syntax.kind()) {
26734            Some(Self { syntax })
26735        } else {
26736            None
26737        }
26738    }
26739    #[inline]
26740    fn syntax(&self) -> &SyntaxNode {
26741        &self.syntax
26742    }
26743}
26744impl AstNode for DropPolicy {
26745    #[inline]
26746    fn can_cast(kind: SyntaxKind) -> bool {
26747        kind == SyntaxKind::DROP_POLICY
26748    }
26749    #[inline]
26750    fn cast(syntax: SyntaxNode) -> Option<Self> {
26751        if Self::can_cast(syntax.kind()) {
26752            Some(Self { syntax })
26753        } else {
26754            None
26755        }
26756    }
26757    #[inline]
26758    fn syntax(&self) -> &SyntaxNode {
26759        &self.syntax
26760    }
26761}
26762impl AstNode for DropProcedure {
26763    #[inline]
26764    fn can_cast(kind: SyntaxKind) -> bool {
26765        kind == SyntaxKind::DROP_PROCEDURE
26766    }
26767    #[inline]
26768    fn cast(syntax: SyntaxNode) -> Option<Self> {
26769        if Self::can_cast(syntax.kind()) {
26770            Some(Self { syntax })
26771        } else {
26772            None
26773        }
26774    }
26775    #[inline]
26776    fn syntax(&self) -> &SyntaxNode {
26777        &self.syntax
26778    }
26779}
26780impl AstNode for DropPropertyGraph {
26781    #[inline]
26782    fn can_cast(kind: SyntaxKind) -> bool {
26783        kind == SyntaxKind::DROP_PROPERTY_GRAPH
26784    }
26785    #[inline]
26786    fn cast(syntax: SyntaxNode) -> Option<Self> {
26787        if Self::can_cast(syntax.kind()) {
26788            Some(Self { syntax })
26789        } else {
26790            None
26791        }
26792    }
26793    #[inline]
26794    fn syntax(&self) -> &SyntaxNode {
26795        &self.syntax
26796    }
26797}
26798impl AstNode for DropPublication {
26799    #[inline]
26800    fn can_cast(kind: SyntaxKind) -> bool {
26801        kind == SyntaxKind::DROP_PUBLICATION
26802    }
26803    #[inline]
26804    fn cast(syntax: SyntaxNode) -> Option<Self> {
26805        if Self::can_cast(syntax.kind()) {
26806            Some(Self { syntax })
26807        } else {
26808            None
26809        }
26810    }
26811    #[inline]
26812    fn syntax(&self) -> &SyntaxNode {
26813        &self.syntax
26814    }
26815}
26816impl AstNode for DropRole {
26817    #[inline]
26818    fn can_cast(kind: SyntaxKind) -> bool {
26819        kind == SyntaxKind::DROP_ROLE
26820    }
26821    #[inline]
26822    fn cast(syntax: SyntaxNode) -> Option<Self> {
26823        if Self::can_cast(syntax.kind()) {
26824            Some(Self { syntax })
26825        } else {
26826            None
26827        }
26828    }
26829    #[inline]
26830    fn syntax(&self) -> &SyntaxNode {
26831        &self.syntax
26832    }
26833}
26834impl AstNode for DropRoutine {
26835    #[inline]
26836    fn can_cast(kind: SyntaxKind) -> bool {
26837        kind == SyntaxKind::DROP_ROUTINE
26838    }
26839    #[inline]
26840    fn cast(syntax: SyntaxNode) -> Option<Self> {
26841        if Self::can_cast(syntax.kind()) {
26842            Some(Self { syntax })
26843        } else {
26844            None
26845        }
26846    }
26847    #[inline]
26848    fn syntax(&self) -> &SyntaxNode {
26849        &self.syntax
26850    }
26851}
26852impl AstNode for DropRule {
26853    #[inline]
26854    fn can_cast(kind: SyntaxKind) -> bool {
26855        kind == SyntaxKind::DROP_RULE
26856    }
26857    #[inline]
26858    fn cast(syntax: SyntaxNode) -> Option<Self> {
26859        if Self::can_cast(syntax.kind()) {
26860            Some(Self { syntax })
26861        } else {
26862            None
26863        }
26864    }
26865    #[inline]
26866    fn syntax(&self) -> &SyntaxNode {
26867        &self.syntax
26868    }
26869}
26870impl AstNode for DropSchema {
26871    #[inline]
26872    fn can_cast(kind: SyntaxKind) -> bool {
26873        kind == SyntaxKind::DROP_SCHEMA
26874    }
26875    #[inline]
26876    fn cast(syntax: SyntaxNode) -> Option<Self> {
26877        if Self::can_cast(syntax.kind()) {
26878            Some(Self { syntax })
26879        } else {
26880            None
26881        }
26882    }
26883    #[inline]
26884    fn syntax(&self) -> &SyntaxNode {
26885        &self.syntax
26886    }
26887}
26888impl AstNode for DropSequence {
26889    #[inline]
26890    fn can_cast(kind: SyntaxKind) -> bool {
26891        kind == SyntaxKind::DROP_SEQUENCE
26892    }
26893    #[inline]
26894    fn cast(syntax: SyntaxNode) -> Option<Self> {
26895        if Self::can_cast(syntax.kind()) {
26896            Some(Self { syntax })
26897        } else {
26898            None
26899        }
26900    }
26901    #[inline]
26902    fn syntax(&self) -> &SyntaxNode {
26903        &self.syntax
26904    }
26905}
26906impl AstNode for DropServer {
26907    #[inline]
26908    fn can_cast(kind: SyntaxKind) -> bool {
26909        kind == SyntaxKind::DROP_SERVER
26910    }
26911    #[inline]
26912    fn cast(syntax: SyntaxNode) -> Option<Self> {
26913        if Self::can_cast(syntax.kind()) {
26914            Some(Self { syntax })
26915        } else {
26916            None
26917        }
26918    }
26919    #[inline]
26920    fn syntax(&self) -> &SyntaxNode {
26921        &self.syntax
26922    }
26923}
26924impl AstNode for DropStatistics {
26925    #[inline]
26926    fn can_cast(kind: SyntaxKind) -> bool {
26927        kind == SyntaxKind::DROP_STATISTICS
26928    }
26929    #[inline]
26930    fn cast(syntax: SyntaxNode) -> Option<Self> {
26931        if Self::can_cast(syntax.kind()) {
26932            Some(Self { syntax })
26933        } else {
26934            None
26935        }
26936    }
26937    #[inline]
26938    fn syntax(&self) -> &SyntaxNode {
26939        &self.syntax
26940    }
26941}
26942impl AstNode for DropSubscription {
26943    #[inline]
26944    fn can_cast(kind: SyntaxKind) -> bool {
26945        kind == SyntaxKind::DROP_SUBSCRIPTION
26946    }
26947    #[inline]
26948    fn cast(syntax: SyntaxNode) -> Option<Self> {
26949        if Self::can_cast(syntax.kind()) {
26950            Some(Self { syntax })
26951        } else {
26952            None
26953        }
26954    }
26955    #[inline]
26956    fn syntax(&self) -> &SyntaxNode {
26957        &self.syntax
26958    }
26959}
26960impl AstNode for DropTable {
26961    #[inline]
26962    fn can_cast(kind: SyntaxKind) -> bool {
26963        kind == SyntaxKind::DROP_TABLE
26964    }
26965    #[inline]
26966    fn cast(syntax: SyntaxNode) -> Option<Self> {
26967        if Self::can_cast(syntax.kind()) {
26968            Some(Self { syntax })
26969        } else {
26970            None
26971        }
26972    }
26973    #[inline]
26974    fn syntax(&self) -> &SyntaxNode {
26975        &self.syntax
26976    }
26977}
26978impl AstNode for DropTablespace {
26979    #[inline]
26980    fn can_cast(kind: SyntaxKind) -> bool {
26981        kind == SyntaxKind::DROP_TABLESPACE
26982    }
26983    #[inline]
26984    fn cast(syntax: SyntaxNode) -> Option<Self> {
26985        if Self::can_cast(syntax.kind()) {
26986            Some(Self { syntax })
26987        } else {
26988            None
26989        }
26990    }
26991    #[inline]
26992    fn syntax(&self) -> &SyntaxNode {
26993        &self.syntax
26994    }
26995}
26996impl AstNode for DropTextSearchConfig {
26997    #[inline]
26998    fn can_cast(kind: SyntaxKind) -> bool {
26999        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
27000    }
27001    #[inline]
27002    fn cast(syntax: SyntaxNode) -> Option<Self> {
27003        if Self::can_cast(syntax.kind()) {
27004            Some(Self { syntax })
27005        } else {
27006            None
27007        }
27008    }
27009    #[inline]
27010    fn syntax(&self) -> &SyntaxNode {
27011        &self.syntax
27012    }
27013}
27014impl AstNode for DropTextSearchDict {
27015    #[inline]
27016    fn can_cast(kind: SyntaxKind) -> bool {
27017        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
27018    }
27019    #[inline]
27020    fn cast(syntax: SyntaxNode) -> Option<Self> {
27021        if Self::can_cast(syntax.kind()) {
27022            Some(Self { syntax })
27023        } else {
27024            None
27025        }
27026    }
27027    #[inline]
27028    fn syntax(&self) -> &SyntaxNode {
27029        &self.syntax
27030    }
27031}
27032impl AstNode for DropTextSearchParser {
27033    #[inline]
27034    fn can_cast(kind: SyntaxKind) -> bool {
27035        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
27036    }
27037    #[inline]
27038    fn cast(syntax: SyntaxNode) -> Option<Self> {
27039        if Self::can_cast(syntax.kind()) {
27040            Some(Self { syntax })
27041        } else {
27042            None
27043        }
27044    }
27045    #[inline]
27046    fn syntax(&self) -> &SyntaxNode {
27047        &self.syntax
27048    }
27049}
27050impl AstNode for DropTextSearchTemplate {
27051    #[inline]
27052    fn can_cast(kind: SyntaxKind) -> bool {
27053        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
27054    }
27055    #[inline]
27056    fn cast(syntax: SyntaxNode) -> Option<Self> {
27057        if Self::can_cast(syntax.kind()) {
27058            Some(Self { syntax })
27059        } else {
27060            None
27061        }
27062    }
27063    #[inline]
27064    fn syntax(&self) -> &SyntaxNode {
27065        &self.syntax
27066    }
27067}
27068impl AstNode for DropTransform {
27069    #[inline]
27070    fn can_cast(kind: SyntaxKind) -> bool {
27071        kind == SyntaxKind::DROP_TRANSFORM
27072    }
27073    #[inline]
27074    fn cast(syntax: SyntaxNode) -> Option<Self> {
27075        if Self::can_cast(syntax.kind()) {
27076            Some(Self { syntax })
27077        } else {
27078            None
27079        }
27080    }
27081    #[inline]
27082    fn syntax(&self) -> &SyntaxNode {
27083        &self.syntax
27084    }
27085}
27086impl AstNode for DropTrigger {
27087    #[inline]
27088    fn can_cast(kind: SyntaxKind) -> bool {
27089        kind == SyntaxKind::DROP_TRIGGER
27090    }
27091    #[inline]
27092    fn cast(syntax: SyntaxNode) -> Option<Self> {
27093        if Self::can_cast(syntax.kind()) {
27094            Some(Self { syntax })
27095        } else {
27096            None
27097        }
27098    }
27099    #[inline]
27100    fn syntax(&self) -> &SyntaxNode {
27101        &self.syntax
27102    }
27103}
27104impl AstNode for DropType {
27105    #[inline]
27106    fn can_cast(kind: SyntaxKind) -> bool {
27107        kind == SyntaxKind::DROP_TYPE
27108    }
27109    #[inline]
27110    fn cast(syntax: SyntaxNode) -> Option<Self> {
27111        if Self::can_cast(syntax.kind()) {
27112            Some(Self { syntax })
27113        } else {
27114            None
27115        }
27116    }
27117    #[inline]
27118    fn syntax(&self) -> &SyntaxNode {
27119        &self.syntax
27120    }
27121}
27122impl AstNode for DropUser {
27123    #[inline]
27124    fn can_cast(kind: SyntaxKind) -> bool {
27125        kind == SyntaxKind::DROP_USER
27126    }
27127    #[inline]
27128    fn cast(syntax: SyntaxNode) -> Option<Self> {
27129        if Self::can_cast(syntax.kind()) {
27130            Some(Self { syntax })
27131        } else {
27132            None
27133        }
27134    }
27135    #[inline]
27136    fn syntax(&self) -> &SyntaxNode {
27137        &self.syntax
27138    }
27139}
27140impl AstNode for DropUserMapping {
27141    #[inline]
27142    fn can_cast(kind: SyntaxKind) -> bool {
27143        kind == SyntaxKind::DROP_USER_MAPPING
27144    }
27145    #[inline]
27146    fn cast(syntax: SyntaxNode) -> Option<Self> {
27147        if Self::can_cast(syntax.kind()) {
27148            Some(Self { syntax })
27149        } else {
27150            None
27151        }
27152    }
27153    #[inline]
27154    fn syntax(&self) -> &SyntaxNode {
27155        &self.syntax
27156    }
27157}
27158impl AstNode for DropVertexEdgeLabel {
27159    #[inline]
27160    fn can_cast(kind: SyntaxKind) -> bool {
27161        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
27162    }
27163    #[inline]
27164    fn cast(syntax: SyntaxNode) -> Option<Self> {
27165        if Self::can_cast(syntax.kind()) {
27166            Some(Self { syntax })
27167        } else {
27168            None
27169        }
27170    }
27171    #[inline]
27172    fn syntax(&self) -> &SyntaxNode {
27173        &self.syntax
27174    }
27175}
27176impl AstNode for DropVertexEdgeLabelProperties {
27177    #[inline]
27178    fn can_cast(kind: SyntaxKind) -> bool {
27179        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
27180    }
27181    #[inline]
27182    fn cast(syntax: SyntaxNode) -> Option<Self> {
27183        if Self::can_cast(syntax.kind()) {
27184            Some(Self { syntax })
27185        } else {
27186            None
27187        }
27188    }
27189    #[inline]
27190    fn syntax(&self) -> &SyntaxNode {
27191        &self.syntax
27192    }
27193}
27194impl AstNode for DropVertexTables {
27195    #[inline]
27196    fn can_cast(kind: SyntaxKind) -> bool {
27197        kind == SyntaxKind::DROP_VERTEX_TABLES
27198    }
27199    #[inline]
27200    fn cast(syntax: SyntaxNode) -> Option<Self> {
27201        if Self::can_cast(syntax.kind()) {
27202            Some(Self { syntax })
27203        } else {
27204            None
27205        }
27206    }
27207    #[inline]
27208    fn syntax(&self) -> &SyntaxNode {
27209        &self.syntax
27210    }
27211}
27212impl AstNode for DropView {
27213    #[inline]
27214    fn can_cast(kind: SyntaxKind) -> bool {
27215        kind == SyntaxKind::DROP_VIEW
27216    }
27217    #[inline]
27218    fn cast(syntax: SyntaxNode) -> Option<Self> {
27219        if Self::can_cast(syntax.kind()) {
27220            Some(Self { syntax })
27221        } else {
27222            None
27223        }
27224    }
27225    #[inline]
27226    fn syntax(&self) -> &SyntaxNode {
27227        &self.syntax
27228    }
27229}
27230impl AstNode for EdgeAny {
27231    #[inline]
27232    fn can_cast(kind: SyntaxKind) -> bool {
27233        kind == SyntaxKind::EDGE_ANY
27234    }
27235    #[inline]
27236    fn cast(syntax: SyntaxNode) -> Option<Self> {
27237        if Self::can_cast(syntax.kind()) {
27238            Some(Self { syntax })
27239        } else {
27240            None
27241        }
27242    }
27243    #[inline]
27244    fn syntax(&self) -> &SyntaxNode {
27245        &self.syntax
27246    }
27247}
27248impl AstNode for EdgeLeft {
27249    #[inline]
27250    fn can_cast(kind: SyntaxKind) -> bool {
27251        kind == SyntaxKind::EDGE_LEFT
27252    }
27253    #[inline]
27254    fn cast(syntax: SyntaxNode) -> Option<Self> {
27255        if Self::can_cast(syntax.kind()) {
27256            Some(Self { syntax })
27257        } else {
27258            None
27259        }
27260    }
27261    #[inline]
27262    fn syntax(&self) -> &SyntaxNode {
27263        &self.syntax
27264    }
27265}
27266impl AstNode for EdgeRight {
27267    #[inline]
27268    fn can_cast(kind: SyntaxKind) -> bool {
27269        kind == SyntaxKind::EDGE_RIGHT
27270    }
27271    #[inline]
27272    fn cast(syntax: SyntaxNode) -> Option<Self> {
27273        if Self::can_cast(syntax.kind()) {
27274            Some(Self { syntax })
27275        } else {
27276            None
27277        }
27278    }
27279    #[inline]
27280    fn syntax(&self) -> &SyntaxNode {
27281        &self.syntax
27282    }
27283}
27284impl AstNode for EdgeTableDef {
27285    #[inline]
27286    fn can_cast(kind: SyntaxKind) -> bool {
27287        kind == SyntaxKind::EDGE_TABLE_DEF
27288    }
27289    #[inline]
27290    fn cast(syntax: SyntaxNode) -> Option<Self> {
27291        if Self::can_cast(syntax.kind()) {
27292            Some(Self { syntax })
27293        } else {
27294            None
27295        }
27296    }
27297    #[inline]
27298    fn syntax(&self) -> &SyntaxNode {
27299        &self.syntax
27300    }
27301}
27302impl AstNode for EdgeTables {
27303    #[inline]
27304    fn can_cast(kind: SyntaxKind) -> bool {
27305        kind == SyntaxKind::EDGE_TABLES
27306    }
27307    #[inline]
27308    fn cast(syntax: SyntaxNode) -> Option<Self> {
27309        if Self::can_cast(syntax.kind()) {
27310            Some(Self { syntax })
27311        } else {
27312            None
27313        }
27314    }
27315    #[inline]
27316    fn syntax(&self) -> &SyntaxNode {
27317        &self.syntax
27318    }
27319}
27320impl AstNode for ElseClause {
27321    #[inline]
27322    fn can_cast(kind: SyntaxKind) -> bool {
27323        kind == SyntaxKind::ELSE_CLAUSE
27324    }
27325    #[inline]
27326    fn cast(syntax: SyntaxNode) -> Option<Self> {
27327        if Self::can_cast(syntax.kind()) {
27328            Some(Self { syntax })
27329        } else {
27330            None
27331        }
27332    }
27333    #[inline]
27334    fn syntax(&self) -> &SyntaxNode {
27335        &self.syntax
27336    }
27337}
27338impl AstNode for EmptyStmt {
27339    #[inline]
27340    fn can_cast(kind: SyntaxKind) -> bool {
27341        kind == SyntaxKind::EMPTY_STMT
27342    }
27343    #[inline]
27344    fn cast(syntax: SyntaxNode) -> Option<Self> {
27345        if Self::can_cast(syntax.kind()) {
27346            Some(Self { syntax })
27347        } else {
27348            None
27349        }
27350    }
27351    #[inline]
27352    fn syntax(&self) -> &SyntaxNode {
27353        &self.syntax
27354    }
27355}
27356impl AstNode for EnableAlwaysRule {
27357    #[inline]
27358    fn can_cast(kind: SyntaxKind) -> bool {
27359        kind == SyntaxKind::ENABLE_ALWAYS_RULE
27360    }
27361    #[inline]
27362    fn cast(syntax: SyntaxNode) -> Option<Self> {
27363        if Self::can_cast(syntax.kind()) {
27364            Some(Self { syntax })
27365        } else {
27366            None
27367        }
27368    }
27369    #[inline]
27370    fn syntax(&self) -> &SyntaxNode {
27371        &self.syntax
27372    }
27373}
27374impl AstNode for EnableAlwaysTrigger {
27375    #[inline]
27376    fn can_cast(kind: SyntaxKind) -> bool {
27377        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
27378    }
27379    #[inline]
27380    fn cast(syntax: SyntaxNode) -> Option<Self> {
27381        if Self::can_cast(syntax.kind()) {
27382            Some(Self { syntax })
27383        } else {
27384            None
27385        }
27386    }
27387    #[inline]
27388    fn syntax(&self) -> &SyntaxNode {
27389        &self.syntax
27390    }
27391}
27392impl AstNode for EnableReplicaRule {
27393    #[inline]
27394    fn can_cast(kind: SyntaxKind) -> bool {
27395        kind == SyntaxKind::ENABLE_REPLICA_RULE
27396    }
27397    #[inline]
27398    fn cast(syntax: SyntaxNode) -> Option<Self> {
27399        if Self::can_cast(syntax.kind()) {
27400            Some(Self { syntax })
27401        } else {
27402            None
27403        }
27404    }
27405    #[inline]
27406    fn syntax(&self) -> &SyntaxNode {
27407        &self.syntax
27408    }
27409}
27410impl AstNode for EnableReplicaTrigger {
27411    #[inline]
27412    fn can_cast(kind: SyntaxKind) -> bool {
27413        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
27414    }
27415    #[inline]
27416    fn cast(syntax: SyntaxNode) -> Option<Self> {
27417        if Self::can_cast(syntax.kind()) {
27418            Some(Self { syntax })
27419        } else {
27420            None
27421        }
27422    }
27423    #[inline]
27424    fn syntax(&self) -> &SyntaxNode {
27425        &self.syntax
27426    }
27427}
27428impl AstNode for EnableRls {
27429    #[inline]
27430    fn can_cast(kind: SyntaxKind) -> bool {
27431        kind == SyntaxKind::ENABLE_RLS
27432    }
27433    #[inline]
27434    fn cast(syntax: SyntaxNode) -> Option<Self> {
27435        if Self::can_cast(syntax.kind()) {
27436            Some(Self { syntax })
27437        } else {
27438            None
27439        }
27440    }
27441    #[inline]
27442    fn syntax(&self) -> &SyntaxNode {
27443        &self.syntax
27444    }
27445}
27446impl AstNode for EnableRule {
27447    #[inline]
27448    fn can_cast(kind: SyntaxKind) -> bool {
27449        kind == SyntaxKind::ENABLE_RULE
27450    }
27451    #[inline]
27452    fn cast(syntax: SyntaxNode) -> Option<Self> {
27453        if Self::can_cast(syntax.kind()) {
27454            Some(Self { syntax })
27455        } else {
27456            None
27457        }
27458    }
27459    #[inline]
27460    fn syntax(&self) -> &SyntaxNode {
27461        &self.syntax
27462    }
27463}
27464impl AstNode for EnableTrigger {
27465    #[inline]
27466    fn can_cast(kind: SyntaxKind) -> bool {
27467        kind == SyntaxKind::ENABLE_TRIGGER
27468    }
27469    #[inline]
27470    fn cast(syntax: SyntaxNode) -> Option<Self> {
27471        if Self::can_cast(syntax.kind()) {
27472            Some(Self { syntax })
27473        } else {
27474            None
27475        }
27476    }
27477    #[inline]
27478    fn syntax(&self) -> &SyntaxNode {
27479        &self.syntax
27480    }
27481}
27482impl AstNode for Enforced {
27483    #[inline]
27484    fn can_cast(kind: SyntaxKind) -> bool {
27485        kind == SyntaxKind::ENFORCED
27486    }
27487    #[inline]
27488    fn cast(syntax: SyntaxNode) -> Option<Self> {
27489        if Self::can_cast(syntax.kind()) {
27490            Some(Self { syntax })
27491        } else {
27492            None
27493        }
27494    }
27495    #[inline]
27496    fn syntax(&self) -> &SyntaxNode {
27497        &self.syntax
27498    }
27499}
27500impl AstNode for EventTriggerWhen {
27501    #[inline]
27502    fn can_cast(kind: SyntaxKind) -> bool {
27503        kind == SyntaxKind::EVENT_TRIGGER_WHEN
27504    }
27505    #[inline]
27506    fn cast(syntax: SyntaxNode) -> Option<Self> {
27507        if Self::can_cast(syntax.kind()) {
27508            Some(Self { syntax })
27509        } else {
27510            None
27511        }
27512    }
27513    #[inline]
27514    fn syntax(&self) -> &SyntaxNode {
27515        &self.syntax
27516    }
27517}
27518impl AstNode for EventTriggerWhenClause {
27519    #[inline]
27520    fn can_cast(kind: SyntaxKind) -> bool {
27521        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
27522    }
27523    #[inline]
27524    fn cast(syntax: SyntaxNode) -> Option<Self> {
27525        if Self::can_cast(syntax.kind()) {
27526            Some(Self { syntax })
27527        } else {
27528            None
27529        }
27530    }
27531    #[inline]
27532    fn syntax(&self) -> &SyntaxNode {
27533        &self.syntax
27534    }
27535}
27536impl AstNode for ExceptTableClause {
27537    #[inline]
27538    fn can_cast(kind: SyntaxKind) -> bool {
27539        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
27540    }
27541    #[inline]
27542    fn cast(syntax: SyntaxNode) -> Option<Self> {
27543        if Self::can_cast(syntax.kind()) {
27544            Some(Self { syntax })
27545        } else {
27546            None
27547        }
27548    }
27549    #[inline]
27550    fn syntax(&self) -> &SyntaxNode {
27551        &self.syntax
27552    }
27553}
27554impl AstNode for ExceptTableName {
27555    #[inline]
27556    fn can_cast(kind: SyntaxKind) -> bool {
27557        kind == SyntaxKind::EXCEPT_TABLE_NAME
27558    }
27559    #[inline]
27560    fn cast(syntax: SyntaxNode) -> Option<Self> {
27561        if Self::can_cast(syntax.kind()) {
27562            Some(Self { syntax })
27563        } else {
27564            None
27565        }
27566    }
27567    #[inline]
27568    fn syntax(&self) -> &SyntaxNode {
27569        &self.syntax
27570    }
27571}
27572impl AstNode for ExceptTables {
27573    #[inline]
27574    fn can_cast(kind: SyntaxKind) -> bool {
27575        kind == SyntaxKind::EXCEPT_TABLES
27576    }
27577    #[inline]
27578    fn cast(syntax: SyntaxNode) -> Option<Self> {
27579        if Self::can_cast(syntax.kind()) {
27580            Some(Self { syntax })
27581        } else {
27582            None
27583        }
27584    }
27585    #[inline]
27586    fn syntax(&self) -> &SyntaxNode {
27587        &self.syntax
27588    }
27589}
27590impl AstNode for ExcludeConstraint {
27591    #[inline]
27592    fn can_cast(kind: SyntaxKind) -> bool {
27593        kind == SyntaxKind::EXCLUDE_CONSTRAINT
27594    }
27595    #[inline]
27596    fn cast(syntax: SyntaxNode) -> Option<Self> {
27597        if Self::can_cast(syntax.kind()) {
27598            Some(Self { syntax })
27599        } else {
27600            None
27601        }
27602    }
27603    #[inline]
27604    fn syntax(&self) -> &SyntaxNode {
27605        &self.syntax
27606    }
27607}
27608impl AstNode for Exclusive {
27609    #[inline]
27610    fn can_cast(kind: SyntaxKind) -> bool {
27611        kind == SyntaxKind::EXCLUSIVE
27612    }
27613    #[inline]
27614    fn cast(syntax: SyntaxNode) -> Option<Self> {
27615        if Self::can_cast(syntax.kind()) {
27616            Some(Self { syntax })
27617        } else {
27618            None
27619        }
27620    }
27621    #[inline]
27622    fn syntax(&self) -> &SyntaxNode {
27623        &self.syntax
27624    }
27625}
27626impl AstNode for Execute {
27627    #[inline]
27628    fn can_cast(kind: SyntaxKind) -> bool {
27629        kind == SyntaxKind::EXECUTE
27630    }
27631    #[inline]
27632    fn cast(syntax: SyntaxNode) -> Option<Self> {
27633        if Self::can_cast(syntax.kind()) {
27634            Some(Self { syntax })
27635        } else {
27636            None
27637        }
27638    }
27639    #[inline]
27640    fn syntax(&self) -> &SyntaxNode {
27641        &self.syntax
27642    }
27643}
27644impl AstNode for ExistsFn {
27645    #[inline]
27646    fn can_cast(kind: SyntaxKind) -> bool {
27647        kind == SyntaxKind::EXISTS_FN
27648    }
27649    #[inline]
27650    fn cast(syntax: SyntaxNode) -> Option<Self> {
27651        if Self::can_cast(syntax.kind()) {
27652            Some(Self { syntax })
27653        } else {
27654            None
27655        }
27656    }
27657    #[inline]
27658    fn syntax(&self) -> &SyntaxNode {
27659        &self.syntax
27660    }
27661}
27662impl AstNode for Explain {
27663    #[inline]
27664    fn can_cast(kind: SyntaxKind) -> bool {
27665        kind == SyntaxKind::EXPLAIN
27666    }
27667    #[inline]
27668    fn cast(syntax: SyntaxNode) -> Option<Self> {
27669        if Self::can_cast(syntax.kind()) {
27670            Some(Self { syntax })
27671        } else {
27672            None
27673        }
27674    }
27675    #[inline]
27676    fn syntax(&self) -> &SyntaxNode {
27677        &self.syntax
27678    }
27679}
27680impl AstNode for ExplainOption {
27681    #[inline]
27682    fn can_cast(kind: SyntaxKind) -> bool {
27683        kind == SyntaxKind::EXPLAIN_OPTION
27684    }
27685    #[inline]
27686    fn cast(syntax: SyntaxNode) -> Option<Self> {
27687        if Self::can_cast(syntax.kind()) {
27688            Some(Self { syntax })
27689        } else {
27690            None
27691        }
27692    }
27693    #[inline]
27694    fn syntax(&self) -> &SyntaxNode {
27695        &self.syntax
27696    }
27697}
27698impl AstNode for ExplainOptionList {
27699    #[inline]
27700    fn can_cast(kind: SyntaxKind) -> bool {
27701        kind == SyntaxKind::EXPLAIN_OPTION_LIST
27702    }
27703    #[inline]
27704    fn cast(syntax: SyntaxNode) -> Option<Self> {
27705        if Self::can_cast(syntax.kind()) {
27706            Some(Self { syntax })
27707        } else {
27708            None
27709        }
27710    }
27711    #[inline]
27712    fn syntax(&self) -> &SyntaxNode {
27713        &self.syntax
27714    }
27715}
27716impl AstNode for ExplainOptionValue {
27717    #[inline]
27718    fn can_cast(kind: SyntaxKind) -> bool {
27719        kind == SyntaxKind::EXPLAIN_OPTION_VALUE
27720    }
27721    #[inline]
27722    fn cast(syntax: SyntaxNode) -> Option<Self> {
27723        if Self::can_cast(syntax.kind()) {
27724            Some(Self { syntax })
27725        } else {
27726            None
27727        }
27728    }
27729    #[inline]
27730    fn syntax(&self) -> &SyntaxNode {
27731        &self.syntax
27732    }
27733}
27734impl AstNode for ExprAsName {
27735    #[inline]
27736    fn can_cast(kind: SyntaxKind) -> bool {
27737        kind == SyntaxKind::EXPR_AS_NAME
27738    }
27739    #[inline]
27740    fn cast(syntax: SyntaxNode) -> Option<Self> {
27741        if Self::can_cast(syntax.kind()) {
27742            Some(Self { syntax })
27743        } else {
27744            None
27745        }
27746    }
27747    #[inline]
27748    fn syntax(&self) -> &SyntaxNode {
27749        &self.syntax
27750    }
27751}
27752impl AstNode for ExprAsNameList {
27753    #[inline]
27754    fn can_cast(kind: SyntaxKind) -> bool {
27755        kind == SyntaxKind::EXPR_AS_NAME_LIST
27756    }
27757    #[inline]
27758    fn cast(syntax: SyntaxNode) -> Option<Self> {
27759        if Self::can_cast(syntax.kind()) {
27760            Some(Self { syntax })
27761        } else {
27762            None
27763        }
27764    }
27765    #[inline]
27766    fn syntax(&self) -> &SyntaxNode {
27767        &self.syntax
27768    }
27769}
27770impl AstNode for ExprFollowing {
27771    #[inline]
27772    fn can_cast(kind: SyntaxKind) -> bool {
27773        kind == SyntaxKind::EXPR_FOLLOWING
27774    }
27775    #[inline]
27776    fn cast(syntax: SyntaxNode) -> Option<Self> {
27777        if Self::can_cast(syntax.kind()) {
27778            Some(Self { syntax })
27779        } else {
27780            None
27781        }
27782    }
27783    #[inline]
27784    fn syntax(&self) -> &SyntaxNode {
27785        &self.syntax
27786    }
27787}
27788impl AstNode for ExprPreceding {
27789    #[inline]
27790    fn can_cast(kind: SyntaxKind) -> bool {
27791        kind == SyntaxKind::EXPR_PRECEDING
27792    }
27793    #[inline]
27794    fn cast(syntax: SyntaxNode) -> Option<Self> {
27795        if Self::can_cast(syntax.kind()) {
27796            Some(Self { syntax })
27797        } else {
27798            None
27799        }
27800    }
27801    #[inline]
27802    fn syntax(&self) -> &SyntaxNode {
27803        &self.syntax
27804    }
27805}
27806impl AstNode for ExprType {
27807    #[inline]
27808    fn can_cast(kind: SyntaxKind) -> bool {
27809        kind == SyntaxKind::EXPR_TYPE
27810    }
27811    #[inline]
27812    fn cast(syntax: SyntaxNode) -> Option<Self> {
27813        if Self::can_cast(syntax.kind()) {
27814            Some(Self { syntax })
27815        } else {
27816            None
27817        }
27818    }
27819    #[inline]
27820    fn syntax(&self) -> &SyntaxNode {
27821        &self.syntax
27822    }
27823}
27824impl AstNode for ExtractFn {
27825    #[inline]
27826    fn can_cast(kind: SyntaxKind) -> bool {
27827        kind == SyntaxKind::EXTRACT_FN
27828    }
27829    #[inline]
27830    fn cast(syntax: SyntaxNode) -> Option<Self> {
27831        if Self::can_cast(syntax.kind()) {
27832            Some(Self { syntax })
27833        } else {
27834            None
27835        }
27836    }
27837    #[inline]
27838    fn syntax(&self) -> &SyntaxNode {
27839        &self.syntax
27840    }
27841}
27842impl AstNode for FatArrow {
27843    #[inline]
27844    fn can_cast(kind: SyntaxKind) -> bool {
27845        kind == SyntaxKind::FAT_ARROW
27846    }
27847    #[inline]
27848    fn cast(syntax: SyntaxNode) -> Option<Self> {
27849        if Self::can_cast(syntax.kind()) {
27850            Some(Self { syntax })
27851        } else {
27852            None
27853        }
27854    }
27855    #[inline]
27856    fn syntax(&self) -> &SyntaxNode {
27857        &self.syntax
27858    }
27859}
27860impl AstNode for FdwOption {
27861    #[inline]
27862    fn can_cast(kind: SyntaxKind) -> bool {
27863        kind == SyntaxKind::FDW_OPTION
27864    }
27865    #[inline]
27866    fn cast(syntax: SyntaxNode) -> Option<Self> {
27867        if Self::can_cast(syntax.kind()) {
27868            Some(Self { syntax })
27869        } else {
27870            None
27871        }
27872    }
27873    #[inline]
27874    fn syntax(&self) -> &SyntaxNode {
27875        &self.syntax
27876    }
27877}
27878impl AstNode for FdwOptionList {
27879    #[inline]
27880    fn can_cast(kind: SyntaxKind) -> bool {
27881        kind == SyntaxKind::FDW_OPTION_LIST
27882    }
27883    #[inline]
27884    fn cast(syntax: SyntaxNode) -> Option<Self> {
27885        if Self::can_cast(syntax.kind()) {
27886            Some(Self { syntax })
27887        } else {
27888            None
27889        }
27890    }
27891    #[inline]
27892    fn syntax(&self) -> &SyntaxNode {
27893        &self.syntax
27894    }
27895}
27896impl AstNode for Fetch {
27897    #[inline]
27898    fn can_cast(kind: SyntaxKind) -> bool {
27899        kind == SyntaxKind::FETCH
27900    }
27901    #[inline]
27902    fn cast(syntax: SyntaxNode) -> Option<Self> {
27903        if Self::can_cast(syntax.kind()) {
27904            Some(Self { syntax })
27905        } else {
27906            None
27907        }
27908    }
27909    #[inline]
27910    fn syntax(&self) -> &SyntaxNode {
27911        &self.syntax
27912    }
27913}
27914impl AstNode for FetchClause {
27915    #[inline]
27916    fn can_cast(kind: SyntaxKind) -> bool {
27917        kind == SyntaxKind::FETCH_CLAUSE
27918    }
27919    #[inline]
27920    fn cast(syntax: SyntaxNode) -> Option<Self> {
27921        if Self::can_cast(syntax.kind()) {
27922            Some(Self { syntax })
27923        } else {
27924            None
27925        }
27926    }
27927    #[inline]
27928    fn syntax(&self) -> &SyntaxNode {
27929        &self.syntax
27930    }
27931}
27932impl AstNode for FieldExpr {
27933    #[inline]
27934    fn can_cast(kind: SyntaxKind) -> bool {
27935        kind == SyntaxKind::FIELD_EXPR
27936    }
27937    #[inline]
27938    fn cast(syntax: SyntaxNode) -> Option<Self> {
27939        if Self::can_cast(syntax.kind()) {
27940            Some(Self { syntax })
27941        } else {
27942            None
27943        }
27944    }
27945    #[inline]
27946    fn syntax(&self) -> &SyntaxNode {
27947        &self.syntax
27948    }
27949}
27950impl AstNode for FilterClause {
27951    #[inline]
27952    fn can_cast(kind: SyntaxKind) -> bool {
27953        kind == SyntaxKind::FILTER_CLAUSE
27954    }
27955    #[inline]
27956    fn cast(syntax: SyntaxNode) -> Option<Self> {
27957        if Self::can_cast(syntax.kind()) {
27958            Some(Self { syntax })
27959        } else {
27960            None
27961        }
27962    }
27963    #[inline]
27964    fn syntax(&self) -> &SyntaxNode {
27965        &self.syntax
27966    }
27967}
27968impl AstNode for First {
27969    #[inline]
27970    fn can_cast(kind: SyntaxKind) -> bool {
27971        kind == SyntaxKind::FIRST
27972    }
27973    #[inline]
27974    fn cast(syntax: SyntaxNode) -> Option<Self> {
27975        if Self::can_cast(syntax.kind()) {
27976            Some(Self { syntax })
27977        } else {
27978            None
27979        }
27980    }
27981    #[inline]
27982    fn syntax(&self) -> &SyntaxNode {
27983        &self.syntax
27984    }
27985}
27986impl AstNode for ForKeyShare {
27987    #[inline]
27988    fn can_cast(kind: SyntaxKind) -> bool {
27989        kind == SyntaxKind::FOR_KEY_SHARE
27990    }
27991    #[inline]
27992    fn cast(syntax: SyntaxNode) -> Option<Self> {
27993        if Self::can_cast(syntax.kind()) {
27994            Some(Self { syntax })
27995        } else {
27996            None
27997        }
27998    }
27999    #[inline]
28000    fn syntax(&self) -> &SyntaxNode {
28001        &self.syntax
28002    }
28003}
28004impl AstNode for ForNoKeyUpdate {
28005    #[inline]
28006    fn can_cast(kind: SyntaxKind) -> bool {
28007        kind == SyntaxKind::FOR_NO_KEY_UPDATE
28008    }
28009    #[inline]
28010    fn cast(syntax: SyntaxNode) -> Option<Self> {
28011        if Self::can_cast(syntax.kind()) {
28012            Some(Self { syntax })
28013        } else {
28014            None
28015        }
28016    }
28017    #[inline]
28018    fn syntax(&self) -> &SyntaxNode {
28019        &self.syntax
28020    }
28021}
28022impl AstNode for ForPortionOf {
28023    #[inline]
28024    fn can_cast(kind: SyntaxKind) -> bool {
28025        kind == SyntaxKind::FOR_PORTION_OF
28026    }
28027    #[inline]
28028    fn cast(syntax: SyntaxNode) -> Option<Self> {
28029        if Self::can_cast(syntax.kind()) {
28030            Some(Self { syntax })
28031        } else {
28032            None
28033        }
28034    }
28035    #[inline]
28036    fn syntax(&self) -> &SyntaxNode {
28037        &self.syntax
28038    }
28039}
28040impl AstNode for ForProvider {
28041    #[inline]
28042    fn can_cast(kind: SyntaxKind) -> bool {
28043        kind == SyntaxKind::FOR_PROVIDER
28044    }
28045    #[inline]
28046    fn cast(syntax: SyntaxNode) -> Option<Self> {
28047        if Self::can_cast(syntax.kind()) {
28048            Some(Self { syntax })
28049        } else {
28050            None
28051        }
28052    }
28053    #[inline]
28054    fn syntax(&self) -> &SyntaxNode {
28055        &self.syntax
28056    }
28057}
28058impl AstNode for ForShare {
28059    #[inline]
28060    fn can_cast(kind: SyntaxKind) -> bool {
28061        kind == SyntaxKind::FOR_SHARE
28062    }
28063    #[inline]
28064    fn cast(syntax: SyntaxNode) -> Option<Self> {
28065        if Self::can_cast(syntax.kind()) {
28066            Some(Self { syntax })
28067        } else {
28068            None
28069        }
28070    }
28071    #[inline]
28072    fn syntax(&self) -> &SyntaxNode {
28073        &self.syntax
28074    }
28075}
28076impl AstNode for ForUpdate {
28077    #[inline]
28078    fn can_cast(kind: SyntaxKind) -> bool {
28079        kind == SyntaxKind::FOR_UPDATE
28080    }
28081    #[inline]
28082    fn cast(syntax: SyntaxNode) -> Option<Self> {
28083        if Self::can_cast(syntax.kind()) {
28084            Some(Self { syntax })
28085        } else {
28086            None
28087        }
28088    }
28089    #[inline]
28090    fn syntax(&self) -> &SyntaxNode {
28091        &self.syntax
28092    }
28093}
28094impl AstNode for ForceRls {
28095    #[inline]
28096    fn can_cast(kind: SyntaxKind) -> bool {
28097        kind == SyntaxKind::FORCE_RLS
28098    }
28099    #[inline]
28100    fn cast(syntax: SyntaxNode) -> Option<Self> {
28101        if Self::can_cast(syntax.kind()) {
28102            Some(Self { syntax })
28103        } else {
28104            None
28105        }
28106    }
28107    #[inline]
28108    fn syntax(&self) -> &SyntaxNode {
28109        &self.syntax
28110    }
28111}
28112impl AstNode for ForeignKeyConstraint {
28113    #[inline]
28114    fn can_cast(kind: SyntaxKind) -> bool {
28115        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
28116    }
28117    #[inline]
28118    fn cast(syntax: SyntaxNode) -> Option<Self> {
28119        if Self::can_cast(syntax.kind()) {
28120            Some(Self { syntax })
28121        } else {
28122            None
28123        }
28124    }
28125    #[inline]
28126    fn syntax(&self) -> &SyntaxNode {
28127        &self.syntax
28128    }
28129}
28130impl AstNode for Forward {
28131    #[inline]
28132    fn can_cast(kind: SyntaxKind) -> bool {
28133        kind == SyntaxKind::FORWARD
28134    }
28135    #[inline]
28136    fn cast(syntax: SyntaxNode) -> Option<Self> {
28137        if Self::can_cast(syntax.kind()) {
28138            Some(Self { syntax })
28139        } else {
28140            None
28141        }
28142    }
28143    #[inline]
28144    fn syntax(&self) -> &SyntaxNode {
28145        &self.syntax
28146    }
28147}
28148impl AstNode for FrameBetween {
28149    #[inline]
28150    fn can_cast(kind: SyntaxKind) -> bool {
28151        kind == SyntaxKind::FRAME_BETWEEN
28152    }
28153    #[inline]
28154    fn cast(syntax: SyntaxNode) -> Option<Self> {
28155        if Self::can_cast(syntax.kind()) {
28156            Some(Self { syntax })
28157        } else {
28158            None
28159        }
28160    }
28161    #[inline]
28162    fn syntax(&self) -> &SyntaxNode {
28163        &self.syntax
28164    }
28165}
28166impl AstNode for FrameClause {
28167    #[inline]
28168    fn can_cast(kind: SyntaxKind) -> bool {
28169        kind == SyntaxKind::FRAME_CLAUSE
28170    }
28171    #[inline]
28172    fn cast(syntax: SyntaxNode) -> Option<Self> {
28173        if Self::can_cast(syntax.kind()) {
28174            Some(Self { syntax })
28175        } else {
28176            None
28177        }
28178    }
28179    #[inline]
28180    fn syntax(&self) -> &SyntaxNode {
28181        &self.syntax
28182    }
28183}
28184impl AstNode for FrameExclude {
28185    #[inline]
28186    fn can_cast(kind: SyntaxKind) -> bool {
28187        kind == SyntaxKind::FRAME_EXCLUDE
28188    }
28189    #[inline]
28190    fn cast(syntax: SyntaxNode) -> Option<Self> {
28191        if Self::can_cast(syntax.kind()) {
28192            Some(Self { syntax })
28193        } else {
28194            None
28195        }
28196    }
28197    #[inline]
28198    fn syntax(&self) -> &SyntaxNode {
28199        &self.syntax
28200    }
28201}
28202impl AstNode for FromClause {
28203    #[inline]
28204    fn can_cast(kind: SyntaxKind) -> bool {
28205        kind == SyntaxKind::FROM_CLAUSE
28206    }
28207    #[inline]
28208    fn cast(syntax: SyntaxNode) -> Option<Self> {
28209        if Self::can_cast(syntax.kind()) {
28210            Some(Self { syntax })
28211        } else {
28212            None
28213        }
28214    }
28215    #[inline]
28216    fn syntax(&self) -> &SyntaxNode {
28217        &self.syntax
28218    }
28219}
28220impl AstNode for FromItem {
28221    #[inline]
28222    fn can_cast(kind: SyntaxKind) -> bool {
28223        kind == SyntaxKind::FROM_ITEM
28224    }
28225    #[inline]
28226    fn cast(syntax: SyntaxNode) -> Option<Self> {
28227        if Self::can_cast(syntax.kind()) {
28228            Some(Self { syntax })
28229        } else {
28230            None
28231        }
28232    }
28233    #[inline]
28234    fn syntax(&self) -> &SyntaxNode {
28235        &self.syntax
28236    }
28237}
28238impl AstNode for FromTable {
28239    #[inline]
28240    fn can_cast(kind: SyntaxKind) -> bool {
28241        kind == SyntaxKind::FROM_TABLE
28242    }
28243    #[inline]
28244    fn cast(syntax: SyntaxNode) -> Option<Self> {
28245        if Self::can_cast(syntax.kind()) {
28246            Some(Self { syntax })
28247        } else {
28248            None
28249        }
28250    }
28251    #[inline]
28252    fn syntax(&self) -> &SyntaxNode {
28253        &self.syntax
28254    }
28255}
28256impl AstNode for FuncOptionList {
28257    #[inline]
28258    fn can_cast(kind: SyntaxKind) -> bool {
28259        kind == SyntaxKind::FUNC_OPTION_LIST
28260    }
28261    #[inline]
28262    fn cast(syntax: SyntaxNode) -> Option<Self> {
28263        if Self::can_cast(syntax.kind()) {
28264            Some(Self { syntax })
28265        } else {
28266            None
28267        }
28268    }
28269    #[inline]
28270    fn syntax(&self) -> &SyntaxNode {
28271        &self.syntax
28272    }
28273}
28274impl AstNode for FunctionSig {
28275    #[inline]
28276    fn can_cast(kind: SyntaxKind) -> bool {
28277        kind == SyntaxKind::FUNCTION_SIG
28278    }
28279    #[inline]
28280    fn cast(syntax: SyntaxNode) -> Option<Self> {
28281        if Self::can_cast(syntax.kind()) {
28282            Some(Self { syntax })
28283        } else {
28284            None
28285        }
28286    }
28287    #[inline]
28288    fn syntax(&self) -> &SyntaxNode {
28289        &self.syntax
28290    }
28291}
28292impl AstNode for FunctionSigList {
28293    #[inline]
28294    fn can_cast(kind: SyntaxKind) -> bool {
28295        kind == SyntaxKind::FUNCTION_SIG_LIST
28296    }
28297    #[inline]
28298    fn cast(syntax: SyntaxNode) -> Option<Self> {
28299        if Self::can_cast(syntax.kind()) {
28300            Some(Self { syntax })
28301        } else {
28302            None
28303        }
28304    }
28305    #[inline]
28306    fn syntax(&self) -> &SyntaxNode {
28307        &self.syntax
28308    }
28309}
28310impl AstNode for GeneratedConstraint {
28311    #[inline]
28312    fn can_cast(kind: SyntaxKind) -> bool {
28313        kind == SyntaxKind::GENERATED_CONSTRAINT
28314    }
28315    #[inline]
28316    fn cast(syntax: SyntaxNode) -> Option<Self> {
28317        if Self::can_cast(syntax.kind()) {
28318            Some(Self { syntax })
28319        } else {
28320            None
28321        }
28322    }
28323    #[inline]
28324    fn syntax(&self) -> &SyntaxNode {
28325        &self.syntax
28326    }
28327}
28328impl AstNode for Grant {
28329    #[inline]
28330    fn can_cast(kind: SyntaxKind) -> bool {
28331        kind == SyntaxKind::GRANT
28332    }
28333    #[inline]
28334    fn cast(syntax: SyntaxNode) -> Option<Self> {
28335        if Self::can_cast(syntax.kind()) {
28336            Some(Self { syntax })
28337        } else {
28338            None
28339        }
28340    }
28341    #[inline]
28342    fn syntax(&self) -> &SyntaxNode {
28343        &self.syntax
28344    }
28345}
28346impl AstNode for GrantDefaultPrivileges {
28347    #[inline]
28348    fn can_cast(kind: SyntaxKind) -> bool {
28349        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
28350    }
28351    #[inline]
28352    fn cast(syntax: SyntaxNode) -> Option<Self> {
28353        if Self::can_cast(syntax.kind()) {
28354            Some(Self { syntax })
28355        } else {
28356            None
28357        }
28358    }
28359    #[inline]
28360    fn syntax(&self) -> &SyntaxNode {
28361        &self.syntax
28362    }
28363}
28364impl AstNode for GrantRoleOption {
28365    #[inline]
28366    fn can_cast(kind: SyntaxKind) -> bool {
28367        kind == SyntaxKind::GRANT_ROLE_OPTION
28368    }
28369    #[inline]
28370    fn cast(syntax: SyntaxNode) -> Option<Self> {
28371        if Self::can_cast(syntax.kind()) {
28372            Some(Self { syntax })
28373        } else {
28374            None
28375        }
28376    }
28377    #[inline]
28378    fn syntax(&self) -> &SyntaxNode {
28379        &self.syntax
28380    }
28381}
28382impl AstNode for GrantRoleOptionList {
28383    #[inline]
28384    fn can_cast(kind: SyntaxKind) -> bool {
28385        kind == SyntaxKind::GRANT_ROLE_OPTION_LIST
28386    }
28387    #[inline]
28388    fn cast(syntax: SyntaxNode) -> Option<Self> {
28389        if Self::can_cast(syntax.kind()) {
28390            Some(Self { syntax })
28391        } else {
28392            None
28393        }
28394    }
28395    #[inline]
28396    fn syntax(&self) -> &SyntaxNode {
28397        &self.syntax
28398    }
28399}
28400impl AstNode for GrantWithClause {
28401    #[inline]
28402    fn can_cast(kind: SyntaxKind) -> bool {
28403        kind == SyntaxKind::GRANT_WITH_CLAUSE
28404    }
28405    #[inline]
28406    fn cast(syntax: SyntaxNode) -> Option<Self> {
28407        if Self::can_cast(syntax.kind()) {
28408            Some(Self { syntax })
28409        } else {
28410            None
28411        }
28412    }
28413    #[inline]
28414    fn syntax(&self) -> &SyntaxNode {
28415        &self.syntax
28416    }
28417}
28418impl AstNode for GraphPatternQualifier {
28419    #[inline]
28420    fn can_cast(kind: SyntaxKind) -> bool {
28421        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
28422    }
28423    #[inline]
28424    fn cast(syntax: SyntaxNode) -> Option<Self> {
28425        if Self::can_cast(syntax.kind()) {
28426            Some(Self { syntax })
28427        } else {
28428            None
28429        }
28430    }
28431    #[inline]
28432    fn syntax(&self) -> &SyntaxNode {
28433        &self.syntax
28434    }
28435}
28436impl AstNode for GraphTableFn {
28437    #[inline]
28438    fn can_cast(kind: SyntaxKind) -> bool {
28439        kind == SyntaxKind::GRAPH_TABLE_FN
28440    }
28441    #[inline]
28442    fn cast(syntax: SyntaxNode) -> Option<Self> {
28443        if Self::can_cast(syntax.kind()) {
28444            Some(Self { syntax })
28445        } else {
28446            None
28447        }
28448    }
28449    #[inline]
28450    fn syntax(&self) -> &SyntaxNode {
28451        &self.syntax
28452    }
28453}
28454impl AstNode for Group {
28455    #[inline]
28456    fn can_cast(kind: SyntaxKind) -> bool {
28457        kind == SyntaxKind::GROUP
28458    }
28459    #[inline]
28460    fn cast(syntax: SyntaxNode) -> Option<Self> {
28461        if Self::can_cast(syntax.kind()) {
28462            Some(Self { syntax })
28463        } else {
28464            None
28465        }
28466    }
28467    #[inline]
28468    fn syntax(&self) -> &SyntaxNode {
28469        &self.syntax
28470    }
28471}
28472impl AstNode for GroupByClause {
28473    #[inline]
28474    fn can_cast(kind: SyntaxKind) -> bool {
28475        kind == SyntaxKind::GROUP_BY_CLAUSE
28476    }
28477    #[inline]
28478    fn cast(syntax: SyntaxNode) -> Option<Self> {
28479        if Self::can_cast(syntax.kind()) {
28480            Some(Self { syntax })
28481        } else {
28482            None
28483        }
28484    }
28485    #[inline]
28486    fn syntax(&self) -> &SyntaxNode {
28487        &self.syntax
28488    }
28489}
28490impl AstNode for GroupByList {
28491    #[inline]
28492    fn can_cast(kind: SyntaxKind) -> bool {
28493        kind == SyntaxKind::GROUP_BY_LIST
28494    }
28495    #[inline]
28496    fn cast(syntax: SyntaxNode) -> Option<Self> {
28497        if Self::can_cast(syntax.kind()) {
28498            Some(Self { syntax })
28499        } else {
28500            None
28501        }
28502    }
28503    #[inline]
28504    fn syntax(&self) -> &SyntaxNode {
28505        &self.syntax
28506    }
28507}
28508impl AstNode for GroupingCube {
28509    #[inline]
28510    fn can_cast(kind: SyntaxKind) -> bool {
28511        kind == SyntaxKind::GROUPING_CUBE
28512    }
28513    #[inline]
28514    fn cast(syntax: SyntaxNode) -> Option<Self> {
28515        if Self::can_cast(syntax.kind()) {
28516            Some(Self { syntax })
28517        } else {
28518            None
28519        }
28520    }
28521    #[inline]
28522    fn syntax(&self) -> &SyntaxNode {
28523        &self.syntax
28524    }
28525}
28526impl AstNode for GroupingExpr {
28527    #[inline]
28528    fn can_cast(kind: SyntaxKind) -> bool {
28529        kind == SyntaxKind::GROUPING_EXPR
28530    }
28531    #[inline]
28532    fn cast(syntax: SyntaxNode) -> Option<Self> {
28533        if Self::can_cast(syntax.kind()) {
28534            Some(Self { syntax })
28535        } else {
28536            None
28537        }
28538    }
28539    #[inline]
28540    fn syntax(&self) -> &SyntaxNode {
28541        &self.syntax
28542    }
28543}
28544impl AstNode for GroupingRollup {
28545    #[inline]
28546    fn can_cast(kind: SyntaxKind) -> bool {
28547        kind == SyntaxKind::GROUPING_ROLLUP
28548    }
28549    #[inline]
28550    fn cast(syntax: SyntaxNode) -> Option<Self> {
28551        if Self::can_cast(syntax.kind()) {
28552            Some(Self { syntax })
28553        } else {
28554            None
28555        }
28556    }
28557    #[inline]
28558    fn syntax(&self) -> &SyntaxNode {
28559        &self.syntax
28560    }
28561}
28562impl AstNode for GroupingSets {
28563    #[inline]
28564    fn can_cast(kind: SyntaxKind) -> bool {
28565        kind == SyntaxKind::GROUPING_SETS
28566    }
28567    #[inline]
28568    fn cast(syntax: SyntaxNode) -> Option<Self> {
28569        if Self::can_cast(syntax.kind()) {
28570            Some(Self { syntax })
28571        } else {
28572            None
28573        }
28574    }
28575    #[inline]
28576    fn syntax(&self) -> &SyntaxNode {
28577        &self.syntax
28578    }
28579}
28580impl AstNode for Gteq {
28581    #[inline]
28582    fn can_cast(kind: SyntaxKind) -> bool {
28583        kind == SyntaxKind::GTEQ
28584    }
28585    #[inline]
28586    fn cast(syntax: SyntaxNode) -> Option<Self> {
28587        if Self::can_cast(syntax.kind()) {
28588            Some(Self { syntax })
28589        } else {
28590            None
28591        }
28592    }
28593    #[inline]
28594    fn syntax(&self) -> &SyntaxNode {
28595        &self.syntax
28596    }
28597}
28598impl AstNode for HandlerClause {
28599    #[inline]
28600    fn can_cast(kind: SyntaxKind) -> bool {
28601        kind == SyntaxKind::HANDLER_CLAUSE
28602    }
28603    #[inline]
28604    fn cast(syntax: SyntaxNode) -> Option<Self> {
28605        if Self::can_cast(syntax.kind()) {
28606            Some(Self { syntax })
28607        } else {
28608            None
28609        }
28610    }
28611    #[inline]
28612    fn syntax(&self) -> &SyntaxNode {
28613        &self.syntax
28614    }
28615}
28616impl AstNode for HavingClause {
28617    #[inline]
28618    fn can_cast(kind: SyntaxKind) -> bool {
28619        kind == SyntaxKind::HAVING_CLAUSE
28620    }
28621    #[inline]
28622    fn cast(syntax: SyntaxNode) -> Option<Self> {
28623        if Self::can_cast(syntax.kind()) {
28624            Some(Self { syntax })
28625        } else {
28626            None
28627        }
28628    }
28629    #[inline]
28630    fn syntax(&self) -> &SyntaxNode {
28631        &self.syntax
28632    }
28633}
28634impl AstNode for IfExists {
28635    #[inline]
28636    fn can_cast(kind: SyntaxKind) -> bool {
28637        kind == SyntaxKind::IF_EXISTS
28638    }
28639    #[inline]
28640    fn cast(syntax: SyntaxNode) -> Option<Self> {
28641        if Self::can_cast(syntax.kind()) {
28642            Some(Self { syntax })
28643        } else {
28644            None
28645        }
28646    }
28647    #[inline]
28648    fn syntax(&self) -> &SyntaxNode {
28649        &self.syntax
28650    }
28651}
28652impl AstNode for IfNotExists {
28653    #[inline]
28654    fn can_cast(kind: SyntaxKind) -> bool {
28655        kind == SyntaxKind::IF_NOT_EXISTS
28656    }
28657    #[inline]
28658    fn cast(syntax: SyntaxNode) -> Option<Self> {
28659        if Self::can_cast(syntax.kind()) {
28660            Some(Self { syntax })
28661        } else {
28662            None
28663        }
28664    }
28665    #[inline]
28666    fn syntax(&self) -> &SyntaxNode {
28667        &self.syntax
28668    }
28669}
28670impl AstNode for ImportForeignSchema {
28671    #[inline]
28672    fn can_cast(kind: SyntaxKind) -> bool {
28673        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
28674    }
28675    #[inline]
28676    fn cast(syntax: SyntaxNode) -> Option<Self> {
28677        if Self::can_cast(syntax.kind()) {
28678            Some(Self { syntax })
28679        } else {
28680            None
28681        }
28682    }
28683    #[inline]
28684    fn syntax(&self) -> &SyntaxNode {
28685        &self.syntax
28686    }
28687}
28688impl AstNode for IndexExpr {
28689    #[inline]
28690    fn can_cast(kind: SyntaxKind) -> bool {
28691        kind == SyntaxKind::INDEX_EXPR
28692    }
28693    #[inline]
28694    fn cast(syntax: SyntaxNode) -> Option<Self> {
28695        if Self::can_cast(syntax.kind()) {
28696            Some(Self { syntax })
28697        } else {
28698            None
28699        }
28700    }
28701    #[inline]
28702    fn syntax(&self) -> &SyntaxNode {
28703        &self.syntax
28704    }
28705}
28706impl AstNode for Inherit {
28707    #[inline]
28708    fn can_cast(kind: SyntaxKind) -> bool {
28709        kind == SyntaxKind::INHERIT
28710    }
28711    #[inline]
28712    fn cast(syntax: SyntaxNode) -> Option<Self> {
28713        if Self::can_cast(syntax.kind()) {
28714            Some(Self { syntax })
28715        } else {
28716            None
28717        }
28718    }
28719    #[inline]
28720    fn syntax(&self) -> &SyntaxNode {
28721        &self.syntax
28722    }
28723}
28724impl AstNode for InheritTable {
28725    #[inline]
28726    fn can_cast(kind: SyntaxKind) -> bool {
28727        kind == SyntaxKind::INHERIT_TABLE
28728    }
28729    #[inline]
28730    fn cast(syntax: SyntaxNode) -> Option<Self> {
28731        if Self::can_cast(syntax.kind()) {
28732            Some(Self { syntax })
28733        } else {
28734            None
28735        }
28736    }
28737    #[inline]
28738    fn syntax(&self) -> &SyntaxNode {
28739        &self.syntax
28740    }
28741}
28742impl AstNode for Inherits {
28743    #[inline]
28744    fn can_cast(kind: SyntaxKind) -> bool {
28745        kind == SyntaxKind::INHERITS
28746    }
28747    #[inline]
28748    fn cast(syntax: SyntaxNode) -> Option<Self> {
28749        if Self::can_cast(syntax.kind()) {
28750            Some(Self { syntax })
28751        } else {
28752            None
28753        }
28754    }
28755    #[inline]
28756    fn syntax(&self) -> &SyntaxNode {
28757        &self.syntax
28758    }
28759}
28760impl AstNode for InitiallyDeferredConstraintOption {
28761    #[inline]
28762    fn can_cast(kind: SyntaxKind) -> bool {
28763        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
28764    }
28765    #[inline]
28766    fn cast(syntax: SyntaxNode) -> Option<Self> {
28767        if Self::can_cast(syntax.kind()) {
28768            Some(Self { syntax })
28769        } else {
28770            None
28771        }
28772    }
28773    #[inline]
28774    fn syntax(&self) -> &SyntaxNode {
28775        &self.syntax
28776    }
28777}
28778impl AstNode for InitiallyImmediateConstraintOption {
28779    #[inline]
28780    fn can_cast(kind: SyntaxKind) -> bool {
28781        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
28782    }
28783    #[inline]
28784    fn cast(syntax: SyntaxNode) -> Option<Self> {
28785        if Self::can_cast(syntax.kind()) {
28786            Some(Self { syntax })
28787        } else {
28788            None
28789        }
28790    }
28791    #[inline]
28792    fn syntax(&self) -> &SyntaxNode {
28793        &self.syntax
28794    }
28795}
28796impl AstNode for Insert {
28797    #[inline]
28798    fn can_cast(kind: SyntaxKind) -> bool {
28799        kind == SyntaxKind::INSERT
28800    }
28801    #[inline]
28802    fn cast(syntax: SyntaxNode) -> Option<Self> {
28803        if Self::can_cast(syntax.kind()) {
28804            Some(Self { syntax })
28805        } else {
28806            None
28807        }
28808    }
28809    #[inline]
28810    fn syntax(&self) -> &SyntaxNode {
28811        &self.syntax
28812    }
28813}
28814impl AstNode for IntervalType {
28815    #[inline]
28816    fn can_cast(kind: SyntaxKind) -> bool {
28817        kind == SyntaxKind::INTERVAL_TYPE
28818    }
28819    #[inline]
28820    fn cast(syntax: SyntaxNode) -> Option<Self> {
28821        if Self::can_cast(syntax.kind()) {
28822            Some(Self { syntax })
28823        } else {
28824            None
28825        }
28826    }
28827    #[inline]
28828    fn syntax(&self) -> &SyntaxNode {
28829        &self.syntax
28830    }
28831}
28832impl AstNode for IntoClause {
28833    #[inline]
28834    fn can_cast(kind: SyntaxKind) -> bool {
28835        kind == SyntaxKind::INTO_CLAUSE
28836    }
28837    #[inline]
28838    fn cast(syntax: SyntaxNode) -> Option<Self> {
28839        if Self::can_cast(syntax.kind()) {
28840            Some(Self { syntax })
28841        } else {
28842            None
28843        }
28844    }
28845    #[inline]
28846    fn syntax(&self) -> &SyntaxNode {
28847        &self.syntax
28848    }
28849}
28850impl AstNode for IntoSchema {
28851    #[inline]
28852    fn can_cast(kind: SyntaxKind) -> bool {
28853        kind == SyntaxKind::INTO_SCHEMA
28854    }
28855    #[inline]
28856    fn cast(syntax: SyntaxNode) -> Option<Self> {
28857        if Self::can_cast(syntax.kind()) {
28858            Some(Self { syntax })
28859        } else {
28860            None
28861        }
28862    }
28863    #[inline]
28864    fn syntax(&self) -> &SyntaxNode {
28865        &self.syntax
28866    }
28867}
28868impl AstNode for IsDistinctFrom {
28869    #[inline]
28870    fn can_cast(kind: SyntaxKind) -> bool {
28871        kind == SyntaxKind::IS_DISTINCT_FROM
28872    }
28873    #[inline]
28874    fn cast(syntax: SyntaxNode) -> Option<Self> {
28875        if Self::can_cast(syntax.kind()) {
28876            Some(Self { syntax })
28877        } else {
28878            None
28879        }
28880    }
28881    #[inline]
28882    fn syntax(&self) -> &SyntaxNode {
28883        &self.syntax
28884    }
28885}
28886impl AstNode for IsJson {
28887    #[inline]
28888    fn can_cast(kind: SyntaxKind) -> bool {
28889        kind == SyntaxKind::IS_JSON
28890    }
28891    #[inline]
28892    fn cast(syntax: SyntaxNode) -> Option<Self> {
28893        if Self::can_cast(syntax.kind()) {
28894            Some(Self { syntax })
28895        } else {
28896            None
28897        }
28898    }
28899    #[inline]
28900    fn syntax(&self) -> &SyntaxNode {
28901        &self.syntax
28902    }
28903}
28904impl AstNode for IsJsonArray {
28905    #[inline]
28906    fn can_cast(kind: SyntaxKind) -> bool {
28907        kind == SyntaxKind::IS_JSON_ARRAY
28908    }
28909    #[inline]
28910    fn cast(syntax: SyntaxNode) -> Option<Self> {
28911        if Self::can_cast(syntax.kind()) {
28912            Some(Self { syntax })
28913        } else {
28914            None
28915        }
28916    }
28917    #[inline]
28918    fn syntax(&self) -> &SyntaxNode {
28919        &self.syntax
28920    }
28921}
28922impl AstNode for IsJsonObject {
28923    #[inline]
28924    fn can_cast(kind: SyntaxKind) -> bool {
28925        kind == SyntaxKind::IS_JSON_OBJECT
28926    }
28927    #[inline]
28928    fn cast(syntax: SyntaxNode) -> Option<Self> {
28929        if Self::can_cast(syntax.kind()) {
28930            Some(Self { syntax })
28931        } else {
28932            None
28933        }
28934    }
28935    #[inline]
28936    fn syntax(&self) -> &SyntaxNode {
28937        &self.syntax
28938    }
28939}
28940impl AstNode for IsJsonScalar {
28941    #[inline]
28942    fn can_cast(kind: SyntaxKind) -> bool {
28943        kind == SyntaxKind::IS_JSON_SCALAR
28944    }
28945    #[inline]
28946    fn cast(syntax: SyntaxNode) -> Option<Self> {
28947        if Self::can_cast(syntax.kind()) {
28948            Some(Self { syntax })
28949        } else {
28950            None
28951        }
28952    }
28953    #[inline]
28954    fn syntax(&self) -> &SyntaxNode {
28955        &self.syntax
28956    }
28957}
28958impl AstNode for IsJsonValue {
28959    #[inline]
28960    fn can_cast(kind: SyntaxKind) -> bool {
28961        kind == SyntaxKind::IS_JSON_VALUE
28962    }
28963    #[inline]
28964    fn cast(syntax: SyntaxNode) -> Option<Self> {
28965        if Self::can_cast(syntax.kind()) {
28966            Some(Self { syntax })
28967        } else {
28968            None
28969        }
28970    }
28971    #[inline]
28972    fn syntax(&self) -> &SyntaxNode {
28973        &self.syntax
28974    }
28975}
28976impl AstNode for IsLabel {
28977    #[inline]
28978    fn can_cast(kind: SyntaxKind) -> bool {
28979        kind == SyntaxKind::IS_LABEL
28980    }
28981    #[inline]
28982    fn cast(syntax: SyntaxNode) -> Option<Self> {
28983        if Self::can_cast(syntax.kind()) {
28984            Some(Self { syntax })
28985        } else {
28986            None
28987        }
28988    }
28989    #[inline]
28990    fn syntax(&self) -> &SyntaxNode {
28991        &self.syntax
28992    }
28993}
28994impl AstNode for IsNormalized {
28995    #[inline]
28996    fn can_cast(kind: SyntaxKind) -> bool {
28997        kind == SyntaxKind::IS_NORMALIZED
28998    }
28999    #[inline]
29000    fn cast(syntax: SyntaxNode) -> Option<Self> {
29001        if Self::can_cast(syntax.kind()) {
29002            Some(Self { syntax })
29003        } else {
29004            None
29005        }
29006    }
29007    #[inline]
29008    fn syntax(&self) -> &SyntaxNode {
29009        &self.syntax
29010    }
29011}
29012impl AstNode for IsNot {
29013    #[inline]
29014    fn can_cast(kind: SyntaxKind) -> bool {
29015        kind == SyntaxKind::IS_NOT
29016    }
29017    #[inline]
29018    fn cast(syntax: SyntaxNode) -> Option<Self> {
29019        if Self::can_cast(syntax.kind()) {
29020            Some(Self { syntax })
29021        } else {
29022            None
29023        }
29024    }
29025    #[inline]
29026    fn syntax(&self) -> &SyntaxNode {
29027        &self.syntax
29028    }
29029}
29030impl AstNode for IsNotDistinctFrom {
29031    #[inline]
29032    fn can_cast(kind: SyntaxKind) -> bool {
29033        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
29034    }
29035    #[inline]
29036    fn cast(syntax: SyntaxNode) -> Option<Self> {
29037        if Self::can_cast(syntax.kind()) {
29038            Some(Self { syntax })
29039        } else {
29040            None
29041        }
29042    }
29043    #[inline]
29044    fn syntax(&self) -> &SyntaxNode {
29045        &self.syntax
29046    }
29047}
29048impl AstNode for IsNotJson {
29049    #[inline]
29050    fn can_cast(kind: SyntaxKind) -> bool {
29051        kind == SyntaxKind::IS_NOT_JSON
29052    }
29053    #[inline]
29054    fn cast(syntax: SyntaxNode) -> Option<Self> {
29055        if Self::can_cast(syntax.kind()) {
29056            Some(Self { syntax })
29057        } else {
29058            None
29059        }
29060    }
29061    #[inline]
29062    fn syntax(&self) -> &SyntaxNode {
29063        &self.syntax
29064    }
29065}
29066impl AstNode for IsNotJsonArray {
29067    #[inline]
29068    fn can_cast(kind: SyntaxKind) -> bool {
29069        kind == SyntaxKind::IS_NOT_JSON_ARRAY
29070    }
29071    #[inline]
29072    fn cast(syntax: SyntaxNode) -> Option<Self> {
29073        if Self::can_cast(syntax.kind()) {
29074            Some(Self { syntax })
29075        } else {
29076            None
29077        }
29078    }
29079    #[inline]
29080    fn syntax(&self) -> &SyntaxNode {
29081        &self.syntax
29082    }
29083}
29084impl AstNode for IsNotJsonObject {
29085    #[inline]
29086    fn can_cast(kind: SyntaxKind) -> bool {
29087        kind == SyntaxKind::IS_NOT_JSON_OBJECT
29088    }
29089    #[inline]
29090    fn cast(syntax: SyntaxNode) -> Option<Self> {
29091        if Self::can_cast(syntax.kind()) {
29092            Some(Self { syntax })
29093        } else {
29094            None
29095        }
29096    }
29097    #[inline]
29098    fn syntax(&self) -> &SyntaxNode {
29099        &self.syntax
29100    }
29101}
29102impl AstNode for IsNotJsonScalar {
29103    #[inline]
29104    fn can_cast(kind: SyntaxKind) -> bool {
29105        kind == SyntaxKind::IS_NOT_JSON_SCALAR
29106    }
29107    #[inline]
29108    fn cast(syntax: SyntaxNode) -> Option<Self> {
29109        if Self::can_cast(syntax.kind()) {
29110            Some(Self { syntax })
29111        } else {
29112            None
29113        }
29114    }
29115    #[inline]
29116    fn syntax(&self) -> &SyntaxNode {
29117        &self.syntax
29118    }
29119}
29120impl AstNode for IsNotJsonValue {
29121    #[inline]
29122    fn can_cast(kind: SyntaxKind) -> bool {
29123        kind == SyntaxKind::IS_NOT_JSON_VALUE
29124    }
29125    #[inline]
29126    fn cast(syntax: SyntaxNode) -> Option<Self> {
29127        if Self::can_cast(syntax.kind()) {
29128            Some(Self { syntax })
29129        } else {
29130            None
29131        }
29132    }
29133    #[inline]
29134    fn syntax(&self) -> &SyntaxNode {
29135        &self.syntax
29136    }
29137}
29138impl AstNode for IsNotNormalized {
29139    #[inline]
29140    fn can_cast(kind: SyntaxKind) -> bool {
29141        kind == SyntaxKind::IS_NOT_NORMALIZED
29142    }
29143    #[inline]
29144    fn cast(syntax: SyntaxNode) -> Option<Self> {
29145        if Self::can_cast(syntax.kind()) {
29146            Some(Self { syntax })
29147        } else {
29148            None
29149        }
29150    }
29151    #[inline]
29152    fn syntax(&self) -> &SyntaxNode {
29153        &self.syntax
29154    }
29155}
29156impl AstNode for Join {
29157    #[inline]
29158    fn can_cast(kind: SyntaxKind) -> bool {
29159        kind == SyntaxKind::JOIN
29160    }
29161    #[inline]
29162    fn cast(syntax: SyntaxNode) -> Option<Self> {
29163        if Self::can_cast(syntax.kind()) {
29164            Some(Self { syntax })
29165        } else {
29166            None
29167        }
29168    }
29169    #[inline]
29170    fn syntax(&self) -> &SyntaxNode {
29171        &self.syntax
29172    }
29173}
29174impl AstNode for JoinCross {
29175    #[inline]
29176    fn can_cast(kind: SyntaxKind) -> bool {
29177        kind == SyntaxKind::JOIN_CROSS
29178    }
29179    #[inline]
29180    fn cast(syntax: SyntaxNode) -> Option<Self> {
29181        if Self::can_cast(syntax.kind()) {
29182            Some(Self { syntax })
29183        } else {
29184            None
29185        }
29186    }
29187    #[inline]
29188    fn syntax(&self) -> &SyntaxNode {
29189        &self.syntax
29190    }
29191}
29192impl AstNode for JoinExpr {
29193    #[inline]
29194    fn can_cast(kind: SyntaxKind) -> bool {
29195        kind == SyntaxKind::JOIN_EXPR
29196    }
29197    #[inline]
29198    fn cast(syntax: SyntaxNode) -> Option<Self> {
29199        if Self::can_cast(syntax.kind()) {
29200            Some(Self { syntax })
29201        } else {
29202            None
29203        }
29204    }
29205    #[inline]
29206    fn syntax(&self) -> &SyntaxNode {
29207        &self.syntax
29208    }
29209}
29210impl AstNode for JoinFull {
29211    #[inline]
29212    fn can_cast(kind: SyntaxKind) -> bool {
29213        kind == SyntaxKind::JOIN_FULL
29214    }
29215    #[inline]
29216    fn cast(syntax: SyntaxNode) -> Option<Self> {
29217        if Self::can_cast(syntax.kind()) {
29218            Some(Self { syntax })
29219        } else {
29220            None
29221        }
29222    }
29223    #[inline]
29224    fn syntax(&self) -> &SyntaxNode {
29225        &self.syntax
29226    }
29227}
29228impl AstNode for JoinInner {
29229    #[inline]
29230    fn can_cast(kind: SyntaxKind) -> bool {
29231        kind == SyntaxKind::JOIN_INNER
29232    }
29233    #[inline]
29234    fn cast(syntax: SyntaxNode) -> Option<Self> {
29235        if Self::can_cast(syntax.kind()) {
29236            Some(Self { syntax })
29237        } else {
29238            None
29239        }
29240    }
29241    #[inline]
29242    fn syntax(&self) -> &SyntaxNode {
29243        &self.syntax
29244    }
29245}
29246impl AstNode for JoinLeft {
29247    #[inline]
29248    fn can_cast(kind: SyntaxKind) -> bool {
29249        kind == SyntaxKind::JOIN_LEFT
29250    }
29251    #[inline]
29252    fn cast(syntax: SyntaxNode) -> Option<Self> {
29253        if Self::can_cast(syntax.kind()) {
29254            Some(Self { syntax })
29255        } else {
29256            None
29257        }
29258    }
29259    #[inline]
29260    fn syntax(&self) -> &SyntaxNode {
29261        &self.syntax
29262    }
29263}
29264impl AstNode for JoinRight {
29265    #[inline]
29266    fn can_cast(kind: SyntaxKind) -> bool {
29267        kind == SyntaxKind::JOIN_RIGHT
29268    }
29269    #[inline]
29270    fn cast(syntax: SyntaxNode) -> Option<Self> {
29271        if Self::can_cast(syntax.kind()) {
29272            Some(Self { syntax })
29273        } else {
29274            None
29275        }
29276    }
29277    #[inline]
29278    fn syntax(&self) -> &SyntaxNode {
29279        &self.syntax
29280    }
29281}
29282impl AstNode for JoinUsingClause {
29283    #[inline]
29284    fn can_cast(kind: SyntaxKind) -> bool {
29285        kind == SyntaxKind::JOIN_USING_CLAUSE
29286    }
29287    #[inline]
29288    fn cast(syntax: SyntaxNode) -> Option<Self> {
29289        if Self::can_cast(syntax.kind()) {
29290            Some(Self { syntax })
29291        } else {
29292            None
29293        }
29294    }
29295    #[inline]
29296    fn syntax(&self) -> &SyntaxNode {
29297        &self.syntax
29298    }
29299}
29300impl AstNode for JsonArrayAggFn {
29301    #[inline]
29302    fn can_cast(kind: SyntaxKind) -> bool {
29303        kind == SyntaxKind::JSON_ARRAY_AGG_FN
29304    }
29305    #[inline]
29306    fn cast(syntax: SyntaxNode) -> Option<Self> {
29307        if Self::can_cast(syntax.kind()) {
29308            Some(Self { syntax })
29309        } else {
29310            None
29311        }
29312    }
29313    #[inline]
29314    fn syntax(&self) -> &SyntaxNode {
29315        &self.syntax
29316    }
29317}
29318impl AstNode for JsonArrayFn {
29319    #[inline]
29320    fn can_cast(kind: SyntaxKind) -> bool {
29321        kind == SyntaxKind::JSON_ARRAY_FN
29322    }
29323    #[inline]
29324    fn cast(syntax: SyntaxNode) -> Option<Self> {
29325        if Self::can_cast(syntax.kind()) {
29326            Some(Self { syntax })
29327        } else {
29328            None
29329        }
29330    }
29331    #[inline]
29332    fn syntax(&self) -> &SyntaxNode {
29333        &self.syntax
29334    }
29335}
29336impl AstNode for JsonBehaviorDefault {
29337    #[inline]
29338    fn can_cast(kind: SyntaxKind) -> bool {
29339        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
29340    }
29341    #[inline]
29342    fn cast(syntax: SyntaxNode) -> Option<Self> {
29343        if Self::can_cast(syntax.kind()) {
29344            Some(Self { syntax })
29345        } else {
29346            None
29347        }
29348    }
29349    #[inline]
29350    fn syntax(&self) -> &SyntaxNode {
29351        &self.syntax
29352    }
29353}
29354impl AstNode for JsonBehaviorEmptyArray {
29355    #[inline]
29356    fn can_cast(kind: SyntaxKind) -> bool {
29357        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
29358    }
29359    #[inline]
29360    fn cast(syntax: SyntaxNode) -> Option<Self> {
29361        if Self::can_cast(syntax.kind()) {
29362            Some(Self { syntax })
29363        } else {
29364            None
29365        }
29366    }
29367    #[inline]
29368    fn syntax(&self) -> &SyntaxNode {
29369        &self.syntax
29370    }
29371}
29372impl AstNode for JsonBehaviorEmptyObject {
29373    #[inline]
29374    fn can_cast(kind: SyntaxKind) -> bool {
29375        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
29376    }
29377    #[inline]
29378    fn cast(syntax: SyntaxNode) -> Option<Self> {
29379        if Self::can_cast(syntax.kind()) {
29380            Some(Self { syntax })
29381        } else {
29382            None
29383        }
29384    }
29385    #[inline]
29386    fn syntax(&self) -> &SyntaxNode {
29387        &self.syntax
29388    }
29389}
29390impl AstNode for JsonBehaviorError {
29391    #[inline]
29392    fn can_cast(kind: SyntaxKind) -> bool {
29393        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
29394    }
29395    #[inline]
29396    fn cast(syntax: SyntaxNode) -> Option<Self> {
29397        if Self::can_cast(syntax.kind()) {
29398            Some(Self { syntax })
29399        } else {
29400            None
29401        }
29402    }
29403    #[inline]
29404    fn syntax(&self) -> &SyntaxNode {
29405        &self.syntax
29406    }
29407}
29408impl AstNode for JsonBehaviorFalse {
29409    #[inline]
29410    fn can_cast(kind: SyntaxKind) -> bool {
29411        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
29412    }
29413    #[inline]
29414    fn cast(syntax: SyntaxNode) -> Option<Self> {
29415        if Self::can_cast(syntax.kind()) {
29416            Some(Self { syntax })
29417        } else {
29418            None
29419        }
29420    }
29421    #[inline]
29422    fn syntax(&self) -> &SyntaxNode {
29423        &self.syntax
29424    }
29425}
29426impl AstNode for JsonBehaviorNull {
29427    #[inline]
29428    fn can_cast(kind: SyntaxKind) -> bool {
29429        kind == SyntaxKind::JSON_BEHAVIOR_NULL
29430    }
29431    #[inline]
29432    fn cast(syntax: SyntaxNode) -> Option<Self> {
29433        if Self::can_cast(syntax.kind()) {
29434            Some(Self { syntax })
29435        } else {
29436            None
29437        }
29438    }
29439    #[inline]
29440    fn syntax(&self) -> &SyntaxNode {
29441        &self.syntax
29442    }
29443}
29444impl AstNode for JsonBehaviorTrue {
29445    #[inline]
29446    fn can_cast(kind: SyntaxKind) -> bool {
29447        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
29448    }
29449    #[inline]
29450    fn cast(syntax: SyntaxNode) -> Option<Self> {
29451        if Self::can_cast(syntax.kind()) {
29452            Some(Self { syntax })
29453        } else {
29454            None
29455        }
29456    }
29457    #[inline]
29458    fn syntax(&self) -> &SyntaxNode {
29459        &self.syntax
29460    }
29461}
29462impl AstNode for JsonBehaviorUnknown {
29463    #[inline]
29464    fn can_cast(kind: SyntaxKind) -> bool {
29465        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
29466    }
29467    #[inline]
29468    fn cast(syntax: SyntaxNode) -> Option<Self> {
29469        if Self::can_cast(syntax.kind()) {
29470            Some(Self { syntax })
29471        } else {
29472            None
29473        }
29474    }
29475    #[inline]
29476    fn syntax(&self) -> &SyntaxNode {
29477        &self.syntax
29478    }
29479}
29480impl AstNode for JsonEncodingClause {
29481    #[inline]
29482    fn can_cast(kind: SyntaxKind) -> bool {
29483        kind == SyntaxKind::JSON_ENCODING_CLAUSE
29484    }
29485    #[inline]
29486    fn cast(syntax: SyntaxNode) -> Option<Self> {
29487        if Self::can_cast(syntax.kind()) {
29488            Some(Self { syntax })
29489        } else {
29490            None
29491        }
29492    }
29493    #[inline]
29494    fn syntax(&self) -> &SyntaxNode {
29495        &self.syntax
29496    }
29497}
29498impl AstNode for JsonExistsFn {
29499    #[inline]
29500    fn can_cast(kind: SyntaxKind) -> bool {
29501        kind == SyntaxKind::JSON_EXISTS_FN
29502    }
29503    #[inline]
29504    fn cast(syntax: SyntaxNode) -> Option<Self> {
29505        if Self::can_cast(syntax.kind()) {
29506            Some(Self { syntax })
29507        } else {
29508            None
29509        }
29510    }
29511    #[inline]
29512    fn syntax(&self) -> &SyntaxNode {
29513        &self.syntax
29514    }
29515}
29516impl AstNode for JsonExprFormat {
29517    #[inline]
29518    fn can_cast(kind: SyntaxKind) -> bool {
29519        kind == SyntaxKind::JSON_EXPR_FORMAT
29520    }
29521    #[inline]
29522    fn cast(syntax: SyntaxNode) -> Option<Self> {
29523        if Self::can_cast(syntax.kind()) {
29524            Some(Self { syntax })
29525        } else {
29526            None
29527        }
29528    }
29529    #[inline]
29530    fn syntax(&self) -> &SyntaxNode {
29531        &self.syntax
29532    }
29533}
29534impl AstNode for JsonFn {
29535    #[inline]
29536    fn can_cast(kind: SyntaxKind) -> bool {
29537        kind == SyntaxKind::JSON_FN
29538    }
29539    #[inline]
29540    fn cast(syntax: SyntaxNode) -> Option<Self> {
29541        if Self::can_cast(syntax.kind()) {
29542            Some(Self { syntax })
29543        } else {
29544            None
29545        }
29546    }
29547    #[inline]
29548    fn syntax(&self) -> &SyntaxNode {
29549        &self.syntax
29550    }
29551}
29552impl AstNode for JsonFormatClause {
29553    #[inline]
29554    fn can_cast(kind: SyntaxKind) -> bool {
29555        kind == SyntaxKind::JSON_FORMAT_CLAUSE
29556    }
29557    #[inline]
29558    fn cast(syntax: SyntaxNode) -> Option<Self> {
29559        if Self::can_cast(syntax.kind()) {
29560            Some(Self { syntax })
29561        } else {
29562            None
29563        }
29564    }
29565    #[inline]
29566    fn syntax(&self) -> &SyntaxNode {
29567        &self.syntax
29568    }
29569}
29570impl AstNode for JsonKeyValue {
29571    #[inline]
29572    fn can_cast(kind: SyntaxKind) -> bool {
29573        kind == SyntaxKind::JSON_KEY_VALUE
29574    }
29575    #[inline]
29576    fn cast(syntax: SyntaxNode) -> Option<Self> {
29577        if Self::can_cast(syntax.kind()) {
29578            Some(Self { syntax })
29579        } else {
29580            None
29581        }
29582    }
29583    #[inline]
29584    fn syntax(&self) -> &SyntaxNode {
29585        &self.syntax
29586    }
29587}
29588impl AstNode for JsonKeysUniqueClause {
29589    #[inline]
29590    fn can_cast(kind: SyntaxKind) -> bool {
29591        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
29592    }
29593    #[inline]
29594    fn cast(syntax: SyntaxNode) -> Option<Self> {
29595        if Self::can_cast(syntax.kind()) {
29596            Some(Self { syntax })
29597        } else {
29598            None
29599        }
29600    }
29601    #[inline]
29602    fn syntax(&self) -> &SyntaxNode {
29603        &self.syntax
29604    }
29605}
29606impl AstNode for JsonNullClause {
29607    #[inline]
29608    fn can_cast(kind: SyntaxKind) -> bool {
29609        kind == SyntaxKind::JSON_NULL_CLAUSE
29610    }
29611    #[inline]
29612    fn cast(syntax: SyntaxNode) -> Option<Self> {
29613        if Self::can_cast(syntax.kind()) {
29614            Some(Self { syntax })
29615        } else {
29616            None
29617        }
29618    }
29619    #[inline]
29620    fn syntax(&self) -> &SyntaxNode {
29621        &self.syntax
29622    }
29623}
29624impl AstNode for JsonObjectAggFn {
29625    #[inline]
29626    fn can_cast(kind: SyntaxKind) -> bool {
29627        kind == SyntaxKind::JSON_OBJECT_AGG_FN
29628    }
29629    #[inline]
29630    fn cast(syntax: SyntaxNode) -> Option<Self> {
29631        if Self::can_cast(syntax.kind()) {
29632            Some(Self { syntax })
29633        } else {
29634            None
29635        }
29636    }
29637    #[inline]
29638    fn syntax(&self) -> &SyntaxNode {
29639        &self.syntax
29640    }
29641}
29642impl AstNode for JsonObjectFn {
29643    #[inline]
29644    fn can_cast(kind: SyntaxKind) -> bool {
29645        kind == SyntaxKind::JSON_OBJECT_FN
29646    }
29647    #[inline]
29648    fn cast(syntax: SyntaxNode) -> Option<Self> {
29649        if Self::can_cast(syntax.kind()) {
29650            Some(Self { syntax })
29651        } else {
29652            None
29653        }
29654    }
29655    #[inline]
29656    fn syntax(&self) -> &SyntaxNode {
29657        &self.syntax
29658    }
29659}
29660impl AstNode for JsonOnEmptyClause {
29661    #[inline]
29662    fn can_cast(kind: SyntaxKind) -> bool {
29663        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
29664    }
29665    #[inline]
29666    fn cast(syntax: SyntaxNode) -> Option<Self> {
29667        if Self::can_cast(syntax.kind()) {
29668            Some(Self { syntax })
29669        } else {
29670            None
29671        }
29672    }
29673    #[inline]
29674    fn syntax(&self) -> &SyntaxNode {
29675        &self.syntax
29676    }
29677}
29678impl AstNode for JsonOnErrorClause {
29679    #[inline]
29680    fn can_cast(kind: SyntaxKind) -> bool {
29681        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
29682    }
29683    #[inline]
29684    fn cast(syntax: SyntaxNode) -> Option<Self> {
29685        if Self::can_cast(syntax.kind()) {
29686            Some(Self { syntax })
29687        } else {
29688            None
29689        }
29690    }
29691    #[inline]
29692    fn syntax(&self) -> &SyntaxNode {
29693        &self.syntax
29694    }
29695}
29696impl AstNode for JsonPassingArg {
29697    #[inline]
29698    fn can_cast(kind: SyntaxKind) -> bool {
29699        kind == SyntaxKind::JSON_PASSING_ARG
29700    }
29701    #[inline]
29702    fn cast(syntax: SyntaxNode) -> Option<Self> {
29703        if Self::can_cast(syntax.kind()) {
29704            Some(Self { syntax })
29705        } else {
29706            None
29707        }
29708    }
29709    #[inline]
29710    fn syntax(&self) -> &SyntaxNode {
29711        &self.syntax
29712    }
29713}
29714impl AstNode for JsonPassingClause {
29715    #[inline]
29716    fn can_cast(kind: SyntaxKind) -> bool {
29717        kind == SyntaxKind::JSON_PASSING_CLAUSE
29718    }
29719    #[inline]
29720    fn cast(syntax: SyntaxNode) -> Option<Self> {
29721        if Self::can_cast(syntax.kind()) {
29722            Some(Self { syntax })
29723        } else {
29724            None
29725        }
29726    }
29727    #[inline]
29728    fn syntax(&self) -> &SyntaxNode {
29729        &self.syntax
29730    }
29731}
29732impl AstNode for JsonPathClause {
29733    #[inline]
29734    fn can_cast(kind: SyntaxKind) -> bool {
29735        kind == SyntaxKind::JSON_PATH_CLAUSE
29736    }
29737    #[inline]
29738    fn cast(syntax: SyntaxNode) -> Option<Self> {
29739        if Self::can_cast(syntax.kind()) {
29740            Some(Self { syntax })
29741        } else {
29742            None
29743        }
29744    }
29745    #[inline]
29746    fn syntax(&self) -> &SyntaxNode {
29747        &self.syntax
29748    }
29749}
29750impl AstNode for JsonQueryFn {
29751    #[inline]
29752    fn can_cast(kind: SyntaxKind) -> bool {
29753        kind == SyntaxKind::JSON_QUERY_FN
29754    }
29755    #[inline]
29756    fn cast(syntax: SyntaxNode) -> Option<Self> {
29757        if Self::can_cast(syntax.kind()) {
29758            Some(Self { syntax })
29759        } else {
29760            None
29761        }
29762    }
29763    #[inline]
29764    fn syntax(&self) -> &SyntaxNode {
29765        &self.syntax
29766    }
29767}
29768impl AstNode for JsonQuotesClause {
29769    #[inline]
29770    fn can_cast(kind: SyntaxKind) -> bool {
29771        kind == SyntaxKind::JSON_QUOTES_CLAUSE
29772    }
29773    #[inline]
29774    fn cast(syntax: SyntaxNode) -> Option<Self> {
29775        if Self::can_cast(syntax.kind()) {
29776            Some(Self { syntax })
29777        } else {
29778            None
29779        }
29780    }
29781    #[inline]
29782    fn syntax(&self) -> &SyntaxNode {
29783        &self.syntax
29784    }
29785}
29786impl AstNode for JsonReturningClause {
29787    #[inline]
29788    fn can_cast(kind: SyntaxKind) -> bool {
29789        kind == SyntaxKind::JSON_RETURNING_CLAUSE
29790    }
29791    #[inline]
29792    fn cast(syntax: SyntaxNode) -> Option<Self> {
29793        if Self::can_cast(syntax.kind()) {
29794            Some(Self { syntax })
29795        } else {
29796            None
29797        }
29798    }
29799    #[inline]
29800    fn syntax(&self) -> &SyntaxNode {
29801        &self.syntax
29802    }
29803}
29804impl AstNode for JsonScalarFn {
29805    #[inline]
29806    fn can_cast(kind: SyntaxKind) -> bool {
29807        kind == SyntaxKind::JSON_SCALAR_FN
29808    }
29809    #[inline]
29810    fn cast(syntax: SyntaxNode) -> Option<Self> {
29811        if Self::can_cast(syntax.kind()) {
29812            Some(Self { syntax })
29813        } else {
29814            None
29815        }
29816    }
29817    #[inline]
29818    fn syntax(&self) -> &SyntaxNode {
29819        &self.syntax
29820    }
29821}
29822impl AstNode for JsonSelectFormat {
29823    #[inline]
29824    fn can_cast(kind: SyntaxKind) -> bool {
29825        kind == SyntaxKind::JSON_SELECT_FORMAT
29826    }
29827    #[inline]
29828    fn cast(syntax: SyntaxNode) -> Option<Self> {
29829        if Self::can_cast(syntax.kind()) {
29830            Some(Self { syntax })
29831        } else {
29832            None
29833        }
29834    }
29835    #[inline]
29836    fn syntax(&self) -> &SyntaxNode {
29837        &self.syntax
29838    }
29839}
29840impl AstNode for JsonSerializeFn {
29841    #[inline]
29842    fn can_cast(kind: SyntaxKind) -> bool {
29843        kind == SyntaxKind::JSON_SERIALIZE_FN
29844    }
29845    #[inline]
29846    fn cast(syntax: SyntaxNode) -> Option<Self> {
29847        if Self::can_cast(syntax.kind()) {
29848            Some(Self { syntax })
29849        } else {
29850            None
29851        }
29852    }
29853    #[inline]
29854    fn syntax(&self) -> &SyntaxNode {
29855        &self.syntax
29856    }
29857}
29858impl AstNode for JsonTable {
29859    #[inline]
29860    fn can_cast(kind: SyntaxKind) -> bool {
29861        kind == SyntaxKind::JSON_TABLE
29862    }
29863    #[inline]
29864    fn cast(syntax: SyntaxNode) -> Option<Self> {
29865        if Self::can_cast(syntax.kind()) {
29866            Some(Self { syntax })
29867        } else {
29868            None
29869        }
29870    }
29871    #[inline]
29872    fn syntax(&self) -> &SyntaxNode {
29873        &self.syntax
29874    }
29875}
29876impl AstNode for JsonTableColumn {
29877    #[inline]
29878    fn can_cast(kind: SyntaxKind) -> bool {
29879        kind == SyntaxKind::JSON_TABLE_COLUMN
29880    }
29881    #[inline]
29882    fn cast(syntax: SyntaxNode) -> Option<Self> {
29883        if Self::can_cast(syntax.kind()) {
29884            Some(Self { syntax })
29885        } else {
29886            None
29887        }
29888    }
29889    #[inline]
29890    fn syntax(&self) -> &SyntaxNode {
29891        &self.syntax
29892    }
29893}
29894impl AstNode for JsonTableColumnList {
29895    #[inline]
29896    fn can_cast(kind: SyntaxKind) -> bool {
29897        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
29898    }
29899    #[inline]
29900    fn cast(syntax: SyntaxNode) -> Option<Self> {
29901        if Self::can_cast(syntax.kind()) {
29902            Some(Self { syntax })
29903        } else {
29904            None
29905        }
29906    }
29907    #[inline]
29908    fn syntax(&self) -> &SyntaxNode {
29909        &self.syntax
29910    }
29911}
29912impl AstNode for JsonValueExpr {
29913    #[inline]
29914    fn can_cast(kind: SyntaxKind) -> bool {
29915        kind == SyntaxKind::JSON_VALUE_EXPR
29916    }
29917    #[inline]
29918    fn cast(syntax: SyntaxNode) -> Option<Self> {
29919        if Self::can_cast(syntax.kind()) {
29920            Some(Self { syntax })
29921        } else {
29922            None
29923        }
29924    }
29925    #[inline]
29926    fn syntax(&self) -> &SyntaxNode {
29927        &self.syntax
29928    }
29929}
29930impl AstNode for JsonValueFn {
29931    #[inline]
29932    fn can_cast(kind: SyntaxKind) -> bool {
29933        kind == SyntaxKind::JSON_VALUE_FN
29934    }
29935    #[inline]
29936    fn cast(syntax: SyntaxNode) -> Option<Self> {
29937        if Self::can_cast(syntax.kind()) {
29938            Some(Self { syntax })
29939        } else {
29940            None
29941        }
29942    }
29943    #[inline]
29944    fn syntax(&self) -> &SyntaxNode {
29945        &self.syntax
29946    }
29947}
29948impl AstNode for JsonWrapperBehaviorClause {
29949    #[inline]
29950    fn can_cast(kind: SyntaxKind) -> bool {
29951        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
29952    }
29953    #[inline]
29954    fn cast(syntax: SyntaxNode) -> Option<Self> {
29955        if Self::can_cast(syntax.kind()) {
29956            Some(Self { syntax })
29957        } else {
29958            None
29959        }
29960    }
29961    #[inline]
29962    fn syntax(&self) -> &SyntaxNode {
29963        &self.syntax
29964    }
29965}
29966impl AstNode for LabelAndProperties {
29967    #[inline]
29968    fn can_cast(kind: SyntaxKind) -> bool {
29969        kind == SyntaxKind::LABEL_AND_PROPERTIES
29970    }
29971    #[inline]
29972    fn cast(syntax: SyntaxNode) -> Option<Self> {
29973        if Self::can_cast(syntax.kind()) {
29974            Some(Self { syntax })
29975        } else {
29976            None
29977        }
29978    }
29979    #[inline]
29980    fn syntax(&self) -> &SyntaxNode {
29981        &self.syntax
29982    }
29983}
29984impl AstNode for LabelAndPropertiesList {
29985    #[inline]
29986    fn can_cast(kind: SyntaxKind) -> bool {
29987        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
29988    }
29989    #[inline]
29990    fn cast(syntax: SyntaxNode) -> Option<Self> {
29991        if Self::can_cast(syntax.kind()) {
29992            Some(Self { syntax })
29993        } else {
29994            None
29995        }
29996    }
29997    #[inline]
29998    fn syntax(&self) -> &SyntaxNode {
29999        &self.syntax
30000    }
30001}
30002impl AstNode for LanguageFuncOption {
30003    #[inline]
30004    fn can_cast(kind: SyntaxKind) -> bool {
30005        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
30006    }
30007    #[inline]
30008    fn cast(syntax: SyntaxNode) -> Option<Self> {
30009        if Self::can_cast(syntax.kind()) {
30010            Some(Self { syntax })
30011        } else {
30012            None
30013        }
30014    }
30015    #[inline]
30016    fn syntax(&self) -> &SyntaxNode {
30017        &self.syntax
30018    }
30019}
30020impl AstNode for Last {
30021    #[inline]
30022    fn can_cast(kind: SyntaxKind) -> bool {
30023        kind == SyntaxKind::LAST
30024    }
30025    #[inline]
30026    fn cast(syntax: SyntaxNode) -> Option<Self> {
30027        if Self::can_cast(syntax.kind()) {
30028            Some(Self { syntax })
30029        } else {
30030            None
30031        }
30032    }
30033    #[inline]
30034    fn syntax(&self) -> &SyntaxNode {
30035        &self.syntax
30036    }
30037}
30038impl AstNode for LeakproofFuncOption {
30039    #[inline]
30040    fn can_cast(kind: SyntaxKind) -> bool {
30041        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
30042    }
30043    #[inline]
30044    fn cast(syntax: SyntaxNode) -> Option<Self> {
30045        if Self::can_cast(syntax.kind()) {
30046            Some(Self { syntax })
30047        } else {
30048            None
30049        }
30050    }
30051    #[inline]
30052    fn syntax(&self) -> &SyntaxNode {
30053        &self.syntax
30054    }
30055}
30056impl AstNode for LikeClause {
30057    #[inline]
30058    fn can_cast(kind: SyntaxKind) -> bool {
30059        kind == SyntaxKind::LIKE_CLAUSE
30060    }
30061    #[inline]
30062    fn cast(syntax: SyntaxNode) -> Option<Self> {
30063        if Self::can_cast(syntax.kind()) {
30064            Some(Self { syntax })
30065        } else {
30066            None
30067        }
30068    }
30069    #[inline]
30070    fn syntax(&self) -> &SyntaxNode {
30071        &self.syntax
30072    }
30073}
30074impl AstNode for LikeOption {
30075    #[inline]
30076    fn can_cast(kind: SyntaxKind) -> bool {
30077        kind == SyntaxKind::LIKE_OPTION
30078    }
30079    #[inline]
30080    fn cast(syntax: SyntaxNode) -> Option<Self> {
30081        if Self::can_cast(syntax.kind()) {
30082            Some(Self { syntax })
30083        } else {
30084            None
30085        }
30086    }
30087    #[inline]
30088    fn syntax(&self) -> &SyntaxNode {
30089        &self.syntax
30090    }
30091}
30092impl AstNode for LimitClause {
30093    #[inline]
30094    fn can_cast(kind: SyntaxKind) -> bool {
30095        kind == SyntaxKind::LIMIT_CLAUSE
30096    }
30097    #[inline]
30098    fn cast(syntax: SyntaxNode) -> Option<Self> {
30099        if Self::can_cast(syntax.kind()) {
30100            Some(Self { syntax })
30101        } else {
30102            None
30103        }
30104    }
30105    #[inline]
30106    fn syntax(&self) -> &SyntaxNode {
30107        &self.syntax
30108    }
30109}
30110impl AstNode for LimitToTables {
30111    #[inline]
30112    fn can_cast(kind: SyntaxKind) -> bool {
30113        kind == SyntaxKind::LIMIT_TO_TABLES
30114    }
30115    #[inline]
30116    fn cast(syntax: SyntaxNode) -> Option<Self> {
30117        if Self::can_cast(syntax.kind()) {
30118            Some(Self { syntax })
30119        } else {
30120            None
30121        }
30122    }
30123    #[inline]
30124    fn syntax(&self) -> &SyntaxNode {
30125        &self.syntax
30126    }
30127}
30128impl AstNode for Listen {
30129    #[inline]
30130    fn can_cast(kind: SyntaxKind) -> bool {
30131        kind == SyntaxKind::LISTEN
30132    }
30133    #[inline]
30134    fn cast(syntax: SyntaxNode) -> Option<Self> {
30135        if Self::can_cast(syntax.kind()) {
30136            Some(Self { syntax })
30137        } else {
30138            None
30139        }
30140    }
30141    #[inline]
30142    fn syntax(&self) -> &SyntaxNode {
30143        &self.syntax
30144    }
30145}
30146impl AstNode for Literal {
30147    #[inline]
30148    fn can_cast(kind: SyntaxKind) -> bool {
30149        kind == SyntaxKind::LITERAL
30150    }
30151    #[inline]
30152    fn cast(syntax: SyntaxNode) -> Option<Self> {
30153        if Self::can_cast(syntax.kind()) {
30154            Some(Self { syntax })
30155        } else {
30156            None
30157        }
30158    }
30159    #[inline]
30160    fn syntax(&self) -> &SyntaxNode {
30161        &self.syntax
30162    }
30163}
30164impl AstNode for Load {
30165    #[inline]
30166    fn can_cast(kind: SyntaxKind) -> bool {
30167        kind == SyntaxKind::LOAD
30168    }
30169    #[inline]
30170    fn cast(syntax: SyntaxNode) -> Option<Self> {
30171        if Self::can_cast(syntax.kind()) {
30172            Some(Self { syntax })
30173        } else {
30174            None
30175        }
30176    }
30177    #[inline]
30178    fn syntax(&self) -> &SyntaxNode {
30179        &self.syntax
30180    }
30181}
30182impl AstNode for Lock {
30183    #[inline]
30184    fn can_cast(kind: SyntaxKind) -> bool {
30185        kind == SyntaxKind::LOCK
30186    }
30187    #[inline]
30188    fn cast(syntax: SyntaxNode) -> Option<Self> {
30189        if Self::can_cast(syntax.kind()) {
30190            Some(Self { syntax })
30191        } else {
30192            None
30193        }
30194    }
30195    #[inline]
30196    fn syntax(&self) -> &SyntaxNode {
30197        &self.syntax
30198    }
30199}
30200impl AstNode for LockingClause {
30201    #[inline]
30202    fn can_cast(kind: SyntaxKind) -> bool {
30203        kind == SyntaxKind::LOCKING_CLAUSE
30204    }
30205    #[inline]
30206    fn cast(syntax: SyntaxNode) -> Option<Self> {
30207        if Self::can_cast(syntax.kind()) {
30208            Some(Self { syntax })
30209        } else {
30210            None
30211        }
30212    }
30213    #[inline]
30214    fn syntax(&self) -> &SyntaxNode {
30215        &self.syntax
30216    }
30217}
30218impl AstNode for Lteq {
30219    #[inline]
30220    fn can_cast(kind: SyntaxKind) -> bool {
30221        kind == SyntaxKind::LTEQ
30222    }
30223    #[inline]
30224    fn cast(syntax: SyntaxNode) -> Option<Self> {
30225        if Self::can_cast(syntax.kind()) {
30226            Some(Self { syntax })
30227        } else {
30228            None
30229        }
30230    }
30231    #[inline]
30232    fn syntax(&self) -> &SyntaxNode {
30233        &self.syntax
30234    }
30235}
30236impl AstNode for MatchFull {
30237    #[inline]
30238    fn can_cast(kind: SyntaxKind) -> bool {
30239        kind == SyntaxKind::MATCH_FULL
30240    }
30241    #[inline]
30242    fn cast(syntax: SyntaxNode) -> Option<Self> {
30243        if Self::can_cast(syntax.kind()) {
30244            Some(Self { syntax })
30245        } else {
30246            None
30247        }
30248    }
30249    #[inline]
30250    fn syntax(&self) -> &SyntaxNode {
30251        &self.syntax
30252    }
30253}
30254impl AstNode for MatchPartial {
30255    #[inline]
30256    fn can_cast(kind: SyntaxKind) -> bool {
30257        kind == SyntaxKind::MATCH_PARTIAL
30258    }
30259    #[inline]
30260    fn cast(syntax: SyntaxNode) -> Option<Self> {
30261        if Self::can_cast(syntax.kind()) {
30262            Some(Self { syntax })
30263        } else {
30264            None
30265        }
30266    }
30267    #[inline]
30268    fn syntax(&self) -> &SyntaxNode {
30269        &self.syntax
30270    }
30271}
30272impl AstNode for MatchSimple {
30273    #[inline]
30274    fn can_cast(kind: SyntaxKind) -> bool {
30275        kind == SyntaxKind::MATCH_SIMPLE
30276    }
30277    #[inline]
30278    fn cast(syntax: SyntaxNode) -> Option<Self> {
30279        if Self::can_cast(syntax.kind()) {
30280            Some(Self { syntax })
30281        } else {
30282            None
30283        }
30284    }
30285    #[inline]
30286    fn syntax(&self) -> &SyntaxNode {
30287        &self.syntax
30288    }
30289}
30290impl AstNode for Materialized {
30291    #[inline]
30292    fn can_cast(kind: SyntaxKind) -> bool {
30293        kind == SyntaxKind::MATERIALIZED
30294    }
30295    #[inline]
30296    fn cast(syntax: SyntaxNode) -> Option<Self> {
30297        if Self::can_cast(syntax.kind()) {
30298            Some(Self { syntax })
30299        } else {
30300            None
30301        }
30302    }
30303    #[inline]
30304    fn syntax(&self) -> &SyntaxNode {
30305        &self.syntax
30306    }
30307}
30308impl AstNode for Merge {
30309    #[inline]
30310    fn can_cast(kind: SyntaxKind) -> bool {
30311        kind == SyntaxKind::MERGE
30312    }
30313    #[inline]
30314    fn cast(syntax: SyntaxNode) -> Option<Self> {
30315        if Self::can_cast(syntax.kind()) {
30316            Some(Self { syntax })
30317        } else {
30318            None
30319        }
30320    }
30321    #[inline]
30322    fn syntax(&self) -> &SyntaxNode {
30323        &self.syntax
30324    }
30325}
30326impl AstNode for MergeDelete {
30327    #[inline]
30328    fn can_cast(kind: SyntaxKind) -> bool {
30329        kind == SyntaxKind::MERGE_DELETE
30330    }
30331    #[inline]
30332    fn cast(syntax: SyntaxNode) -> Option<Self> {
30333        if Self::can_cast(syntax.kind()) {
30334            Some(Self { syntax })
30335        } else {
30336            None
30337        }
30338    }
30339    #[inline]
30340    fn syntax(&self) -> &SyntaxNode {
30341        &self.syntax
30342    }
30343}
30344impl AstNode for MergeDoNothing {
30345    #[inline]
30346    fn can_cast(kind: SyntaxKind) -> bool {
30347        kind == SyntaxKind::MERGE_DO_NOTHING
30348    }
30349    #[inline]
30350    fn cast(syntax: SyntaxNode) -> Option<Self> {
30351        if Self::can_cast(syntax.kind()) {
30352            Some(Self { syntax })
30353        } else {
30354            None
30355        }
30356    }
30357    #[inline]
30358    fn syntax(&self) -> &SyntaxNode {
30359        &self.syntax
30360    }
30361}
30362impl AstNode for MergeInsert {
30363    #[inline]
30364    fn can_cast(kind: SyntaxKind) -> bool {
30365        kind == SyntaxKind::MERGE_INSERT
30366    }
30367    #[inline]
30368    fn cast(syntax: SyntaxNode) -> Option<Self> {
30369        if Self::can_cast(syntax.kind()) {
30370            Some(Self { syntax })
30371        } else {
30372            None
30373        }
30374    }
30375    #[inline]
30376    fn syntax(&self) -> &SyntaxNode {
30377        &self.syntax
30378    }
30379}
30380impl AstNode for MergePartitions {
30381    #[inline]
30382    fn can_cast(kind: SyntaxKind) -> bool {
30383        kind == SyntaxKind::MERGE_PARTITIONS
30384    }
30385    #[inline]
30386    fn cast(syntax: SyntaxNode) -> Option<Self> {
30387        if Self::can_cast(syntax.kind()) {
30388            Some(Self { syntax })
30389        } else {
30390            None
30391        }
30392    }
30393    #[inline]
30394    fn syntax(&self) -> &SyntaxNode {
30395        &self.syntax
30396    }
30397}
30398impl AstNode for MergeUpdate {
30399    #[inline]
30400    fn can_cast(kind: SyntaxKind) -> bool {
30401        kind == SyntaxKind::MERGE_UPDATE
30402    }
30403    #[inline]
30404    fn cast(syntax: SyntaxNode) -> Option<Self> {
30405        if Self::can_cast(syntax.kind()) {
30406            Some(Self { syntax })
30407        } else {
30408            None
30409        }
30410    }
30411    #[inline]
30412    fn syntax(&self) -> &SyntaxNode {
30413        &self.syntax
30414    }
30415}
30416impl AstNode for MergeWhenMatched {
30417    #[inline]
30418    fn can_cast(kind: SyntaxKind) -> bool {
30419        kind == SyntaxKind::MERGE_WHEN_MATCHED
30420    }
30421    #[inline]
30422    fn cast(syntax: SyntaxNode) -> Option<Self> {
30423        if Self::can_cast(syntax.kind()) {
30424            Some(Self { syntax })
30425        } else {
30426            None
30427        }
30428    }
30429    #[inline]
30430    fn syntax(&self) -> &SyntaxNode {
30431        &self.syntax
30432    }
30433}
30434impl AstNode for MergeWhenNotMatchedSource {
30435    #[inline]
30436    fn can_cast(kind: SyntaxKind) -> bool {
30437        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
30438    }
30439    #[inline]
30440    fn cast(syntax: SyntaxNode) -> Option<Self> {
30441        if Self::can_cast(syntax.kind()) {
30442            Some(Self { syntax })
30443        } else {
30444            None
30445        }
30446    }
30447    #[inline]
30448    fn syntax(&self) -> &SyntaxNode {
30449        &self.syntax
30450    }
30451}
30452impl AstNode for MergeWhenNotMatchedTarget {
30453    #[inline]
30454    fn can_cast(kind: SyntaxKind) -> bool {
30455        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
30456    }
30457    #[inline]
30458    fn cast(syntax: SyntaxNode) -> Option<Self> {
30459        if Self::can_cast(syntax.kind()) {
30460            Some(Self { syntax })
30461        } else {
30462            None
30463        }
30464    }
30465    #[inline]
30466    fn syntax(&self) -> &SyntaxNode {
30467        &self.syntax
30468    }
30469}
30470impl AstNode for Move {
30471    #[inline]
30472    fn can_cast(kind: SyntaxKind) -> bool {
30473        kind == SyntaxKind::MOVE
30474    }
30475    #[inline]
30476    fn cast(syntax: SyntaxNode) -> Option<Self> {
30477        if Self::can_cast(syntax.kind()) {
30478            Some(Self { syntax })
30479        } else {
30480            None
30481        }
30482    }
30483    #[inline]
30484    fn syntax(&self) -> &SyntaxNode {
30485        &self.syntax
30486    }
30487}
30488impl AstNode for Name {
30489    #[inline]
30490    fn can_cast(kind: SyntaxKind) -> bool {
30491        kind == SyntaxKind::NAME
30492    }
30493    #[inline]
30494    fn cast(syntax: SyntaxNode) -> Option<Self> {
30495        if Self::can_cast(syntax.kind()) {
30496            Some(Self { syntax })
30497        } else {
30498            None
30499        }
30500    }
30501    #[inline]
30502    fn syntax(&self) -> &SyntaxNode {
30503        &self.syntax
30504    }
30505}
30506impl AstNode for NameRef {
30507    #[inline]
30508    fn can_cast(kind: SyntaxKind) -> bool {
30509        kind == SyntaxKind::NAME_REF
30510    }
30511    #[inline]
30512    fn cast(syntax: SyntaxNode) -> Option<Self> {
30513        if Self::can_cast(syntax.kind()) {
30514            Some(Self { syntax })
30515        } else {
30516            None
30517        }
30518    }
30519    #[inline]
30520    fn syntax(&self) -> &SyntaxNode {
30521        &self.syntax
30522    }
30523}
30524impl AstNode for NamedArg {
30525    #[inline]
30526    fn can_cast(kind: SyntaxKind) -> bool {
30527        kind == SyntaxKind::NAMED_ARG
30528    }
30529    #[inline]
30530    fn cast(syntax: SyntaxNode) -> Option<Self> {
30531        if Self::can_cast(syntax.kind()) {
30532            Some(Self { syntax })
30533        } else {
30534            None
30535        }
30536    }
30537    #[inline]
30538    fn syntax(&self) -> &SyntaxNode {
30539        &self.syntax
30540    }
30541}
30542impl AstNode for Neq {
30543    #[inline]
30544    fn can_cast(kind: SyntaxKind) -> bool {
30545        kind == SyntaxKind::NEQ
30546    }
30547    #[inline]
30548    fn cast(syntax: SyntaxNode) -> Option<Self> {
30549        if Self::can_cast(syntax.kind()) {
30550            Some(Self { syntax })
30551        } else {
30552            None
30553        }
30554    }
30555    #[inline]
30556    fn syntax(&self) -> &SyntaxNode {
30557        &self.syntax
30558    }
30559}
30560impl AstNode for Neqb {
30561    #[inline]
30562    fn can_cast(kind: SyntaxKind) -> bool {
30563        kind == SyntaxKind::NEQB
30564    }
30565    #[inline]
30566    fn cast(syntax: SyntaxNode) -> Option<Self> {
30567        if Self::can_cast(syntax.kind()) {
30568            Some(Self { syntax })
30569        } else {
30570            None
30571        }
30572    }
30573    #[inline]
30574    fn syntax(&self) -> &SyntaxNode {
30575        &self.syntax
30576    }
30577}
30578impl AstNode for Next {
30579    #[inline]
30580    fn can_cast(kind: SyntaxKind) -> bool {
30581        kind == SyntaxKind::NEXT
30582    }
30583    #[inline]
30584    fn cast(syntax: SyntaxNode) -> Option<Self> {
30585        if Self::can_cast(syntax.kind()) {
30586            Some(Self { syntax })
30587        } else {
30588            None
30589        }
30590    }
30591    #[inline]
30592    fn syntax(&self) -> &SyntaxNode {
30593        &self.syntax
30594    }
30595}
30596impl AstNode for NoAction {
30597    #[inline]
30598    fn can_cast(kind: SyntaxKind) -> bool {
30599        kind == SyntaxKind::NO_ACTION
30600    }
30601    #[inline]
30602    fn cast(syntax: SyntaxNode) -> Option<Self> {
30603        if Self::can_cast(syntax.kind()) {
30604            Some(Self { syntax })
30605        } else {
30606            None
30607        }
30608    }
30609    #[inline]
30610    fn syntax(&self) -> &SyntaxNode {
30611        &self.syntax
30612    }
30613}
30614impl AstNode for NoDependsOnExtension {
30615    #[inline]
30616    fn can_cast(kind: SyntaxKind) -> bool {
30617        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
30618    }
30619    #[inline]
30620    fn cast(syntax: SyntaxNode) -> Option<Self> {
30621        if Self::can_cast(syntax.kind()) {
30622            Some(Self { syntax })
30623        } else {
30624            None
30625        }
30626    }
30627    #[inline]
30628    fn syntax(&self) -> &SyntaxNode {
30629        &self.syntax
30630    }
30631}
30632impl AstNode for NoForceRls {
30633    #[inline]
30634    fn can_cast(kind: SyntaxKind) -> bool {
30635        kind == SyntaxKind::NO_FORCE_RLS
30636    }
30637    #[inline]
30638    fn cast(syntax: SyntaxNode) -> Option<Self> {
30639        if Self::can_cast(syntax.kind()) {
30640            Some(Self { syntax })
30641        } else {
30642            None
30643        }
30644    }
30645    #[inline]
30646    fn syntax(&self) -> &SyntaxNode {
30647        &self.syntax
30648    }
30649}
30650impl AstNode for NoInherit {
30651    #[inline]
30652    fn can_cast(kind: SyntaxKind) -> bool {
30653        kind == SyntaxKind::NO_INHERIT
30654    }
30655    #[inline]
30656    fn cast(syntax: SyntaxNode) -> Option<Self> {
30657        if Self::can_cast(syntax.kind()) {
30658            Some(Self { syntax })
30659        } else {
30660            None
30661        }
30662    }
30663    #[inline]
30664    fn syntax(&self) -> &SyntaxNode {
30665        &self.syntax
30666    }
30667}
30668impl AstNode for NoInheritTable {
30669    #[inline]
30670    fn can_cast(kind: SyntaxKind) -> bool {
30671        kind == SyntaxKind::NO_INHERIT_TABLE
30672    }
30673    #[inline]
30674    fn cast(syntax: SyntaxNode) -> Option<Self> {
30675        if Self::can_cast(syntax.kind()) {
30676            Some(Self { syntax })
30677        } else {
30678            None
30679        }
30680    }
30681    #[inline]
30682    fn syntax(&self) -> &SyntaxNode {
30683        &self.syntax
30684    }
30685}
30686impl AstNode for NoOthers {
30687    #[inline]
30688    fn can_cast(kind: SyntaxKind) -> bool {
30689        kind == SyntaxKind::NO_OTHERS
30690    }
30691    #[inline]
30692    fn cast(syntax: SyntaxNode) -> Option<Self> {
30693        if Self::can_cast(syntax.kind()) {
30694            Some(Self { syntax })
30695        } else {
30696            None
30697        }
30698    }
30699    #[inline]
30700    fn syntax(&self) -> &SyntaxNode {
30701        &self.syntax
30702    }
30703}
30704impl AstNode for NoProperties {
30705    #[inline]
30706    fn can_cast(kind: SyntaxKind) -> bool {
30707        kind == SyntaxKind::NO_PROPERTIES
30708    }
30709    #[inline]
30710    fn cast(syntax: SyntaxNode) -> Option<Self> {
30711        if Self::can_cast(syntax.kind()) {
30712            Some(Self { syntax })
30713        } else {
30714            None
30715        }
30716    }
30717    #[inline]
30718    fn syntax(&self) -> &SyntaxNode {
30719        &self.syntax
30720    }
30721}
30722impl AstNode for NonStandardParam {
30723    #[inline]
30724    fn can_cast(kind: SyntaxKind) -> bool {
30725        kind == SyntaxKind::NON_STANDARD_PARAM
30726    }
30727    #[inline]
30728    fn cast(syntax: SyntaxNode) -> Option<Self> {
30729        if Self::can_cast(syntax.kind()) {
30730            Some(Self { syntax })
30731        } else {
30732            None
30733        }
30734    }
30735    #[inline]
30736    fn syntax(&self) -> &SyntaxNode {
30737        &self.syntax
30738    }
30739}
30740impl AstNode for NotDeferrable {
30741    #[inline]
30742    fn can_cast(kind: SyntaxKind) -> bool {
30743        kind == SyntaxKind::NOT_DEFERRABLE
30744    }
30745    #[inline]
30746    fn cast(syntax: SyntaxNode) -> Option<Self> {
30747        if Self::can_cast(syntax.kind()) {
30748            Some(Self { syntax })
30749        } else {
30750            None
30751        }
30752    }
30753    #[inline]
30754    fn syntax(&self) -> &SyntaxNode {
30755        &self.syntax
30756    }
30757}
30758impl AstNode for NotDeferrableConstraintOption {
30759    #[inline]
30760    fn can_cast(kind: SyntaxKind) -> bool {
30761        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
30762    }
30763    #[inline]
30764    fn cast(syntax: SyntaxNode) -> Option<Self> {
30765        if Self::can_cast(syntax.kind()) {
30766            Some(Self { syntax })
30767        } else {
30768            None
30769        }
30770    }
30771    #[inline]
30772    fn syntax(&self) -> &SyntaxNode {
30773        &self.syntax
30774    }
30775}
30776impl AstNode for NotEnforced {
30777    #[inline]
30778    fn can_cast(kind: SyntaxKind) -> bool {
30779        kind == SyntaxKind::NOT_ENFORCED
30780    }
30781    #[inline]
30782    fn cast(syntax: SyntaxNode) -> Option<Self> {
30783        if Self::can_cast(syntax.kind()) {
30784            Some(Self { syntax })
30785        } else {
30786            None
30787        }
30788    }
30789    #[inline]
30790    fn syntax(&self) -> &SyntaxNode {
30791        &self.syntax
30792    }
30793}
30794impl AstNode for NotIlike {
30795    #[inline]
30796    fn can_cast(kind: SyntaxKind) -> bool {
30797        kind == SyntaxKind::NOT_ILIKE
30798    }
30799    #[inline]
30800    fn cast(syntax: SyntaxNode) -> Option<Self> {
30801        if Self::can_cast(syntax.kind()) {
30802            Some(Self { syntax })
30803        } else {
30804            None
30805        }
30806    }
30807    #[inline]
30808    fn syntax(&self) -> &SyntaxNode {
30809        &self.syntax
30810    }
30811}
30812impl AstNode for NotIn {
30813    #[inline]
30814    fn can_cast(kind: SyntaxKind) -> bool {
30815        kind == SyntaxKind::NOT_IN
30816    }
30817    #[inline]
30818    fn cast(syntax: SyntaxNode) -> Option<Self> {
30819        if Self::can_cast(syntax.kind()) {
30820            Some(Self { syntax })
30821        } else {
30822            None
30823        }
30824    }
30825    #[inline]
30826    fn syntax(&self) -> &SyntaxNode {
30827        &self.syntax
30828    }
30829}
30830impl AstNode for NotLike {
30831    #[inline]
30832    fn can_cast(kind: SyntaxKind) -> bool {
30833        kind == SyntaxKind::NOT_LIKE
30834    }
30835    #[inline]
30836    fn cast(syntax: SyntaxNode) -> Option<Self> {
30837        if Self::can_cast(syntax.kind()) {
30838            Some(Self { syntax })
30839        } else {
30840            None
30841        }
30842    }
30843    #[inline]
30844    fn syntax(&self) -> &SyntaxNode {
30845        &self.syntax
30846    }
30847}
30848impl AstNode for NotMaterialized {
30849    #[inline]
30850    fn can_cast(kind: SyntaxKind) -> bool {
30851        kind == SyntaxKind::NOT_MATERIALIZED
30852    }
30853    #[inline]
30854    fn cast(syntax: SyntaxNode) -> Option<Self> {
30855        if Self::can_cast(syntax.kind()) {
30856            Some(Self { syntax })
30857        } else {
30858            None
30859        }
30860    }
30861    #[inline]
30862    fn syntax(&self) -> &SyntaxNode {
30863        &self.syntax
30864    }
30865}
30866impl AstNode for NotNullConstraint {
30867    #[inline]
30868    fn can_cast(kind: SyntaxKind) -> bool {
30869        kind == SyntaxKind::NOT_NULL_CONSTRAINT
30870    }
30871    #[inline]
30872    fn cast(syntax: SyntaxNode) -> Option<Self> {
30873        if Self::can_cast(syntax.kind()) {
30874            Some(Self { syntax })
30875        } else {
30876            None
30877        }
30878    }
30879    #[inline]
30880    fn syntax(&self) -> &SyntaxNode {
30881        &self.syntax
30882    }
30883}
30884impl AstNode for NotOf {
30885    #[inline]
30886    fn can_cast(kind: SyntaxKind) -> bool {
30887        kind == SyntaxKind::NOT_OF
30888    }
30889    #[inline]
30890    fn cast(syntax: SyntaxNode) -> Option<Self> {
30891        if Self::can_cast(syntax.kind()) {
30892            Some(Self { syntax })
30893        } else {
30894            None
30895        }
30896    }
30897    #[inline]
30898    fn syntax(&self) -> &SyntaxNode {
30899        &self.syntax
30900    }
30901}
30902impl AstNode for NotSimilarTo {
30903    #[inline]
30904    fn can_cast(kind: SyntaxKind) -> bool {
30905        kind == SyntaxKind::NOT_SIMILAR_TO
30906    }
30907    #[inline]
30908    fn cast(syntax: SyntaxNode) -> Option<Self> {
30909        if Self::can_cast(syntax.kind()) {
30910            Some(Self { syntax })
30911        } else {
30912            None
30913        }
30914    }
30915    #[inline]
30916    fn syntax(&self) -> &SyntaxNode {
30917        &self.syntax
30918    }
30919}
30920impl AstNode for NotValid {
30921    #[inline]
30922    fn can_cast(kind: SyntaxKind) -> bool {
30923        kind == SyntaxKind::NOT_VALID
30924    }
30925    #[inline]
30926    fn cast(syntax: SyntaxNode) -> Option<Self> {
30927        if Self::can_cast(syntax.kind()) {
30928            Some(Self { syntax })
30929        } else {
30930            None
30931        }
30932    }
30933    #[inline]
30934    fn syntax(&self) -> &SyntaxNode {
30935        &self.syntax
30936    }
30937}
30938impl AstNode for Nothing {
30939    #[inline]
30940    fn can_cast(kind: SyntaxKind) -> bool {
30941        kind == SyntaxKind::NOTHING
30942    }
30943    #[inline]
30944    fn cast(syntax: SyntaxNode) -> Option<Self> {
30945        if Self::can_cast(syntax.kind()) {
30946            Some(Self { syntax })
30947        } else {
30948            None
30949        }
30950    }
30951    #[inline]
30952    fn syntax(&self) -> &SyntaxNode {
30953        &self.syntax
30954    }
30955}
30956impl AstNode for Notify {
30957    #[inline]
30958    fn can_cast(kind: SyntaxKind) -> bool {
30959        kind == SyntaxKind::NOTIFY
30960    }
30961    #[inline]
30962    fn cast(syntax: SyntaxNode) -> Option<Self> {
30963        if Self::can_cast(syntax.kind()) {
30964            Some(Self { syntax })
30965        } else {
30966            None
30967        }
30968    }
30969    #[inline]
30970    fn syntax(&self) -> &SyntaxNode {
30971        &self.syntax
30972    }
30973}
30974impl AstNode for NullConstraint {
30975    #[inline]
30976    fn can_cast(kind: SyntaxKind) -> bool {
30977        kind == SyntaxKind::NULL_CONSTRAINT
30978    }
30979    #[inline]
30980    fn cast(syntax: SyntaxNode) -> Option<Self> {
30981        if Self::can_cast(syntax.kind()) {
30982            Some(Self { syntax })
30983        } else {
30984            None
30985        }
30986    }
30987    #[inline]
30988    fn syntax(&self) -> &SyntaxNode {
30989        &self.syntax
30990    }
30991}
30992impl AstNode for NullsDistinct {
30993    #[inline]
30994    fn can_cast(kind: SyntaxKind) -> bool {
30995        kind == SyntaxKind::NULLS_DISTINCT
30996    }
30997    #[inline]
30998    fn cast(syntax: SyntaxNode) -> Option<Self> {
30999        if Self::can_cast(syntax.kind()) {
31000            Some(Self { syntax })
31001        } else {
31002            None
31003        }
31004    }
31005    #[inline]
31006    fn syntax(&self) -> &SyntaxNode {
31007        &self.syntax
31008    }
31009}
31010impl AstNode for NullsFirst {
31011    #[inline]
31012    fn can_cast(kind: SyntaxKind) -> bool {
31013        kind == SyntaxKind::NULLS_FIRST
31014    }
31015    #[inline]
31016    fn cast(syntax: SyntaxNode) -> Option<Self> {
31017        if Self::can_cast(syntax.kind()) {
31018            Some(Self { syntax })
31019        } else {
31020            None
31021        }
31022    }
31023    #[inline]
31024    fn syntax(&self) -> &SyntaxNode {
31025        &self.syntax
31026    }
31027}
31028impl AstNode for NullsLast {
31029    #[inline]
31030    fn can_cast(kind: SyntaxKind) -> bool {
31031        kind == SyntaxKind::NULLS_LAST
31032    }
31033    #[inline]
31034    fn cast(syntax: SyntaxNode) -> Option<Self> {
31035        if Self::can_cast(syntax.kind()) {
31036            Some(Self { syntax })
31037        } else {
31038            None
31039        }
31040    }
31041    #[inline]
31042    fn syntax(&self) -> &SyntaxNode {
31043        &self.syntax
31044    }
31045}
31046impl AstNode for NullsNotDistinct {
31047    #[inline]
31048    fn can_cast(kind: SyntaxKind) -> bool {
31049        kind == SyntaxKind::NULLS_NOT_DISTINCT
31050    }
31051    #[inline]
31052    fn cast(syntax: SyntaxNode) -> Option<Self> {
31053        if Self::can_cast(syntax.kind()) {
31054            Some(Self { syntax })
31055        } else {
31056            None
31057        }
31058    }
31059    #[inline]
31060    fn syntax(&self) -> &SyntaxNode {
31061        &self.syntax
31062    }
31063}
31064impl AstNode for OfType {
31065    #[inline]
31066    fn can_cast(kind: SyntaxKind) -> bool {
31067        kind == SyntaxKind::OF_TYPE
31068    }
31069    #[inline]
31070    fn cast(syntax: SyntaxNode) -> Option<Self> {
31071        if Self::can_cast(syntax.kind()) {
31072            Some(Self { syntax })
31073        } else {
31074            None
31075        }
31076    }
31077    #[inline]
31078    fn syntax(&self) -> &SyntaxNode {
31079        &self.syntax
31080    }
31081}
31082impl AstNode for OffsetClause {
31083    #[inline]
31084    fn can_cast(kind: SyntaxKind) -> bool {
31085        kind == SyntaxKind::OFFSET_CLAUSE
31086    }
31087    #[inline]
31088    fn cast(syntax: SyntaxNode) -> Option<Self> {
31089        if Self::can_cast(syntax.kind()) {
31090            Some(Self { syntax })
31091        } else {
31092            None
31093        }
31094    }
31095    #[inline]
31096    fn syntax(&self) -> &SyntaxNode {
31097        &self.syntax
31098    }
31099}
31100impl AstNode for OnClause {
31101    #[inline]
31102    fn can_cast(kind: SyntaxKind) -> bool {
31103        kind == SyntaxKind::ON_CLAUSE
31104    }
31105    #[inline]
31106    fn cast(syntax: SyntaxNode) -> Option<Self> {
31107        if Self::can_cast(syntax.kind()) {
31108            Some(Self { syntax })
31109        } else {
31110            None
31111        }
31112    }
31113    #[inline]
31114    fn syntax(&self) -> &SyntaxNode {
31115        &self.syntax
31116    }
31117}
31118impl AstNode for OnCommit {
31119    #[inline]
31120    fn can_cast(kind: SyntaxKind) -> bool {
31121        kind == SyntaxKind::ON_COMMIT
31122    }
31123    #[inline]
31124    fn cast(syntax: SyntaxNode) -> Option<Self> {
31125        if Self::can_cast(syntax.kind()) {
31126            Some(Self { syntax })
31127        } else {
31128            None
31129        }
31130    }
31131    #[inline]
31132    fn syntax(&self) -> &SyntaxNode {
31133        &self.syntax
31134    }
31135}
31136impl AstNode for OnConflictClause {
31137    #[inline]
31138    fn can_cast(kind: SyntaxKind) -> bool {
31139        kind == SyntaxKind::ON_CONFLICT_CLAUSE
31140    }
31141    #[inline]
31142    fn cast(syntax: SyntaxNode) -> Option<Self> {
31143        if Self::can_cast(syntax.kind()) {
31144            Some(Self { syntax })
31145        } else {
31146            None
31147        }
31148    }
31149    #[inline]
31150    fn syntax(&self) -> &SyntaxNode {
31151        &self.syntax
31152    }
31153}
31154impl AstNode for OnDeleteAction {
31155    #[inline]
31156    fn can_cast(kind: SyntaxKind) -> bool {
31157        kind == SyntaxKind::ON_DELETE_ACTION
31158    }
31159    #[inline]
31160    fn cast(syntax: SyntaxNode) -> Option<Self> {
31161        if Self::can_cast(syntax.kind()) {
31162            Some(Self { syntax })
31163        } else {
31164            None
31165        }
31166    }
31167    #[inline]
31168    fn syntax(&self) -> &SyntaxNode {
31169        &self.syntax
31170    }
31171}
31172impl AstNode for OnPath {
31173    #[inline]
31174    fn can_cast(kind: SyntaxKind) -> bool {
31175        kind == SyntaxKind::ON_PATH
31176    }
31177    #[inline]
31178    fn cast(syntax: SyntaxNode) -> Option<Self> {
31179        if Self::can_cast(syntax.kind()) {
31180            Some(Self { syntax })
31181        } else {
31182            None
31183        }
31184    }
31185    #[inline]
31186    fn syntax(&self) -> &SyntaxNode {
31187        &self.syntax
31188    }
31189}
31190impl AstNode for OnTable {
31191    #[inline]
31192    fn can_cast(kind: SyntaxKind) -> bool {
31193        kind == SyntaxKind::ON_TABLE
31194    }
31195    #[inline]
31196    fn cast(syntax: SyntaxNode) -> Option<Self> {
31197        if Self::can_cast(syntax.kind()) {
31198            Some(Self { syntax })
31199        } else {
31200            None
31201        }
31202    }
31203    #[inline]
31204    fn syntax(&self) -> &SyntaxNode {
31205        &self.syntax
31206    }
31207}
31208impl AstNode for OnUpdateAction {
31209    #[inline]
31210    fn can_cast(kind: SyntaxKind) -> bool {
31211        kind == SyntaxKind::ON_UPDATE_ACTION
31212    }
31213    #[inline]
31214    fn cast(syntax: SyntaxNode) -> Option<Self> {
31215        if Self::can_cast(syntax.kind()) {
31216            Some(Self { syntax })
31217        } else {
31218            None
31219        }
31220    }
31221    #[inline]
31222    fn syntax(&self) -> &SyntaxNode {
31223        &self.syntax
31224    }
31225}
31226impl AstNode for Op {
31227    #[inline]
31228    fn can_cast(kind: SyntaxKind) -> bool {
31229        kind == SyntaxKind::OP
31230    }
31231    #[inline]
31232    fn cast(syntax: SyntaxNode) -> Option<Self> {
31233        if Self::can_cast(syntax.kind()) {
31234            Some(Self { syntax })
31235        } else {
31236            None
31237        }
31238    }
31239    #[inline]
31240    fn syntax(&self) -> &SyntaxNode {
31241        &self.syntax
31242    }
31243}
31244impl AstNode for OpClassOption {
31245    #[inline]
31246    fn can_cast(kind: SyntaxKind) -> bool {
31247        kind == SyntaxKind::OP_CLASS_OPTION
31248    }
31249    #[inline]
31250    fn cast(syntax: SyntaxNode) -> Option<Self> {
31251        if Self::can_cast(syntax.kind()) {
31252            Some(Self { syntax })
31253        } else {
31254            None
31255        }
31256    }
31257    #[inline]
31258    fn syntax(&self) -> &SyntaxNode {
31259        &self.syntax
31260    }
31261}
31262impl AstNode for OpSig {
31263    #[inline]
31264    fn can_cast(kind: SyntaxKind) -> bool {
31265        kind == SyntaxKind::OP_SIG
31266    }
31267    #[inline]
31268    fn cast(syntax: SyntaxNode) -> Option<Self> {
31269        if Self::can_cast(syntax.kind()) {
31270            Some(Self { syntax })
31271        } else {
31272            None
31273        }
31274    }
31275    #[inline]
31276    fn syntax(&self) -> &SyntaxNode {
31277        &self.syntax
31278    }
31279}
31280impl AstNode for OpSigList {
31281    #[inline]
31282    fn can_cast(kind: SyntaxKind) -> bool {
31283        kind == SyntaxKind::OP_SIG_LIST
31284    }
31285    #[inline]
31286    fn cast(syntax: SyntaxNode) -> Option<Self> {
31287        if Self::can_cast(syntax.kind()) {
31288            Some(Self { syntax })
31289        } else {
31290            None
31291        }
31292    }
31293    #[inline]
31294    fn syntax(&self) -> &SyntaxNode {
31295        &self.syntax
31296    }
31297}
31298impl AstNode for OperatorCall {
31299    #[inline]
31300    fn can_cast(kind: SyntaxKind) -> bool {
31301        kind == SyntaxKind::OPERATOR_CALL
31302    }
31303    #[inline]
31304    fn cast(syntax: SyntaxNode) -> Option<Self> {
31305        if Self::can_cast(syntax.kind()) {
31306            Some(Self { syntax })
31307        } else {
31308            None
31309        }
31310    }
31311    #[inline]
31312    fn syntax(&self) -> &SyntaxNode {
31313        &self.syntax
31314    }
31315}
31316impl AstNode for OperatorClassOptionList {
31317    #[inline]
31318    fn can_cast(kind: SyntaxKind) -> bool {
31319        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
31320    }
31321    #[inline]
31322    fn cast(syntax: SyntaxNode) -> Option<Self> {
31323        if Self::can_cast(syntax.kind()) {
31324            Some(Self { syntax })
31325        } else {
31326            None
31327        }
31328    }
31329    #[inline]
31330    fn syntax(&self) -> &SyntaxNode {
31331        &self.syntax
31332    }
31333}
31334impl AstNode for OptionItem {
31335    #[inline]
31336    fn can_cast(kind: SyntaxKind) -> bool {
31337        kind == SyntaxKind::OPTION_ITEM
31338    }
31339    #[inline]
31340    fn cast(syntax: SyntaxNode) -> Option<Self> {
31341        if Self::can_cast(syntax.kind()) {
31342            Some(Self { syntax })
31343        } else {
31344            None
31345        }
31346    }
31347    #[inline]
31348    fn syntax(&self) -> &SyntaxNode {
31349        &self.syntax
31350    }
31351}
31352impl AstNode for OptionItemList {
31353    #[inline]
31354    fn can_cast(kind: SyntaxKind) -> bool {
31355        kind == SyntaxKind::OPTION_ITEM_LIST
31356    }
31357    #[inline]
31358    fn cast(syntax: SyntaxNode) -> Option<Self> {
31359        if Self::can_cast(syntax.kind()) {
31360            Some(Self { syntax })
31361        } else {
31362            None
31363        }
31364    }
31365    #[inline]
31366    fn syntax(&self) -> &SyntaxNode {
31367        &self.syntax
31368    }
31369}
31370impl AstNode for OrReplace {
31371    #[inline]
31372    fn can_cast(kind: SyntaxKind) -> bool {
31373        kind == SyntaxKind::OR_REPLACE
31374    }
31375    #[inline]
31376    fn cast(syntax: SyntaxNode) -> Option<Self> {
31377        if Self::can_cast(syntax.kind()) {
31378            Some(Self { syntax })
31379        } else {
31380            None
31381        }
31382    }
31383    #[inline]
31384    fn syntax(&self) -> &SyntaxNode {
31385        &self.syntax
31386    }
31387}
31388impl AstNode for OrderByClause {
31389    #[inline]
31390    fn can_cast(kind: SyntaxKind) -> bool {
31391        kind == SyntaxKind::ORDER_BY_CLAUSE
31392    }
31393    #[inline]
31394    fn cast(syntax: SyntaxNode) -> Option<Self> {
31395        if Self::can_cast(syntax.kind()) {
31396            Some(Self { syntax })
31397        } else {
31398            None
31399        }
31400    }
31401    #[inline]
31402    fn syntax(&self) -> &SyntaxNode {
31403        &self.syntax
31404    }
31405}
31406impl AstNode for OverClause {
31407    #[inline]
31408    fn can_cast(kind: SyntaxKind) -> bool {
31409        kind == SyntaxKind::OVER_CLAUSE
31410    }
31411    #[inline]
31412    fn cast(syntax: SyntaxNode) -> Option<Self> {
31413        if Self::can_cast(syntax.kind()) {
31414            Some(Self { syntax })
31415        } else {
31416            None
31417        }
31418    }
31419    #[inline]
31420    fn syntax(&self) -> &SyntaxNode {
31421        &self.syntax
31422    }
31423}
31424impl AstNode for OverlayFn {
31425    #[inline]
31426    fn can_cast(kind: SyntaxKind) -> bool {
31427        kind == SyntaxKind::OVERLAY_FN
31428    }
31429    #[inline]
31430    fn cast(syntax: SyntaxNode) -> Option<Self> {
31431        if Self::can_cast(syntax.kind()) {
31432            Some(Self { syntax })
31433        } else {
31434            None
31435        }
31436    }
31437    #[inline]
31438    fn syntax(&self) -> &SyntaxNode {
31439        &self.syntax
31440    }
31441}
31442impl AstNode for OwnedByRoles {
31443    #[inline]
31444    fn can_cast(kind: SyntaxKind) -> bool {
31445        kind == SyntaxKind::OWNED_BY_ROLES
31446    }
31447    #[inline]
31448    fn cast(syntax: SyntaxNode) -> Option<Self> {
31449        if Self::can_cast(syntax.kind()) {
31450            Some(Self { syntax })
31451        } else {
31452            None
31453        }
31454    }
31455    #[inline]
31456    fn syntax(&self) -> &SyntaxNode {
31457        &self.syntax
31458    }
31459}
31460impl AstNode for OwnerTo {
31461    #[inline]
31462    fn can_cast(kind: SyntaxKind) -> bool {
31463        kind == SyntaxKind::OWNER_TO
31464    }
31465    #[inline]
31466    fn cast(syntax: SyntaxNode) -> Option<Self> {
31467        if Self::can_cast(syntax.kind()) {
31468            Some(Self { syntax })
31469        } else {
31470            None
31471        }
31472    }
31473    #[inline]
31474    fn syntax(&self) -> &SyntaxNode {
31475        &self.syntax
31476    }
31477}
31478impl AstNode for ParallelFuncOption {
31479    #[inline]
31480    fn can_cast(kind: SyntaxKind) -> bool {
31481        kind == SyntaxKind::PARALLEL_FUNC_OPTION
31482    }
31483    #[inline]
31484    fn cast(syntax: SyntaxNode) -> Option<Self> {
31485        if Self::can_cast(syntax.kind()) {
31486            Some(Self { syntax })
31487        } else {
31488            None
31489        }
31490    }
31491    #[inline]
31492    fn syntax(&self) -> &SyntaxNode {
31493        &self.syntax
31494    }
31495}
31496impl AstNode for Param {
31497    #[inline]
31498    fn can_cast(kind: SyntaxKind) -> bool {
31499        kind == SyntaxKind::PARAM
31500    }
31501    #[inline]
31502    fn cast(syntax: SyntaxNode) -> Option<Self> {
31503        if Self::can_cast(syntax.kind()) {
31504            Some(Self { syntax })
31505        } else {
31506            None
31507        }
31508    }
31509    #[inline]
31510    fn syntax(&self) -> &SyntaxNode {
31511        &self.syntax
31512    }
31513}
31514impl AstNode for ParamDefault {
31515    #[inline]
31516    fn can_cast(kind: SyntaxKind) -> bool {
31517        kind == SyntaxKind::PARAM_DEFAULT
31518    }
31519    #[inline]
31520    fn cast(syntax: SyntaxNode) -> Option<Self> {
31521        if Self::can_cast(syntax.kind()) {
31522            Some(Self { syntax })
31523        } else {
31524            None
31525        }
31526    }
31527    #[inline]
31528    fn syntax(&self) -> &SyntaxNode {
31529        &self.syntax
31530    }
31531}
31532impl AstNode for ParamIn {
31533    #[inline]
31534    fn can_cast(kind: SyntaxKind) -> bool {
31535        kind == SyntaxKind::PARAM_IN
31536    }
31537    #[inline]
31538    fn cast(syntax: SyntaxNode) -> Option<Self> {
31539        if Self::can_cast(syntax.kind()) {
31540            Some(Self { syntax })
31541        } else {
31542            None
31543        }
31544    }
31545    #[inline]
31546    fn syntax(&self) -> &SyntaxNode {
31547        &self.syntax
31548    }
31549}
31550impl AstNode for ParamInOut {
31551    #[inline]
31552    fn can_cast(kind: SyntaxKind) -> bool {
31553        kind == SyntaxKind::PARAM_IN_OUT
31554    }
31555    #[inline]
31556    fn cast(syntax: SyntaxNode) -> Option<Self> {
31557        if Self::can_cast(syntax.kind()) {
31558            Some(Self { syntax })
31559        } else {
31560            None
31561        }
31562    }
31563    #[inline]
31564    fn syntax(&self) -> &SyntaxNode {
31565        &self.syntax
31566    }
31567}
31568impl AstNode for ParamList {
31569    #[inline]
31570    fn can_cast(kind: SyntaxKind) -> bool {
31571        kind == SyntaxKind::PARAM_LIST
31572    }
31573    #[inline]
31574    fn cast(syntax: SyntaxNode) -> Option<Self> {
31575        if Self::can_cast(syntax.kind()) {
31576            Some(Self { syntax })
31577        } else {
31578            None
31579        }
31580    }
31581    #[inline]
31582    fn syntax(&self) -> &SyntaxNode {
31583        &self.syntax
31584    }
31585}
31586impl AstNode for ParamOut {
31587    #[inline]
31588    fn can_cast(kind: SyntaxKind) -> bool {
31589        kind == SyntaxKind::PARAM_OUT
31590    }
31591    #[inline]
31592    fn cast(syntax: SyntaxNode) -> Option<Self> {
31593        if Self::can_cast(syntax.kind()) {
31594            Some(Self { syntax })
31595        } else {
31596            None
31597        }
31598    }
31599    #[inline]
31600    fn syntax(&self) -> &SyntaxNode {
31601        &self.syntax
31602    }
31603}
31604impl AstNode for ParamVariadic {
31605    #[inline]
31606    fn can_cast(kind: SyntaxKind) -> bool {
31607        kind == SyntaxKind::PARAM_VARIADIC
31608    }
31609    #[inline]
31610    fn cast(syntax: SyntaxNode) -> Option<Self> {
31611        if Self::can_cast(syntax.kind()) {
31612            Some(Self { syntax })
31613        } else {
31614            None
31615        }
31616    }
31617    #[inline]
31618    fn syntax(&self) -> &SyntaxNode {
31619        &self.syntax
31620    }
31621}
31622impl AstNode for ParenExpr {
31623    #[inline]
31624    fn can_cast(kind: SyntaxKind) -> bool {
31625        kind == SyntaxKind::PAREN_EXPR
31626    }
31627    #[inline]
31628    fn cast(syntax: SyntaxNode) -> Option<Self> {
31629        if Self::can_cast(syntax.kind()) {
31630            Some(Self { syntax })
31631        } else {
31632            None
31633        }
31634    }
31635    #[inline]
31636    fn syntax(&self) -> &SyntaxNode {
31637        &self.syntax
31638    }
31639}
31640impl AstNode for ParenGraphPattern {
31641    #[inline]
31642    fn can_cast(kind: SyntaxKind) -> bool {
31643        kind == SyntaxKind::PAREN_GRAPH_PATTERN
31644    }
31645    #[inline]
31646    fn cast(syntax: SyntaxNode) -> Option<Self> {
31647        if Self::can_cast(syntax.kind()) {
31648            Some(Self { syntax })
31649        } else {
31650            None
31651        }
31652    }
31653    #[inline]
31654    fn syntax(&self) -> &SyntaxNode {
31655        &self.syntax
31656    }
31657}
31658impl AstNode for ParenSelect {
31659    #[inline]
31660    fn can_cast(kind: SyntaxKind) -> bool {
31661        kind == SyntaxKind::PAREN_SELECT
31662    }
31663    #[inline]
31664    fn cast(syntax: SyntaxNode) -> Option<Self> {
31665        if Self::can_cast(syntax.kind()) {
31666            Some(Self { syntax })
31667        } else {
31668            None
31669        }
31670    }
31671    #[inline]
31672    fn syntax(&self) -> &SyntaxNode {
31673        &self.syntax
31674    }
31675}
31676impl AstNode for Partition {
31677    #[inline]
31678    fn can_cast(kind: SyntaxKind) -> bool {
31679        kind == SyntaxKind::PARTITION
31680    }
31681    #[inline]
31682    fn cast(syntax: SyntaxNode) -> Option<Self> {
31683        if Self::can_cast(syntax.kind()) {
31684            Some(Self { syntax })
31685        } else {
31686            None
31687        }
31688    }
31689    #[inline]
31690    fn syntax(&self) -> &SyntaxNode {
31691        &self.syntax
31692    }
31693}
31694impl AstNode for PartitionBy {
31695    #[inline]
31696    fn can_cast(kind: SyntaxKind) -> bool {
31697        kind == SyntaxKind::PARTITION_BY
31698    }
31699    #[inline]
31700    fn cast(syntax: SyntaxNode) -> Option<Self> {
31701        if Self::can_cast(syntax.kind()) {
31702            Some(Self { syntax })
31703        } else {
31704            None
31705        }
31706    }
31707    #[inline]
31708    fn syntax(&self) -> &SyntaxNode {
31709        &self.syntax
31710    }
31711}
31712impl AstNode for PartitionDefault {
31713    #[inline]
31714    fn can_cast(kind: SyntaxKind) -> bool {
31715        kind == SyntaxKind::PARTITION_DEFAULT
31716    }
31717    #[inline]
31718    fn cast(syntax: SyntaxNode) -> Option<Self> {
31719        if Self::can_cast(syntax.kind()) {
31720            Some(Self { syntax })
31721        } else {
31722            None
31723        }
31724    }
31725    #[inline]
31726    fn syntax(&self) -> &SyntaxNode {
31727        &self.syntax
31728    }
31729}
31730impl AstNode for PartitionForValuesFrom {
31731    #[inline]
31732    fn can_cast(kind: SyntaxKind) -> bool {
31733        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
31734    }
31735    #[inline]
31736    fn cast(syntax: SyntaxNode) -> Option<Self> {
31737        if Self::can_cast(syntax.kind()) {
31738            Some(Self { syntax })
31739        } else {
31740            None
31741        }
31742    }
31743    #[inline]
31744    fn syntax(&self) -> &SyntaxNode {
31745        &self.syntax
31746    }
31747}
31748impl AstNode for PartitionForValuesIn {
31749    #[inline]
31750    fn can_cast(kind: SyntaxKind) -> bool {
31751        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
31752    }
31753    #[inline]
31754    fn cast(syntax: SyntaxNode) -> Option<Self> {
31755        if Self::can_cast(syntax.kind()) {
31756            Some(Self { syntax })
31757        } else {
31758            None
31759        }
31760    }
31761    #[inline]
31762    fn syntax(&self) -> &SyntaxNode {
31763        &self.syntax
31764    }
31765}
31766impl AstNode for PartitionForValuesWith {
31767    #[inline]
31768    fn can_cast(kind: SyntaxKind) -> bool {
31769        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
31770    }
31771    #[inline]
31772    fn cast(syntax: SyntaxNode) -> Option<Self> {
31773        if Self::can_cast(syntax.kind()) {
31774            Some(Self { syntax })
31775        } else {
31776            None
31777        }
31778    }
31779    #[inline]
31780    fn syntax(&self) -> &SyntaxNode {
31781        &self.syntax
31782    }
31783}
31784impl AstNode for PartitionItem {
31785    #[inline]
31786    fn can_cast(kind: SyntaxKind) -> bool {
31787        kind == SyntaxKind::PARTITION_ITEM
31788    }
31789    #[inline]
31790    fn cast(syntax: SyntaxNode) -> Option<Self> {
31791        if Self::can_cast(syntax.kind()) {
31792            Some(Self { syntax })
31793        } else {
31794            None
31795        }
31796    }
31797    #[inline]
31798    fn syntax(&self) -> &SyntaxNode {
31799        &self.syntax
31800    }
31801}
31802impl AstNode for PartitionItemList {
31803    #[inline]
31804    fn can_cast(kind: SyntaxKind) -> bool {
31805        kind == SyntaxKind::PARTITION_ITEM_LIST
31806    }
31807    #[inline]
31808    fn cast(syntax: SyntaxNode) -> Option<Self> {
31809        if Self::can_cast(syntax.kind()) {
31810            Some(Self { syntax })
31811        } else {
31812            None
31813        }
31814    }
31815    #[inline]
31816    fn syntax(&self) -> &SyntaxNode {
31817        &self.syntax
31818    }
31819}
31820impl AstNode for PartitionList {
31821    #[inline]
31822    fn can_cast(kind: SyntaxKind) -> bool {
31823        kind == SyntaxKind::PARTITION_LIST
31824    }
31825    #[inline]
31826    fn cast(syntax: SyntaxNode) -> Option<Self> {
31827        if Self::can_cast(syntax.kind()) {
31828            Some(Self { syntax })
31829        } else {
31830            None
31831        }
31832    }
31833    #[inline]
31834    fn syntax(&self) -> &SyntaxNode {
31835        &self.syntax
31836    }
31837}
31838impl AstNode for PartitionOf {
31839    #[inline]
31840    fn can_cast(kind: SyntaxKind) -> bool {
31841        kind == SyntaxKind::PARTITION_OF
31842    }
31843    #[inline]
31844    fn cast(syntax: SyntaxNode) -> Option<Self> {
31845        if Self::can_cast(syntax.kind()) {
31846            Some(Self { syntax })
31847        } else {
31848            None
31849        }
31850    }
31851    #[inline]
31852    fn syntax(&self) -> &SyntaxNode {
31853        &self.syntax
31854    }
31855}
31856impl AstNode for Path {
31857    #[inline]
31858    fn can_cast(kind: SyntaxKind) -> bool {
31859        kind == SyntaxKind::PATH
31860    }
31861    #[inline]
31862    fn cast(syntax: SyntaxNode) -> Option<Self> {
31863        if Self::can_cast(syntax.kind()) {
31864            Some(Self { syntax })
31865        } else {
31866            None
31867        }
31868    }
31869    #[inline]
31870    fn syntax(&self) -> &SyntaxNode {
31871        &self.syntax
31872    }
31873}
31874impl AstNode for PathFactor {
31875    #[inline]
31876    fn can_cast(kind: SyntaxKind) -> bool {
31877        kind == SyntaxKind::PATH_FACTOR
31878    }
31879    #[inline]
31880    fn cast(syntax: SyntaxNode) -> Option<Self> {
31881        if Self::can_cast(syntax.kind()) {
31882            Some(Self { syntax })
31883        } else {
31884            None
31885        }
31886    }
31887    #[inline]
31888    fn syntax(&self) -> &SyntaxNode {
31889        &self.syntax
31890    }
31891}
31892impl AstNode for PathList {
31893    #[inline]
31894    fn can_cast(kind: SyntaxKind) -> bool {
31895        kind == SyntaxKind::PATH_LIST
31896    }
31897    #[inline]
31898    fn cast(syntax: SyntaxNode) -> Option<Self> {
31899        if Self::can_cast(syntax.kind()) {
31900            Some(Self { syntax })
31901        } else {
31902            None
31903        }
31904    }
31905    #[inline]
31906    fn syntax(&self) -> &SyntaxNode {
31907        &self.syntax
31908    }
31909}
31910impl AstNode for PathPattern {
31911    #[inline]
31912    fn can_cast(kind: SyntaxKind) -> bool {
31913        kind == SyntaxKind::PATH_PATTERN
31914    }
31915    #[inline]
31916    fn cast(syntax: SyntaxNode) -> Option<Self> {
31917        if Self::can_cast(syntax.kind()) {
31918            Some(Self { syntax })
31919        } else {
31920            None
31921        }
31922    }
31923    #[inline]
31924    fn syntax(&self) -> &SyntaxNode {
31925        &self.syntax
31926    }
31927}
31928impl AstNode for PathPatternList {
31929    #[inline]
31930    fn can_cast(kind: SyntaxKind) -> bool {
31931        kind == SyntaxKind::PATH_PATTERN_LIST
31932    }
31933    #[inline]
31934    fn cast(syntax: SyntaxNode) -> Option<Self> {
31935        if Self::can_cast(syntax.kind()) {
31936            Some(Self { syntax })
31937        } else {
31938            None
31939        }
31940    }
31941    #[inline]
31942    fn syntax(&self) -> &SyntaxNode {
31943        &self.syntax
31944    }
31945}
31946impl AstNode for PathSegment {
31947    #[inline]
31948    fn can_cast(kind: SyntaxKind) -> bool {
31949        kind == SyntaxKind::PATH_SEGMENT
31950    }
31951    #[inline]
31952    fn cast(syntax: SyntaxNode) -> Option<Self> {
31953        if Self::can_cast(syntax.kind()) {
31954            Some(Self { syntax })
31955        } else {
31956            None
31957        }
31958    }
31959    #[inline]
31960    fn syntax(&self) -> &SyntaxNode {
31961        &self.syntax
31962    }
31963}
31964impl AstNode for PathType {
31965    #[inline]
31966    fn can_cast(kind: SyntaxKind) -> bool {
31967        kind == SyntaxKind::PATH_TYPE
31968    }
31969    #[inline]
31970    fn cast(syntax: SyntaxNode) -> Option<Self> {
31971        if Self::can_cast(syntax.kind()) {
31972            Some(Self { syntax })
31973        } else {
31974            None
31975        }
31976    }
31977    #[inline]
31978    fn syntax(&self) -> &SyntaxNode {
31979        &self.syntax
31980    }
31981}
31982impl AstNode for PercentType {
31983    #[inline]
31984    fn can_cast(kind: SyntaxKind) -> bool {
31985        kind == SyntaxKind::PERCENT_TYPE
31986    }
31987    #[inline]
31988    fn cast(syntax: SyntaxNode) -> Option<Self> {
31989        if Self::can_cast(syntax.kind()) {
31990            Some(Self { syntax })
31991        } else {
31992            None
31993        }
31994    }
31995    #[inline]
31996    fn syntax(&self) -> &SyntaxNode {
31997        &self.syntax
31998    }
31999}
32000impl AstNode for PercentTypeClause {
32001    #[inline]
32002    fn can_cast(kind: SyntaxKind) -> bool {
32003        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
32004    }
32005    #[inline]
32006    fn cast(syntax: SyntaxNode) -> Option<Self> {
32007        if Self::can_cast(syntax.kind()) {
32008            Some(Self { syntax })
32009        } else {
32010            None
32011        }
32012    }
32013    #[inline]
32014    fn syntax(&self) -> &SyntaxNode {
32015        &self.syntax
32016    }
32017}
32018impl AstNode for PositionFn {
32019    #[inline]
32020    fn can_cast(kind: SyntaxKind) -> bool {
32021        kind == SyntaxKind::POSITION_FN
32022    }
32023    #[inline]
32024    fn cast(syntax: SyntaxNode) -> Option<Self> {
32025        if Self::can_cast(syntax.kind()) {
32026            Some(Self { syntax })
32027        } else {
32028            None
32029        }
32030    }
32031    #[inline]
32032    fn syntax(&self) -> &SyntaxNode {
32033        &self.syntax
32034    }
32035}
32036impl AstNode for PostfixExpr {
32037    #[inline]
32038    fn can_cast(kind: SyntaxKind) -> bool {
32039        kind == SyntaxKind::POSTFIX_EXPR
32040    }
32041    #[inline]
32042    fn cast(syntax: SyntaxNode) -> Option<Self> {
32043        if Self::can_cast(syntax.kind()) {
32044            Some(Self { syntax })
32045        } else {
32046            None
32047        }
32048    }
32049    #[inline]
32050    fn syntax(&self) -> &SyntaxNode {
32051        &self.syntax
32052    }
32053}
32054impl AstNode for PrefixExpr {
32055    #[inline]
32056    fn can_cast(kind: SyntaxKind) -> bool {
32057        kind == SyntaxKind::PREFIX_EXPR
32058    }
32059    #[inline]
32060    fn cast(syntax: SyntaxNode) -> Option<Self> {
32061        if Self::can_cast(syntax.kind()) {
32062            Some(Self { syntax })
32063        } else {
32064            None
32065        }
32066    }
32067    #[inline]
32068    fn syntax(&self) -> &SyntaxNode {
32069        &self.syntax
32070    }
32071}
32072impl AstNode for Prepare {
32073    #[inline]
32074    fn can_cast(kind: SyntaxKind) -> bool {
32075        kind == SyntaxKind::PREPARE
32076    }
32077    #[inline]
32078    fn cast(syntax: SyntaxNode) -> Option<Self> {
32079        if Self::can_cast(syntax.kind()) {
32080            Some(Self { syntax })
32081        } else {
32082            None
32083        }
32084    }
32085    #[inline]
32086    fn syntax(&self) -> &SyntaxNode {
32087        &self.syntax
32088    }
32089}
32090impl AstNode for PrepareTransaction {
32091    #[inline]
32092    fn can_cast(kind: SyntaxKind) -> bool {
32093        kind == SyntaxKind::PREPARE_TRANSACTION
32094    }
32095    #[inline]
32096    fn cast(syntax: SyntaxNode) -> Option<Self> {
32097        if Self::can_cast(syntax.kind()) {
32098            Some(Self { syntax })
32099        } else {
32100            None
32101        }
32102    }
32103    #[inline]
32104    fn syntax(&self) -> &SyntaxNode {
32105        &self.syntax
32106    }
32107}
32108impl AstNode for PreserveRows {
32109    #[inline]
32110    fn can_cast(kind: SyntaxKind) -> bool {
32111        kind == SyntaxKind::PRESERVE_ROWS
32112    }
32113    #[inline]
32114    fn cast(syntax: SyntaxNode) -> Option<Self> {
32115        if Self::can_cast(syntax.kind()) {
32116            Some(Self { syntax })
32117        } else {
32118            None
32119        }
32120    }
32121    #[inline]
32122    fn syntax(&self) -> &SyntaxNode {
32123        &self.syntax
32124    }
32125}
32126impl AstNode for PrimaryKeyConstraint {
32127    #[inline]
32128    fn can_cast(kind: SyntaxKind) -> bool {
32129        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
32130    }
32131    #[inline]
32132    fn cast(syntax: SyntaxNode) -> Option<Self> {
32133        if Self::can_cast(syntax.kind()) {
32134            Some(Self { syntax })
32135        } else {
32136            None
32137        }
32138    }
32139    #[inline]
32140    fn syntax(&self) -> &SyntaxNode {
32141        &self.syntax
32142    }
32143}
32144impl AstNode for Prior {
32145    #[inline]
32146    fn can_cast(kind: SyntaxKind) -> bool {
32147        kind == SyntaxKind::PRIOR
32148    }
32149    #[inline]
32150    fn cast(syntax: SyntaxNode) -> Option<Self> {
32151        if Self::can_cast(syntax.kind()) {
32152            Some(Self { syntax })
32153        } else {
32154            None
32155        }
32156    }
32157    #[inline]
32158    fn syntax(&self) -> &SyntaxNode {
32159        &self.syntax
32160    }
32161}
32162impl AstNode for PrivilegeObjects {
32163    #[inline]
32164    fn can_cast(kind: SyntaxKind) -> bool {
32165        kind == SyntaxKind::PRIVILEGE_OBJECTS
32166    }
32167    #[inline]
32168    fn cast(syntax: SyntaxNode) -> Option<Self> {
32169        if Self::can_cast(syntax.kind()) {
32170            Some(Self { syntax })
32171        } else {
32172            None
32173        }
32174    }
32175    #[inline]
32176    fn syntax(&self) -> &SyntaxNode {
32177        &self.syntax
32178    }
32179}
32180impl AstNode for PrivilegeTarget {
32181    #[inline]
32182    fn can_cast(kind: SyntaxKind) -> bool {
32183        kind == SyntaxKind::PRIVILEGE_TARGET
32184    }
32185    #[inline]
32186    fn cast(syntax: SyntaxNode) -> Option<Self> {
32187        if Self::can_cast(syntax.kind()) {
32188            Some(Self { syntax })
32189        } else {
32190            None
32191        }
32192    }
32193    #[inline]
32194    fn syntax(&self) -> &SyntaxNode {
32195        &self.syntax
32196    }
32197}
32198impl AstNode for Privileges {
32199    #[inline]
32200    fn can_cast(kind: SyntaxKind) -> bool {
32201        kind == SyntaxKind::PRIVILEGES
32202    }
32203    #[inline]
32204    fn cast(syntax: SyntaxNode) -> Option<Self> {
32205        if Self::can_cast(syntax.kind()) {
32206            Some(Self { syntax })
32207        } else {
32208            None
32209        }
32210    }
32211    #[inline]
32212    fn syntax(&self) -> &SyntaxNode {
32213        &self.syntax
32214    }
32215}
32216impl AstNode for Properties {
32217    #[inline]
32218    fn can_cast(kind: SyntaxKind) -> bool {
32219        kind == SyntaxKind::PROPERTIES
32220    }
32221    #[inline]
32222    fn cast(syntax: SyntaxNode) -> Option<Self> {
32223        if Self::can_cast(syntax.kind()) {
32224            Some(Self { syntax })
32225        } else {
32226            None
32227        }
32228    }
32229    #[inline]
32230    fn syntax(&self) -> &SyntaxNode {
32231        &self.syntax
32232    }
32233}
32234impl AstNode for PublicationObject {
32235    #[inline]
32236    fn can_cast(kind: SyntaxKind) -> bool {
32237        kind == SyntaxKind::PUBLICATION_OBJECT
32238    }
32239    #[inline]
32240    fn cast(syntax: SyntaxNode) -> Option<Self> {
32241        if Self::can_cast(syntax.kind()) {
32242            Some(Self { syntax })
32243        } else {
32244            None
32245        }
32246    }
32247    #[inline]
32248    fn syntax(&self) -> &SyntaxNode {
32249        &self.syntax
32250    }
32251}
32252impl AstNode for ReadCommitted {
32253    #[inline]
32254    fn can_cast(kind: SyntaxKind) -> bool {
32255        kind == SyntaxKind::READ_COMMITTED
32256    }
32257    #[inline]
32258    fn cast(syntax: SyntaxNode) -> Option<Self> {
32259        if Self::can_cast(syntax.kind()) {
32260            Some(Self { syntax })
32261        } else {
32262            None
32263        }
32264    }
32265    #[inline]
32266    fn syntax(&self) -> &SyntaxNode {
32267        &self.syntax
32268    }
32269}
32270impl AstNode for ReadOnly {
32271    #[inline]
32272    fn can_cast(kind: SyntaxKind) -> bool {
32273        kind == SyntaxKind::READ_ONLY
32274    }
32275    #[inline]
32276    fn cast(syntax: SyntaxNode) -> Option<Self> {
32277        if Self::can_cast(syntax.kind()) {
32278            Some(Self { syntax })
32279        } else {
32280            None
32281        }
32282    }
32283    #[inline]
32284    fn syntax(&self) -> &SyntaxNode {
32285        &self.syntax
32286    }
32287}
32288impl AstNode for ReadUncommitted {
32289    #[inline]
32290    fn can_cast(kind: SyntaxKind) -> bool {
32291        kind == SyntaxKind::READ_UNCOMMITTED
32292    }
32293    #[inline]
32294    fn cast(syntax: SyntaxNode) -> Option<Self> {
32295        if Self::can_cast(syntax.kind()) {
32296            Some(Self { syntax })
32297        } else {
32298            None
32299        }
32300    }
32301    #[inline]
32302    fn syntax(&self) -> &SyntaxNode {
32303        &self.syntax
32304    }
32305}
32306impl AstNode for ReadWrite {
32307    #[inline]
32308    fn can_cast(kind: SyntaxKind) -> bool {
32309        kind == SyntaxKind::READ_WRITE
32310    }
32311    #[inline]
32312    fn cast(syntax: SyntaxNode) -> Option<Self> {
32313        if Self::can_cast(syntax.kind()) {
32314            Some(Self { syntax })
32315        } else {
32316            None
32317        }
32318    }
32319    #[inline]
32320    fn syntax(&self) -> &SyntaxNode {
32321        &self.syntax
32322    }
32323}
32324impl AstNode for Reassign {
32325    #[inline]
32326    fn can_cast(kind: SyntaxKind) -> bool {
32327        kind == SyntaxKind::REASSIGN
32328    }
32329    #[inline]
32330    fn cast(syntax: SyntaxNode) -> Option<Self> {
32331        if Self::can_cast(syntax.kind()) {
32332            Some(Self { syntax })
32333        } else {
32334            None
32335        }
32336    }
32337    #[inline]
32338    fn syntax(&self) -> &SyntaxNode {
32339        &self.syntax
32340    }
32341}
32342impl AstNode for ReferencesConstraint {
32343    #[inline]
32344    fn can_cast(kind: SyntaxKind) -> bool {
32345        kind == SyntaxKind::REFERENCES_CONSTRAINT
32346    }
32347    #[inline]
32348    fn cast(syntax: SyntaxNode) -> Option<Self> {
32349        if Self::can_cast(syntax.kind()) {
32350            Some(Self { syntax })
32351        } else {
32352            None
32353        }
32354    }
32355    #[inline]
32356    fn syntax(&self) -> &SyntaxNode {
32357        &self.syntax
32358    }
32359}
32360impl AstNode for ReferencesTable {
32361    #[inline]
32362    fn can_cast(kind: SyntaxKind) -> bool {
32363        kind == SyntaxKind::REFERENCES_TABLE
32364    }
32365    #[inline]
32366    fn cast(syntax: SyntaxNode) -> Option<Self> {
32367        if Self::can_cast(syntax.kind()) {
32368            Some(Self { syntax })
32369        } else {
32370            None
32371        }
32372    }
32373    #[inline]
32374    fn syntax(&self) -> &SyntaxNode {
32375        &self.syntax
32376    }
32377}
32378impl AstNode for Referencing {
32379    #[inline]
32380    fn can_cast(kind: SyntaxKind) -> bool {
32381        kind == SyntaxKind::REFERENCING
32382    }
32383    #[inline]
32384    fn cast(syntax: SyntaxNode) -> Option<Self> {
32385        if Self::can_cast(syntax.kind()) {
32386            Some(Self { syntax })
32387        } else {
32388            None
32389        }
32390    }
32391    #[inline]
32392    fn syntax(&self) -> &SyntaxNode {
32393        &self.syntax
32394    }
32395}
32396impl AstNode for ReferencingTable {
32397    #[inline]
32398    fn can_cast(kind: SyntaxKind) -> bool {
32399        kind == SyntaxKind::REFERENCING_TABLE
32400    }
32401    #[inline]
32402    fn cast(syntax: SyntaxNode) -> Option<Self> {
32403        if Self::can_cast(syntax.kind()) {
32404            Some(Self { syntax })
32405        } else {
32406            None
32407        }
32408    }
32409    #[inline]
32410    fn syntax(&self) -> &SyntaxNode {
32411        &self.syntax
32412    }
32413}
32414impl AstNode for Refresh {
32415    #[inline]
32416    fn can_cast(kind: SyntaxKind) -> bool {
32417        kind == SyntaxKind::REFRESH
32418    }
32419    #[inline]
32420    fn cast(syntax: SyntaxNode) -> Option<Self> {
32421        if Self::can_cast(syntax.kind()) {
32422            Some(Self { syntax })
32423        } else {
32424            None
32425        }
32426    }
32427    #[inline]
32428    fn syntax(&self) -> &SyntaxNode {
32429        &self.syntax
32430    }
32431}
32432impl AstNode for RefreshCollationVersion {
32433    #[inline]
32434    fn can_cast(kind: SyntaxKind) -> bool {
32435        kind == SyntaxKind::REFRESH_COLLATION_VERSION
32436    }
32437    #[inline]
32438    fn cast(syntax: SyntaxNode) -> Option<Self> {
32439        if Self::can_cast(syntax.kind()) {
32440            Some(Self { syntax })
32441        } else {
32442            None
32443        }
32444    }
32445    #[inline]
32446    fn syntax(&self) -> &SyntaxNode {
32447        &self.syntax
32448    }
32449}
32450impl AstNode for RefreshVersion {
32451    #[inline]
32452    fn can_cast(kind: SyntaxKind) -> bool {
32453        kind == SyntaxKind::REFRESH_VERSION
32454    }
32455    #[inline]
32456    fn cast(syntax: SyntaxNode) -> Option<Self> {
32457        if Self::can_cast(syntax.kind()) {
32458            Some(Self { syntax })
32459        } else {
32460            None
32461        }
32462    }
32463    #[inline]
32464    fn syntax(&self) -> &SyntaxNode {
32465        &self.syntax
32466    }
32467}
32468impl AstNode for Reindex {
32469    #[inline]
32470    fn can_cast(kind: SyntaxKind) -> bool {
32471        kind == SyntaxKind::REINDEX
32472    }
32473    #[inline]
32474    fn cast(syntax: SyntaxNode) -> Option<Self> {
32475        if Self::can_cast(syntax.kind()) {
32476            Some(Self { syntax })
32477        } else {
32478            None
32479        }
32480    }
32481    #[inline]
32482    fn syntax(&self) -> &SyntaxNode {
32483        &self.syntax
32484    }
32485}
32486impl AstNode for ReindexOption {
32487    #[inline]
32488    fn can_cast(kind: SyntaxKind) -> bool {
32489        kind == SyntaxKind::REINDEX_OPTION
32490    }
32491    #[inline]
32492    fn cast(syntax: SyntaxNode) -> Option<Self> {
32493        if Self::can_cast(syntax.kind()) {
32494            Some(Self { syntax })
32495        } else {
32496            None
32497        }
32498    }
32499    #[inline]
32500    fn syntax(&self) -> &SyntaxNode {
32501        &self.syntax
32502    }
32503}
32504impl AstNode for ReindexOptionList {
32505    #[inline]
32506    fn can_cast(kind: SyntaxKind) -> bool {
32507        kind == SyntaxKind::REINDEX_OPTION_LIST
32508    }
32509    #[inline]
32510    fn cast(syntax: SyntaxNode) -> Option<Self> {
32511        if Self::can_cast(syntax.kind()) {
32512            Some(Self { syntax })
32513        } else {
32514            None
32515        }
32516    }
32517    #[inline]
32518    fn syntax(&self) -> &SyntaxNode {
32519        &self.syntax
32520    }
32521}
32522impl AstNode for RelationName {
32523    #[inline]
32524    fn can_cast(kind: SyntaxKind) -> bool {
32525        kind == SyntaxKind::RELATION_NAME
32526    }
32527    #[inline]
32528    fn cast(syntax: SyntaxNode) -> Option<Self> {
32529        if Self::can_cast(syntax.kind()) {
32530            Some(Self { syntax })
32531        } else {
32532            None
32533        }
32534    }
32535    #[inline]
32536    fn syntax(&self) -> &SyntaxNode {
32537        &self.syntax
32538    }
32539}
32540impl AstNode for Relative {
32541    #[inline]
32542    fn can_cast(kind: SyntaxKind) -> bool {
32543        kind == SyntaxKind::RELATIVE
32544    }
32545    #[inline]
32546    fn cast(syntax: SyntaxNode) -> Option<Self> {
32547        if Self::can_cast(syntax.kind()) {
32548            Some(Self { syntax })
32549        } else {
32550            None
32551        }
32552    }
32553    #[inline]
32554    fn syntax(&self) -> &SyntaxNode {
32555        &self.syntax
32556    }
32557}
32558impl AstNode for ReleaseSavepoint {
32559    #[inline]
32560    fn can_cast(kind: SyntaxKind) -> bool {
32561        kind == SyntaxKind::RELEASE_SAVEPOINT
32562    }
32563    #[inline]
32564    fn cast(syntax: SyntaxNode) -> Option<Self> {
32565        if Self::can_cast(syntax.kind()) {
32566            Some(Self { syntax })
32567        } else {
32568            None
32569        }
32570    }
32571    #[inline]
32572    fn syntax(&self) -> &SyntaxNode {
32573        &self.syntax
32574    }
32575}
32576impl AstNode for RenameAttribute {
32577    #[inline]
32578    fn can_cast(kind: SyntaxKind) -> bool {
32579        kind == SyntaxKind::RENAME_ATTRIBUTE
32580    }
32581    #[inline]
32582    fn cast(syntax: SyntaxNode) -> Option<Self> {
32583        if Self::can_cast(syntax.kind()) {
32584            Some(Self { syntax })
32585        } else {
32586            None
32587        }
32588    }
32589    #[inline]
32590    fn syntax(&self) -> &SyntaxNode {
32591        &self.syntax
32592    }
32593}
32594impl AstNode for RenameColumn {
32595    #[inline]
32596    fn can_cast(kind: SyntaxKind) -> bool {
32597        kind == SyntaxKind::RENAME_COLUMN
32598    }
32599    #[inline]
32600    fn cast(syntax: SyntaxNode) -> Option<Self> {
32601        if Self::can_cast(syntax.kind()) {
32602            Some(Self { syntax })
32603        } else {
32604            None
32605        }
32606    }
32607    #[inline]
32608    fn syntax(&self) -> &SyntaxNode {
32609        &self.syntax
32610    }
32611}
32612impl AstNode for RenameConstraint {
32613    #[inline]
32614    fn can_cast(kind: SyntaxKind) -> bool {
32615        kind == SyntaxKind::RENAME_CONSTRAINT
32616    }
32617    #[inline]
32618    fn cast(syntax: SyntaxNode) -> Option<Self> {
32619        if Self::can_cast(syntax.kind()) {
32620            Some(Self { syntax })
32621        } else {
32622            None
32623        }
32624    }
32625    #[inline]
32626    fn syntax(&self) -> &SyntaxNode {
32627        &self.syntax
32628    }
32629}
32630impl AstNode for RenameTo {
32631    #[inline]
32632    fn can_cast(kind: SyntaxKind) -> bool {
32633        kind == SyntaxKind::RENAME_TO
32634    }
32635    #[inline]
32636    fn cast(syntax: SyntaxNode) -> Option<Self> {
32637        if Self::can_cast(syntax.kind()) {
32638            Some(Self { syntax })
32639        } else {
32640            None
32641        }
32642    }
32643    #[inline]
32644    fn syntax(&self) -> &SyntaxNode {
32645        &self.syntax
32646    }
32647}
32648impl AstNode for RenameValue {
32649    #[inline]
32650    fn can_cast(kind: SyntaxKind) -> bool {
32651        kind == SyntaxKind::RENAME_VALUE
32652    }
32653    #[inline]
32654    fn cast(syntax: SyntaxNode) -> Option<Self> {
32655        if Self::can_cast(syntax.kind()) {
32656            Some(Self { syntax })
32657        } else {
32658            None
32659        }
32660    }
32661    #[inline]
32662    fn syntax(&self) -> &SyntaxNode {
32663        &self.syntax
32664    }
32665}
32666impl AstNode for Repack {
32667    #[inline]
32668    fn can_cast(kind: SyntaxKind) -> bool {
32669        kind == SyntaxKind::REPACK
32670    }
32671    #[inline]
32672    fn cast(syntax: SyntaxNode) -> Option<Self> {
32673        if Self::can_cast(syntax.kind()) {
32674            Some(Self { syntax })
32675        } else {
32676            None
32677        }
32678    }
32679    #[inline]
32680    fn syntax(&self) -> &SyntaxNode {
32681        &self.syntax
32682    }
32683}
32684impl AstNode for RepeatableClause {
32685    #[inline]
32686    fn can_cast(kind: SyntaxKind) -> bool {
32687        kind == SyntaxKind::REPEATABLE_CLAUSE
32688    }
32689    #[inline]
32690    fn cast(syntax: SyntaxNode) -> Option<Self> {
32691        if Self::can_cast(syntax.kind()) {
32692            Some(Self { syntax })
32693        } else {
32694            None
32695        }
32696    }
32697    #[inline]
32698    fn syntax(&self) -> &SyntaxNode {
32699        &self.syntax
32700    }
32701}
32702impl AstNode for RepeatableRead {
32703    #[inline]
32704    fn can_cast(kind: SyntaxKind) -> bool {
32705        kind == SyntaxKind::REPEATABLE_READ
32706    }
32707    #[inline]
32708    fn cast(syntax: SyntaxNode) -> Option<Self> {
32709        if Self::can_cast(syntax.kind()) {
32710            Some(Self { syntax })
32711        } else {
32712            None
32713        }
32714    }
32715    #[inline]
32716    fn syntax(&self) -> &SyntaxNode {
32717        &self.syntax
32718    }
32719}
32720impl AstNode for ReplicaIdentity {
32721    #[inline]
32722    fn can_cast(kind: SyntaxKind) -> bool {
32723        kind == SyntaxKind::REPLICA_IDENTITY
32724    }
32725    #[inline]
32726    fn cast(syntax: SyntaxNode) -> Option<Self> {
32727        if Self::can_cast(syntax.kind()) {
32728            Some(Self { syntax })
32729        } else {
32730            None
32731        }
32732    }
32733    #[inline]
32734    fn syntax(&self) -> &SyntaxNode {
32735        &self.syntax
32736    }
32737}
32738impl AstNode for Reset {
32739    #[inline]
32740    fn can_cast(kind: SyntaxKind) -> bool {
32741        kind == SyntaxKind::RESET
32742    }
32743    #[inline]
32744    fn cast(syntax: SyntaxNode) -> Option<Self> {
32745        if Self::can_cast(syntax.kind()) {
32746            Some(Self { syntax })
32747        } else {
32748            None
32749        }
32750    }
32751    #[inline]
32752    fn syntax(&self) -> &SyntaxNode {
32753        &self.syntax
32754    }
32755}
32756impl AstNode for ResetConfigParam {
32757    #[inline]
32758    fn can_cast(kind: SyntaxKind) -> bool {
32759        kind == SyntaxKind::RESET_CONFIG_PARAM
32760    }
32761    #[inline]
32762    fn cast(syntax: SyntaxNode) -> Option<Self> {
32763        if Self::can_cast(syntax.kind()) {
32764            Some(Self { syntax })
32765        } else {
32766            None
32767        }
32768    }
32769    #[inline]
32770    fn syntax(&self) -> &SyntaxNode {
32771        &self.syntax
32772    }
32773}
32774impl AstNode for ResetFuncOption {
32775    #[inline]
32776    fn can_cast(kind: SyntaxKind) -> bool {
32777        kind == SyntaxKind::RESET_FUNC_OPTION
32778    }
32779    #[inline]
32780    fn cast(syntax: SyntaxNode) -> Option<Self> {
32781        if Self::can_cast(syntax.kind()) {
32782            Some(Self { syntax })
32783        } else {
32784            None
32785        }
32786    }
32787    #[inline]
32788    fn syntax(&self) -> &SyntaxNode {
32789        &self.syntax
32790    }
32791}
32792impl AstNode for ResetOptions {
32793    #[inline]
32794    fn can_cast(kind: SyntaxKind) -> bool {
32795        kind == SyntaxKind::RESET_OPTIONS
32796    }
32797    #[inline]
32798    fn cast(syntax: SyntaxNode) -> Option<Self> {
32799        if Self::can_cast(syntax.kind()) {
32800            Some(Self { syntax })
32801        } else {
32802            None
32803        }
32804    }
32805    #[inline]
32806    fn syntax(&self) -> &SyntaxNode {
32807        &self.syntax
32808    }
32809}
32810impl AstNode for ResetSessionAuth {
32811    #[inline]
32812    fn can_cast(kind: SyntaxKind) -> bool {
32813        kind == SyntaxKind::RESET_SESSION_AUTH
32814    }
32815    #[inline]
32816    fn cast(syntax: SyntaxNode) -> Option<Self> {
32817        if Self::can_cast(syntax.kind()) {
32818            Some(Self { syntax })
32819        } else {
32820            None
32821        }
32822    }
32823    #[inline]
32824    fn syntax(&self) -> &SyntaxNode {
32825        &self.syntax
32826    }
32827}
32828impl AstNode for Restart {
32829    #[inline]
32830    fn can_cast(kind: SyntaxKind) -> bool {
32831        kind == SyntaxKind::RESTART
32832    }
32833    #[inline]
32834    fn cast(syntax: SyntaxNode) -> Option<Self> {
32835        if Self::can_cast(syntax.kind()) {
32836            Some(Self { syntax })
32837        } else {
32838            None
32839        }
32840    }
32841    #[inline]
32842    fn syntax(&self) -> &SyntaxNode {
32843        &self.syntax
32844    }
32845}
32846impl AstNode for Restrict {
32847    #[inline]
32848    fn can_cast(kind: SyntaxKind) -> bool {
32849        kind == SyntaxKind::RESTRICT
32850    }
32851    #[inline]
32852    fn cast(syntax: SyntaxNode) -> Option<Self> {
32853        if Self::can_cast(syntax.kind()) {
32854            Some(Self { syntax })
32855        } else {
32856            None
32857        }
32858    }
32859    #[inline]
32860    fn syntax(&self) -> &SyntaxNode {
32861        &self.syntax
32862    }
32863}
32864impl AstNode for RetType {
32865    #[inline]
32866    fn can_cast(kind: SyntaxKind) -> bool {
32867        kind == SyntaxKind::RET_TYPE
32868    }
32869    #[inline]
32870    fn cast(syntax: SyntaxNode) -> Option<Self> {
32871        if Self::can_cast(syntax.kind()) {
32872            Some(Self { syntax })
32873        } else {
32874            None
32875        }
32876    }
32877    #[inline]
32878    fn syntax(&self) -> &SyntaxNode {
32879        &self.syntax
32880    }
32881}
32882impl AstNode for ReturnFuncOption {
32883    #[inline]
32884    fn can_cast(kind: SyntaxKind) -> bool {
32885        kind == SyntaxKind::RETURN_FUNC_OPTION
32886    }
32887    #[inline]
32888    fn cast(syntax: SyntaxNode) -> Option<Self> {
32889        if Self::can_cast(syntax.kind()) {
32890            Some(Self { syntax })
32891        } else {
32892            None
32893        }
32894    }
32895    #[inline]
32896    fn syntax(&self) -> &SyntaxNode {
32897        &self.syntax
32898    }
32899}
32900impl AstNode for ReturningClause {
32901    #[inline]
32902    fn can_cast(kind: SyntaxKind) -> bool {
32903        kind == SyntaxKind::RETURNING_CLAUSE
32904    }
32905    #[inline]
32906    fn cast(syntax: SyntaxNode) -> Option<Self> {
32907        if Self::can_cast(syntax.kind()) {
32908            Some(Self { syntax })
32909        } else {
32910            None
32911        }
32912    }
32913    #[inline]
32914    fn syntax(&self) -> &SyntaxNode {
32915        &self.syntax
32916    }
32917}
32918impl AstNode for ReturningOption {
32919    #[inline]
32920    fn can_cast(kind: SyntaxKind) -> bool {
32921        kind == SyntaxKind::RETURNING_OPTION
32922    }
32923    #[inline]
32924    fn cast(syntax: SyntaxNode) -> Option<Self> {
32925        if Self::can_cast(syntax.kind()) {
32926            Some(Self { syntax })
32927        } else {
32928            None
32929        }
32930    }
32931    #[inline]
32932    fn syntax(&self) -> &SyntaxNode {
32933        &self.syntax
32934    }
32935}
32936impl AstNode for ReturningOptionList {
32937    #[inline]
32938    fn can_cast(kind: SyntaxKind) -> bool {
32939        kind == SyntaxKind::RETURNING_OPTION_LIST
32940    }
32941    #[inline]
32942    fn cast(syntax: SyntaxNode) -> Option<Self> {
32943        if Self::can_cast(syntax.kind()) {
32944            Some(Self { syntax })
32945        } else {
32946            None
32947        }
32948    }
32949    #[inline]
32950    fn syntax(&self) -> &SyntaxNode {
32951        &self.syntax
32952    }
32953}
32954impl AstNode for Revoke {
32955    #[inline]
32956    fn can_cast(kind: SyntaxKind) -> bool {
32957        kind == SyntaxKind::REVOKE
32958    }
32959    #[inline]
32960    fn cast(syntax: SyntaxNode) -> Option<Self> {
32961        if Self::can_cast(syntax.kind()) {
32962            Some(Self { syntax })
32963        } else {
32964            None
32965        }
32966    }
32967    #[inline]
32968    fn syntax(&self) -> &SyntaxNode {
32969        &self.syntax
32970    }
32971}
32972impl AstNode for RevokeCommand {
32973    #[inline]
32974    fn can_cast(kind: SyntaxKind) -> bool {
32975        kind == SyntaxKind::REVOKE_COMMAND
32976    }
32977    #[inline]
32978    fn cast(syntax: SyntaxNode) -> Option<Self> {
32979        if Self::can_cast(syntax.kind()) {
32980            Some(Self { syntax })
32981        } else {
32982            None
32983        }
32984    }
32985    #[inline]
32986    fn syntax(&self) -> &SyntaxNode {
32987        &self.syntax
32988    }
32989}
32990impl AstNode for RevokeCommandList {
32991    #[inline]
32992    fn can_cast(kind: SyntaxKind) -> bool {
32993        kind == SyntaxKind::REVOKE_COMMAND_LIST
32994    }
32995    #[inline]
32996    fn cast(syntax: SyntaxNode) -> Option<Self> {
32997        if Self::can_cast(syntax.kind()) {
32998            Some(Self { syntax })
32999        } else {
33000            None
33001        }
33002    }
33003    #[inline]
33004    fn syntax(&self) -> &SyntaxNode {
33005        &self.syntax
33006    }
33007}
33008impl AstNode for RevokeDefaultPrivileges {
33009    #[inline]
33010    fn can_cast(kind: SyntaxKind) -> bool {
33011        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
33012    }
33013    #[inline]
33014    fn cast(syntax: SyntaxNode) -> Option<Self> {
33015        if Self::can_cast(syntax.kind()) {
33016            Some(Self { syntax })
33017        } else {
33018            None
33019        }
33020    }
33021    #[inline]
33022    fn syntax(&self) -> &SyntaxNode {
33023        &self.syntax
33024    }
33025}
33026impl AstNode for Role {
33027    #[inline]
33028    fn can_cast(kind: SyntaxKind) -> bool {
33029        kind == SyntaxKind::ROLE
33030    }
33031    #[inline]
33032    fn cast(syntax: SyntaxNode) -> Option<Self> {
33033        if Self::can_cast(syntax.kind()) {
33034            Some(Self { syntax })
33035        } else {
33036            None
33037        }
33038    }
33039    #[inline]
33040    fn syntax(&self) -> &SyntaxNode {
33041        &self.syntax
33042    }
33043}
33044impl AstNode for RoleOption {
33045    #[inline]
33046    fn can_cast(kind: SyntaxKind) -> bool {
33047        kind == SyntaxKind::ROLE_OPTION
33048    }
33049    #[inline]
33050    fn cast(syntax: SyntaxNode) -> Option<Self> {
33051        if Self::can_cast(syntax.kind()) {
33052            Some(Self { syntax })
33053        } else {
33054            None
33055        }
33056    }
33057    #[inline]
33058    fn syntax(&self) -> &SyntaxNode {
33059        &self.syntax
33060    }
33061}
33062impl AstNode for RoleOptionList {
33063    #[inline]
33064    fn can_cast(kind: SyntaxKind) -> bool {
33065        kind == SyntaxKind::ROLE_OPTION_LIST
33066    }
33067    #[inline]
33068    fn cast(syntax: SyntaxNode) -> Option<Self> {
33069        if Self::can_cast(syntax.kind()) {
33070            Some(Self { syntax })
33071        } else {
33072            None
33073        }
33074    }
33075    #[inline]
33076    fn syntax(&self) -> &SyntaxNode {
33077        &self.syntax
33078    }
33079}
33080impl AstNode for RoleRef {
33081    #[inline]
33082    fn can_cast(kind: SyntaxKind) -> bool {
33083        kind == SyntaxKind::ROLE_REF
33084    }
33085    #[inline]
33086    fn cast(syntax: SyntaxNode) -> Option<Self> {
33087        if Self::can_cast(syntax.kind()) {
33088            Some(Self { syntax })
33089        } else {
33090            None
33091        }
33092    }
33093    #[inline]
33094    fn syntax(&self) -> &SyntaxNode {
33095        &self.syntax
33096    }
33097}
33098impl AstNode for RoleRefList {
33099    #[inline]
33100    fn can_cast(kind: SyntaxKind) -> bool {
33101        kind == SyntaxKind::ROLE_REF_LIST
33102    }
33103    #[inline]
33104    fn cast(syntax: SyntaxNode) -> Option<Self> {
33105        if Self::can_cast(syntax.kind()) {
33106            Some(Self { syntax })
33107        } else {
33108            None
33109        }
33110    }
33111    #[inline]
33112    fn syntax(&self) -> &SyntaxNode {
33113        &self.syntax
33114    }
33115}
33116impl AstNode for Rollback {
33117    #[inline]
33118    fn can_cast(kind: SyntaxKind) -> bool {
33119        kind == SyntaxKind::ROLLBACK
33120    }
33121    #[inline]
33122    fn cast(syntax: SyntaxNode) -> Option<Self> {
33123        if Self::can_cast(syntax.kind()) {
33124            Some(Self { syntax })
33125        } else {
33126            None
33127        }
33128    }
33129    #[inline]
33130    fn syntax(&self) -> &SyntaxNode {
33131        &self.syntax
33132    }
33133}
33134impl AstNode for Row {
33135    #[inline]
33136    fn can_cast(kind: SyntaxKind) -> bool {
33137        kind == SyntaxKind::ROW
33138    }
33139    #[inline]
33140    fn cast(syntax: SyntaxNode) -> Option<Self> {
33141        if Self::can_cast(syntax.kind()) {
33142            Some(Self { syntax })
33143        } else {
33144            None
33145        }
33146    }
33147    #[inline]
33148    fn syntax(&self) -> &SyntaxNode {
33149        &self.syntax
33150    }
33151}
33152impl AstNode for RowExclusive {
33153    #[inline]
33154    fn can_cast(kind: SyntaxKind) -> bool {
33155        kind == SyntaxKind::ROW_EXCLUSIVE
33156    }
33157    #[inline]
33158    fn cast(syntax: SyntaxNode) -> Option<Self> {
33159        if Self::can_cast(syntax.kind()) {
33160            Some(Self { syntax })
33161        } else {
33162            None
33163        }
33164    }
33165    #[inline]
33166    fn syntax(&self) -> &SyntaxNode {
33167        &self.syntax
33168    }
33169}
33170impl AstNode for RowList {
33171    #[inline]
33172    fn can_cast(kind: SyntaxKind) -> bool {
33173        kind == SyntaxKind::ROW_LIST
33174    }
33175    #[inline]
33176    fn cast(syntax: SyntaxNode) -> Option<Self> {
33177        if Self::can_cast(syntax.kind()) {
33178            Some(Self { syntax })
33179        } else {
33180            None
33181        }
33182    }
33183    #[inline]
33184    fn syntax(&self) -> &SyntaxNode {
33185        &self.syntax
33186    }
33187}
33188impl AstNode for RowShare {
33189    #[inline]
33190    fn can_cast(kind: SyntaxKind) -> bool {
33191        kind == SyntaxKind::ROW_SHARE
33192    }
33193    #[inline]
33194    fn cast(syntax: SyntaxNode) -> Option<Self> {
33195        if Self::can_cast(syntax.kind()) {
33196            Some(Self { syntax })
33197        } else {
33198            None
33199        }
33200    }
33201    #[inline]
33202    fn syntax(&self) -> &SyntaxNode {
33203        &self.syntax
33204    }
33205}
33206impl AstNode for RowsFuncOption {
33207    #[inline]
33208    fn can_cast(kind: SyntaxKind) -> bool {
33209        kind == SyntaxKind::ROWS_FUNC_OPTION
33210    }
33211    #[inline]
33212    fn cast(syntax: SyntaxNode) -> Option<Self> {
33213        if Self::can_cast(syntax.kind()) {
33214            Some(Self { syntax })
33215        } else {
33216            None
33217        }
33218    }
33219    #[inline]
33220    fn syntax(&self) -> &SyntaxNode {
33221        &self.syntax
33222    }
33223}
33224impl AstNode for RuleDo {
33225    #[inline]
33226    fn can_cast(kind: SyntaxKind) -> bool {
33227        kind == SyntaxKind::RULE_DO
33228    }
33229    #[inline]
33230    fn cast(syntax: SyntaxNode) -> Option<Self> {
33231        if Self::can_cast(syntax.kind()) {
33232            Some(Self { syntax })
33233        } else {
33234            None
33235        }
33236    }
33237    #[inline]
33238    fn syntax(&self) -> &SyntaxNode {
33239        &self.syntax
33240    }
33241}
33242impl AstNode for RuleOn {
33243    #[inline]
33244    fn can_cast(kind: SyntaxKind) -> bool {
33245        kind == SyntaxKind::RULE_ON
33246    }
33247    #[inline]
33248    fn cast(syntax: SyntaxNode) -> Option<Self> {
33249        if Self::can_cast(syntax.kind()) {
33250            Some(Self { syntax })
33251        } else {
33252            None
33253        }
33254    }
33255    #[inline]
33256    fn syntax(&self) -> &SyntaxNode {
33257        &self.syntax
33258    }
33259}
33260impl AstNode for RuleStmtList {
33261    #[inline]
33262    fn can_cast(kind: SyntaxKind) -> bool {
33263        kind == SyntaxKind::RULE_STMT_LIST
33264    }
33265    #[inline]
33266    fn cast(syntax: SyntaxNode) -> Option<Self> {
33267        if Self::can_cast(syntax.kind()) {
33268            Some(Self { syntax })
33269        } else {
33270            None
33271        }
33272    }
33273    #[inline]
33274    fn syntax(&self) -> &SyntaxNode {
33275        &self.syntax
33276    }
33277}
33278impl AstNode for Savepoint {
33279    #[inline]
33280    fn can_cast(kind: SyntaxKind) -> bool {
33281        kind == SyntaxKind::SAVEPOINT
33282    }
33283    #[inline]
33284    fn cast(syntax: SyntaxNode) -> Option<Self> {
33285        if Self::can_cast(syntax.kind()) {
33286            Some(Self { syntax })
33287        } else {
33288            None
33289        }
33290    }
33291    #[inline]
33292    fn syntax(&self) -> &SyntaxNode {
33293        &self.syntax
33294    }
33295}
33296impl AstNode for SearchClause {
33297    #[inline]
33298    fn can_cast(kind: SyntaxKind) -> bool {
33299        kind == SyntaxKind::SEARCH_CLAUSE
33300    }
33301    #[inline]
33302    fn cast(syntax: SyntaxNode) -> Option<Self> {
33303        if Self::can_cast(syntax.kind()) {
33304            Some(Self { syntax })
33305        } else {
33306            None
33307        }
33308    }
33309    #[inline]
33310    fn syntax(&self) -> &SyntaxNode {
33311        &self.syntax
33312    }
33313}
33314impl AstNode for SearchColumns {
33315    #[inline]
33316    fn can_cast(kind: SyntaxKind) -> bool {
33317        kind == SyntaxKind::SEARCH_COLUMNS
33318    }
33319    #[inline]
33320    fn cast(syntax: SyntaxNode) -> Option<Self> {
33321        if Self::can_cast(syntax.kind()) {
33322            Some(Self { syntax })
33323        } else {
33324            None
33325        }
33326    }
33327    #[inline]
33328    fn syntax(&self) -> &SyntaxNode {
33329        &self.syntax
33330    }
33331}
33332impl AstNode for SearchSetColumn {
33333    #[inline]
33334    fn can_cast(kind: SyntaxKind) -> bool {
33335        kind == SyntaxKind::SEARCH_SET_COLUMN
33336    }
33337    #[inline]
33338    fn cast(syntax: SyntaxNode) -> Option<Self> {
33339        if Self::can_cast(syntax.kind()) {
33340            Some(Self { syntax })
33341        } else {
33342            None
33343        }
33344    }
33345    #[inline]
33346    fn syntax(&self) -> &SyntaxNode {
33347        &self.syntax
33348    }
33349}
33350impl AstNode for SecurityFuncOption {
33351    #[inline]
33352    fn can_cast(kind: SyntaxKind) -> bool {
33353        kind == SyntaxKind::SECURITY_FUNC_OPTION
33354    }
33355    #[inline]
33356    fn cast(syntax: SyntaxNode) -> Option<Self> {
33357        if Self::can_cast(syntax.kind()) {
33358            Some(Self { syntax })
33359        } else {
33360            None
33361        }
33362    }
33363    #[inline]
33364    fn syntax(&self) -> &SyntaxNode {
33365        &self.syntax
33366    }
33367}
33368impl AstNode for SecurityLabel {
33369    #[inline]
33370    fn can_cast(kind: SyntaxKind) -> bool {
33371        kind == SyntaxKind::SECURITY_LABEL
33372    }
33373    #[inline]
33374    fn cast(syntax: SyntaxNode) -> Option<Self> {
33375        if Self::can_cast(syntax.kind()) {
33376            Some(Self { syntax })
33377        } else {
33378            None
33379        }
33380    }
33381    #[inline]
33382    fn syntax(&self) -> &SyntaxNode {
33383        &self.syntax
33384    }
33385}
33386impl AstNode for Select {
33387    #[inline]
33388    fn can_cast(kind: SyntaxKind) -> bool {
33389        kind == SyntaxKind::SELECT
33390    }
33391    #[inline]
33392    fn cast(syntax: SyntaxNode) -> Option<Self> {
33393        if Self::can_cast(syntax.kind()) {
33394            Some(Self { syntax })
33395        } else {
33396            None
33397        }
33398    }
33399    #[inline]
33400    fn syntax(&self) -> &SyntaxNode {
33401        &self.syntax
33402    }
33403}
33404impl AstNode for SelectClause {
33405    #[inline]
33406    fn can_cast(kind: SyntaxKind) -> bool {
33407        kind == SyntaxKind::SELECT_CLAUSE
33408    }
33409    #[inline]
33410    fn cast(syntax: SyntaxNode) -> Option<Self> {
33411        if Self::can_cast(syntax.kind()) {
33412            Some(Self { syntax })
33413        } else {
33414            None
33415        }
33416    }
33417    #[inline]
33418    fn syntax(&self) -> &SyntaxNode {
33419        &self.syntax
33420    }
33421}
33422impl AstNode for SelectInto {
33423    #[inline]
33424    fn can_cast(kind: SyntaxKind) -> bool {
33425        kind == SyntaxKind::SELECT_INTO
33426    }
33427    #[inline]
33428    fn cast(syntax: SyntaxNode) -> Option<Self> {
33429        if Self::can_cast(syntax.kind()) {
33430            Some(Self { syntax })
33431        } else {
33432            None
33433        }
33434    }
33435    #[inline]
33436    fn syntax(&self) -> &SyntaxNode {
33437        &self.syntax
33438    }
33439}
33440impl AstNode for SequenceOption {
33441    #[inline]
33442    fn can_cast(kind: SyntaxKind) -> bool {
33443        kind == SyntaxKind::SEQUENCE_OPTION
33444    }
33445    #[inline]
33446    fn cast(syntax: SyntaxNode) -> Option<Self> {
33447        if Self::can_cast(syntax.kind()) {
33448            Some(Self { syntax })
33449        } else {
33450            None
33451        }
33452    }
33453    #[inline]
33454    fn syntax(&self) -> &SyntaxNode {
33455        &self.syntax
33456    }
33457}
33458impl AstNode for SequenceOptionList {
33459    #[inline]
33460    fn can_cast(kind: SyntaxKind) -> bool {
33461        kind == SyntaxKind::SEQUENCE_OPTION_LIST
33462    }
33463    #[inline]
33464    fn cast(syntax: SyntaxNode) -> Option<Self> {
33465        if Self::can_cast(syntax.kind()) {
33466            Some(Self { syntax })
33467        } else {
33468            None
33469        }
33470    }
33471    #[inline]
33472    fn syntax(&self) -> &SyntaxNode {
33473        &self.syntax
33474    }
33475}
33476impl AstNode for Serializable {
33477    #[inline]
33478    fn can_cast(kind: SyntaxKind) -> bool {
33479        kind == SyntaxKind::SERIALIZABLE
33480    }
33481    #[inline]
33482    fn cast(syntax: SyntaxNode) -> Option<Self> {
33483        if Self::can_cast(syntax.kind()) {
33484            Some(Self { syntax })
33485        } else {
33486            None
33487        }
33488    }
33489    #[inline]
33490    fn syntax(&self) -> &SyntaxNode {
33491        &self.syntax
33492    }
33493}
33494impl AstNode for ServerName {
33495    #[inline]
33496    fn can_cast(kind: SyntaxKind) -> bool {
33497        kind == SyntaxKind::SERVER_NAME
33498    }
33499    #[inline]
33500    fn cast(syntax: SyntaxNode) -> Option<Self> {
33501        if Self::can_cast(syntax.kind()) {
33502            Some(Self { syntax })
33503        } else {
33504            None
33505        }
33506    }
33507    #[inline]
33508    fn syntax(&self) -> &SyntaxNode {
33509        &self.syntax
33510    }
33511}
33512impl AstNode for SessionAuthorization {
33513    #[inline]
33514    fn can_cast(kind: SyntaxKind) -> bool {
33515        kind == SyntaxKind::SESSION_AUTHORIZATION
33516    }
33517    #[inline]
33518    fn cast(syntax: SyntaxNode) -> Option<Self> {
33519        if Self::can_cast(syntax.kind()) {
33520            Some(Self { syntax })
33521        } else {
33522            None
33523        }
33524    }
33525    #[inline]
33526    fn syntax(&self) -> &SyntaxNode {
33527        &self.syntax
33528    }
33529}
33530impl AstNode for Set {
33531    #[inline]
33532    fn can_cast(kind: SyntaxKind) -> bool {
33533        kind == SyntaxKind::SET
33534    }
33535    #[inline]
33536    fn cast(syntax: SyntaxNode) -> Option<Self> {
33537        if Self::can_cast(syntax.kind()) {
33538            Some(Self { syntax })
33539        } else {
33540            None
33541        }
33542    }
33543    #[inline]
33544    fn syntax(&self) -> &SyntaxNode {
33545        &self.syntax
33546    }
33547}
33548impl AstNode for SetAccessMethod {
33549    #[inline]
33550    fn can_cast(kind: SyntaxKind) -> bool {
33551        kind == SyntaxKind::SET_ACCESS_METHOD
33552    }
33553    #[inline]
33554    fn cast(syntax: SyntaxNode) -> Option<Self> {
33555        if Self::can_cast(syntax.kind()) {
33556            Some(Self { syntax })
33557        } else {
33558            None
33559        }
33560    }
33561    #[inline]
33562    fn syntax(&self) -> &SyntaxNode {
33563        &self.syntax
33564    }
33565}
33566impl AstNode for SetClause {
33567    #[inline]
33568    fn can_cast(kind: SyntaxKind) -> bool {
33569        kind == SyntaxKind::SET_CLAUSE
33570    }
33571    #[inline]
33572    fn cast(syntax: SyntaxNode) -> Option<Self> {
33573        if Self::can_cast(syntax.kind()) {
33574            Some(Self { syntax })
33575        } else {
33576            None
33577        }
33578    }
33579    #[inline]
33580    fn syntax(&self) -> &SyntaxNode {
33581        &self.syntax
33582    }
33583}
33584impl AstNode for SetColumnList {
33585    #[inline]
33586    fn can_cast(kind: SyntaxKind) -> bool {
33587        kind == SyntaxKind::SET_COLUMN_LIST
33588    }
33589    #[inline]
33590    fn cast(syntax: SyntaxNode) -> Option<Self> {
33591        if Self::can_cast(syntax.kind()) {
33592            Some(Self { syntax })
33593        } else {
33594            None
33595        }
33596    }
33597    #[inline]
33598    fn syntax(&self) -> &SyntaxNode {
33599        &self.syntax
33600    }
33601}
33602impl AstNode for SetCompression {
33603    #[inline]
33604    fn can_cast(kind: SyntaxKind) -> bool {
33605        kind == SyntaxKind::SET_COMPRESSION
33606    }
33607    #[inline]
33608    fn cast(syntax: SyntaxNode) -> Option<Self> {
33609        if Self::can_cast(syntax.kind()) {
33610            Some(Self { syntax })
33611        } else {
33612            None
33613        }
33614    }
33615    #[inline]
33616    fn syntax(&self) -> &SyntaxNode {
33617        &self.syntax
33618    }
33619}
33620impl AstNode for SetConfigParam {
33621    #[inline]
33622    fn can_cast(kind: SyntaxKind) -> bool {
33623        kind == SyntaxKind::SET_CONFIG_PARAM
33624    }
33625    #[inline]
33626    fn cast(syntax: SyntaxNode) -> Option<Self> {
33627        if Self::can_cast(syntax.kind()) {
33628            Some(Self { syntax })
33629        } else {
33630            None
33631        }
33632    }
33633    #[inline]
33634    fn syntax(&self) -> &SyntaxNode {
33635        &self.syntax
33636    }
33637}
33638impl AstNode for SetConstraints {
33639    #[inline]
33640    fn can_cast(kind: SyntaxKind) -> bool {
33641        kind == SyntaxKind::SET_CONSTRAINTS
33642    }
33643    #[inline]
33644    fn cast(syntax: SyntaxNode) -> Option<Self> {
33645        if Self::can_cast(syntax.kind()) {
33646            Some(Self { syntax })
33647        } else {
33648            None
33649        }
33650    }
33651    #[inline]
33652    fn syntax(&self) -> &SyntaxNode {
33653        &self.syntax
33654    }
33655}
33656impl AstNode for SetDefault {
33657    #[inline]
33658    fn can_cast(kind: SyntaxKind) -> bool {
33659        kind == SyntaxKind::SET_DEFAULT
33660    }
33661    #[inline]
33662    fn cast(syntax: SyntaxNode) -> Option<Self> {
33663        if Self::can_cast(syntax.kind()) {
33664            Some(Self { syntax })
33665        } else {
33666            None
33667        }
33668    }
33669    #[inline]
33670    fn syntax(&self) -> &SyntaxNode {
33671        &self.syntax
33672    }
33673}
33674impl AstNode for SetDefaultColumns {
33675    #[inline]
33676    fn can_cast(kind: SyntaxKind) -> bool {
33677        kind == SyntaxKind::SET_DEFAULT_COLUMNS
33678    }
33679    #[inline]
33680    fn cast(syntax: SyntaxNode) -> Option<Self> {
33681        if Self::can_cast(syntax.kind()) {
33682            Some(Self { syntax })
33683        } else {
33684            None
33685        }
33686    }
33687    #[inline]
33688    fn syntax(&self) -> &SyntaxNode {
33689        &self.syntax
33690    }
33691}
33692impl AstNode for SetExpr {
33693    #[inline]
33694    fn can_cast(kind: SyntaxKind) -> bool {
33695        kind == SyntaxKind::SET_EXPR
33696    }
33697    #[inline]
33698    fn cast(syntax: SyntaxNode) -> Option<Self> {
33699        if Self::can_cast(syntax.kind()) {
33700            Some(Self { syntax })
33701        } else {
33702            None
33703        }
33704    }
33705    #[inline]
33706    fn syntax(&self) -> &SyntaxNode {
33707        &self.syntax
33708    }
33709}
33710impl AstNode for SetExprList {
33711    #[inline]
33712    fn can_cast(kind: SyntaxKind) -> bool {
33713        kind == SyntaxKind::SET_EXPR_LIST
33714    }
33715    #[inline]
33716    fn cast(syntax: SyntaxNode) -> Option<Self> {
33717        if Self::can_cast(syntax.kind()) {
33718            Some(Self { syntax })
33719        } else {
33720            None
33721        }
33722    }
33723    #[inline]
33724    fn syntax(&self) -> &SyntaxNode {
33725        &self.syntax
33726    }
33727}
33728impl AstNode for SetExpression {
33729    #[inline]
33730    fn can_cast(kind: SyntaxKind) -> bool {
33731        kind == SyntaxKind::SET_EXPRESSION
33732    }
33733    #[inline]
33734    fn cast(syntax: SyntaxNode) -> Option<Self> {
33735        if Self::can_cast(syntax.kind()) {
33736            Some(Self { syntax })
33737        } else {
33738            None
33739        }
33740    }
33741    #[inline]
33742    fn syntax(&self) -> &SyntaxNode {
33743        &self.syntax
33744    }
33745}
33746impl AstNode for SetFuncOption {
33747    #[inline]
33748    fn can_cast(kind: SyntaxKind) -> bool {
33749        kind == SyntaxKind::SET_FUNC_OPTION
33750    }
33751    #[inline]
33752    fn cast(syntax: SyntaxNode) -> Option<Self> {
33753        if Self::can_cast(syntax.kind()) {
33754            Some(Self { syntax })
33755        } else {
33756            None
33757        }
33758    }
33759    #[inline]
33760    fn syntax(&self) -> &SyntaxNode {
33761        &self.syntax
33762    }
33763}
33764impl AstNode for SetGenerated {
33765    #[inline]
33766    fn can_cast(kind: SyntaxKind) -> bool {
33767        kind == SyntaxKind::SET_GENERATED
33768    }
33769    #[inline]
33770    fn cast(syntax: SyntaxNode) -> Option<Self> {
33771        if Self::can_cast(syntax.kind()) {
33772            Some(Self { syntax })
33773        } else {
33774            None
33775        }
33776    }
33777    #[inline]
33778    fn syntax(&self) -> &SyntaxNode {
33779        &self.syntax
33780    }
33781}
33782impl AstNode for SetGeneratedOptions {
33783    #[inline]
33784    fn can_cast(kind: SyntaxKind) -> bool {
33785        kind == SyntaxKind::SET_GENERATED_OPTIONS
33786    }
33787    #[inline]
33788    fn cast(syntax: SyntaxNode) -> Option<Self> {
33789        if Self::can_cast(syntax.kind()) {
33790            Some(Self { syntax })
33791        } else {
33792            None
33793        }
33794    }
33795    #[inline]
33796    fn syntax(&self) -> &SyntaxNode {
33797        &self.syntax
33798    }
33799}
33800impl AstNode for SetLogged {
33801    #[inline]
33802    fn can_cast(kind: SyntaxKind) -> bool {
33803        kind == SyntaxKind::SET_LOGGED
33804    }
33805    #[inline]
33806    fn cast(syntax: SyntaxNode) -> Option<Self> {
33807        if Self::can_cast(syntax.kind()) {
33808            Some(Self { syntax })
33809        } else {
33810            None
33811        }
33812    }
33813    #[inline]
33814    fn syntax(&self) -> &SyntaxNode {
33815        &self.syntax
33816    }
33817}
33818impl AstNode for SetMultipleColumns {
33819    #[inline]
33820    fn can_cast(kind: SyntaxKind) -> bool {
33821        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
33822    }
33823    #[inline]
33824    fn cast(syntax: SyntaxNode) -> Option<Self> {
33825        if Self::can_cast(syntax.kind()) {
33826            Some(Self { syntax })
33827        } else {
33828            None
33829        }
33830    }
33831    #[inline]
33832    fn syntax(&self) -> &SyntaxNode {
33833        &self.syntax
33834    }
33835}
33836impl AstNode for SetNotNull {
33837    #[inline]
33838    fn can_cast(kind: SyntaxKind) -> bool {
33839        kind == SyntaxKind::SET_NOT_NULL
33840    }
33841    #[inline]
33842    fn cast(syntax: SyntaxNode) -> Option<Self> {
33843        if Self::can_cast(syntax.kind()) {
33844            Some(Self { syntax })
33845        } else {
33846            None
33847        }
33848    }
33849    #[inline]
33850    fn syntax(&self) -> &SyntaxNode {
33851        &self.syntax
33852    }
33853}
33854impl AstNode for SetNullColumns {
33855    #[inline]
33856    fn can_cast(kind: SyntaxKind) -> bool {
33857        kind == SyntaxKind::SET_NULL_COLUMNS
33858    }
33859    #[inline]
33860    fn cast(syntax: SyntaxNode) -> Option<Self> {
33861        if Self::can_cast(syntax.kind()) {
33862            Some(Self { syntax })
33863        } else {
33864            None
33865        }
33866    }
33867    #[inline]
33868    fn syntax(&self) -> &SyntaxNode {
33869        &self.syntax
33870    }
33871}
33872impl AstNode for SetOptions {
33873    #[inline]
33874    fn can_cast(kind: SyntaxKind) -> bool {
33875        kind == SyntaxKind::SET_OPTIONS
33876    }
33877    #[inline]
33878    fn cast(syntax: SyntaxNode) -> Option<Self> {
33879        if Self::can_cast(syntax.kind()) {
33880            Some(Self { syntax })
33881        } else {
33882            None
33883        }
33884    }
33885    #[inline]
33886    fn syntax(&self) -> &SyntaxNode {
33887        &self.syntax
33888    }
33889}
33890impl AstNode for SetOptionsList {
33891    #[inline]
33892    fn can_cast(kind: SyntaxKind) -> bool {
33893        kind == SyntaxKind::SET_OPTIONS_LIST
33894    }
33895    #[inline]
33896    fn cast(syntax: SyntaxNode) -> Option<Self> {
33897        if Self::can_cast(syntax.kind()) {
33898            Some(Self { syntax })
33899        } else {
33900            None
33901        }
33902    }
33903    #[inline]
33904    fn syntax(&self) -> &SyntaxNode {
33905        &self.syntax
33906    }
33907}
33908impl AstNode for SetRole {
33909    #[inline]
33910    fn can_cast(kind: SyntaxKind) -> bool {
33911        kind == SyntaxKind::SET_ROLE
33912    }
33913    #[inline]
33914    fn cast(syntax: SyntaxNode) -> Option<Self> {
33915        if Self::can_cast(syntax.kind()) {
33916            Some(Self { syntax })
33917        } else {
33918            None
33919        }
33920    }
33921    #[inline]
33922    fn syntax(&self) -> &SyntaxNode {
33923        &self.syntax
33924    }
33925}
33926impl AstNode for SetSchema {
33927    #[inline]
33928    fn can_cast(kind: SyntaxKind) -> bool {
33929        kind == SyntaxKind::SET_SCHEMA
33930    }
33931    #[inline]
33932    fn cast(syntax: SyntaxNode) -> Option<Self> {
33933        if Self::can_cast(syntax.kind()) {
33934            Some(Self { syntax })
33935        } else {
33936            None
33937        }
33938    }
33939    #[inline]
33940    fn syntax(&self) -> &SyntaxNode {
33941        &self.syntax
33942    }
33943}
33944impl AstNode for SetSequenceOption {
33945    #[inline]
33946    fn can_cast(kind: SyntaxKind) -> bool {
33947        kind == SyntaxKind::SET_SEQUENCE_OPTION
33948    }
33949    #[inline]
33950    fn cast(syntax: SyntaxNode) -> Option<Self> {
33951        if Self::can_cast(syntax.kind()) {
33952            Some(Self { syntax })
33953        } else {
33954            None
33955        }
33956    }
33957    #[inline]
33958    fn syntax(&self) -> &SyntaxNode {
33959        &self.syntax
33960    }
33961}
33962impl AstNode for SetSessionAuth {
33963    #[inline]
33964    fn can_cast(kind: SyntaxKind) -> bool {
33965        kind == SyntaxKind::SET_SESSION_AUTH
33966    }
33967    #[inline]
33968    fn cast(syntax: SyntaxNode) -> Option<Self> {
33969        if Self::can_cast(syntax.kind()) {
33970            Some(Self { syntax })
33971        } else {
33972            None
33973        }
33974    }
33975    #[inline]
33976    fn syntax(&self) -> &SyntaxNode {
33977        &self.syntax
33978    }
33979}
33980impl AstNode for SetSingleColumn {
33981    #[inline]
33982    fn can_cast(kind: SyntaxKind) -> bool {
33983        kind == SyntaxKind::SET_SINGLE_COLUMN
33984    }
33985    #[inline]
33986    fn cast(syntax: SyntaxNode) -> Option<Self> {
33987        if Self::can_cast(syntax.kind()) {
33988            Some(Self { syntax })
33989        } else {
33990            None
33991        }
33992    }
33993    #[inline]
33994    fn syntax(&self) -> &SyntaxNode {
33995        &self.syntax
33996    }
33997}
33998impl AstNode for SetStatistics {
33999    #[inline]
34000    fn can_cast(kind: SyntaxKind) -> bool {
34001        kind == SyntaxKind::SET_STATISTICS
34002    }
34003    #[inline]
34004    fn cast(syntax: SyntaxNode) -> Option<Self> {
34005        if Self::can_cast(syntax.kind()) {
34006            Some(Self { syntax })
34007        } else {
34008            None
34009        }
34010    }
34011    #[inline]
34012    fn syntax(&self) -> &SyntaxNode {
34013        &self.syntax
34014    }
34015}
34016impl AstNode for SetStorage {
34017    #[inline]
34018    fn can_cast(kind: SyntaxKind) -> bool {
34019        kind == SyntaxKind::SET_STORAGE
34020    }
34021    #[inline]
34022    fn cast(syntax: SyntaxNode) -> Option<Self> {
34023        if Self::can_cast(syntax.kind()) {
34024            Some(Self { syntax })
34025        } else {
34026            None
34027        }
34028    }
34029    #[inline]
34030    fn syntax(&self) -> &SyntaxNode {
34031        &self.syntax
34032    }
34033}
34034impl AstNode for SetTablespace {
34035    #[inline]
34036    fn can_cast(kind: SyntaxKind) -> bool {
34037        kind == SyntaxKind::SET_TABLESPACE
34038    }
34039    #[inline]
34040    fn cast(syntax: SyntaxNode) -> Option<Self> {
34041        if Self::can_cast(syntax.kind()) {
34042            Some(Self { syntax })
34043        } else {
34044            None
34045        }
34046    }
34047    #[inline]
34048    fn syntax(&self) -> &SyntaxNode {
34049        &self.syntax
34050    }
34051}
34052impl AstNode for SetTransaction {
34053    #[inline]
34054    fn can_cast(kind: SyntaxKind) -> bool {
34055        kind == SyntaxKind::SET_TRANSACTION
34056    }
34057    #[inline]
34058    fn cast(syntax: SyntaxNode) -> Option<Self> {
34059        if Self::can_cast(syntax.kind()) {
34060            Some(Self { syntax })
34061        } else {
34062            None
34063        }
34064    }
34065    #[inline]
34066    fn syntax(&self) -> &SyntaxNode {
34067        &self.syntax
34068    }
34069}
34070impl AstNode for SetType {
34071    #[inline]
34072    fn can_cast(kind: SyntaxKind) -> bool {
34073        kind == SyntaxKind::SET_TYPE
34074    }
34075    #[inline]
34076    fn cast(syntax: SyntaxNode) -> Option<Self> {
34077        if Self::can_cast(syntax.kind()) {
34078            Some(Self { syntax })
34079        } else {
34080            None
34081        }
34082    }
34083    #[inline]
34084    fn syntax(&self) -> &SyntaxNode {
34085        &self.syntax
34086    }
34087}
34088impl AstNode for SetUnlogged {
34089    #[inline]
34090    fn can_cast(kind: SyntaxKind) -> bool {
34091        kind == SyntaxKind::SET_UNLOGGED
34092    }
34093    #[inline]
34094    fn cast(syntax: SyntaxNode) -> Option<Self> {
34095        if Self::can_cast(syntax.kind()) {
34096            Some(Self { syntax })
34097        } else {
34098            None
34099        }
34100    }
34101    #[inline]
34102    fn syntax(&self) -> &SyntaxNode {
34103        &self.syntax
34104    }
34105}
34106impl AstNode for SetWithoutCluster {
34107    #[inline]
34108    fn can_cast(kind: SyntaxKind) -> bool {
34109        kind == SyntaxKind::SET_WITHOUT_CLUSTER
34110    }
34111    #[inline]
34112    fn cast(syntax: SyntaxNode) -> Option<Self> {
34113        if Self::can_cast(syntax.kind()) {
34114            Some(Self { syntax })
34115        } else {
34116            None
34117        }
34118    }
34119    #[inline]
34120    fn syntax(&self) -> &SyntaxNode {
34121        &self.syntax
34122    }
34123}
34124impl AstNode for SetWithoutOids {
34125    #[inline]
34126    fn can_cast(kind: SyntaxKind) -> bool {
34127        kind == SyntaxKind::SET_WITHOUT_OIDS
34128    }
34129    #[inline]
34130    fn cast(syntax: SyntaxNode) -> Option<Self> {
34131        if Self::can_cast(syntax.kind()) {
34132            Some(Self { syntax })
34133        } else {
34134            None
34135        }
34136    }
34137    #[inline]
34138    fn syntax(&self) -> &SyntaxNode {
34139        &self.syntax
34140    }
34141}
34142impl AstNode for Share {
34143    #[inline]
34144    fn can_cast(kind: SyntaxKind) -> bool {
34145        kind == SyntaxKind::SHARE
34146    }
34147    #[inline]
34148    fn cast(syntax: SyntaxNode) -> Option<Self> {
34149        if Self::can_cast(syntax.kind()) {
34150            Some(Self { syntax })
34151        } else {
34152            None
34153        }
34154    }
34155    #[inline]
34156    fn syntax(&self) -> &SyntaxNode {
34157        &self.syntax
34158    }
34159}
34160impl AstNode for ShareRowExclusive {
34161    #[inline]
34162    fn can_cast(kind: SyntaxKind) -> bool {
34163        kind == SyntaxKind::SHARE_ROW_EXCLUSIVE
34164    }
34165    #[inline]
34166    fn cast(syntax: SyntaxNode) -> Option<Self> {
34167        if Self::can_cast(syntax.kind()) {
34168            Some(Self { syntax })
34169        } else {
34170            None
34171        }
34172    }
34173    #[inline]
34174    fn syntax(&self) -> &SyntaxNode {
34175        &self.syntax
34176    }
34177}
34178impl AstNode for ShareUpdateExclusive {
34179    #[inline]
34180    fn can_cast(kind: SyntaxKind) -> bool {
34181        kind == SyntaxKind::SHARE_UPDATE_EXCLUSIVE
34182    }
34183    #[inline]
34184    fn cast(syntax: SyntaxNode) -> Option<Self> {
34185        if Self::can_cast(syntax.kind()) {
34186            Some(Self { syntax })
34187        } else {
34188            None
34189        }
34190    }
34191    #[inline]
34192    fn syntax(&self) -> &SyntaxNode {
34193        &self.syntax
34194    }
34195}
34196impl AstNode for Show {
34197    #[inline]
34198    fn can_cast(kind: SyntaxKind) -> bool {
34199        kind == SyntaxKind::SHOW
34200    }
34201    #[inline]
34202    fn cast(syntax: SyntaxNode) -> Option<Self> {
34203        if Self::can_cast(syntax.kind()) {
34204            Some(Self { syntax })
34205        } else {
34206            None
34207        }
34208    }
34209    #[inline]
34210    fn syntax(&self) -> &SyntaxNode {
34211        &self.syntax
34212    }
34213}
34214impl AstNode for SimilarTo {
34215    #[inline]
34216    fn can_cast(kind: SyntaxKind) -> bool {
34217        kind == SyntaxKind::SIMILAR_TO
34218    }
34219    #[inline]
34220    fn cast(syntax: SyntaxNode) -> Option<Self> {
34221        if Self::can_cast(syntax.kind()) {
34222            Some(Self { syntax })
34223        } else {
34224            None
34225        }
34226    }
34227    #[inline]
34228    fn syntax(&self) -> &SyntaxNode {
34229        &self.syntax
34230    }
34231}
34232impl AstNode for SliceExpr {
34233    #[inline]
34234    fn can_cast(kind: SyntaxKind) -> bool {
34235        kind == SyntaxKind::SLICE_EXPR
34236    }
34237    #[inline]
34238    fn cast(syntax: SyntaxNode) -> Option<Self> {
34239        if Self::can_cast(syntax.kind()) {
34240            Some(Self { syntax })
34241        } else {
34242            None
34243        }
34244    }
34245    #[inline]
34246    fn syntax(&self) -> &SyntaxNode {
34247        &self.syntax
34248    }
34249}
34250impl AstNode for SomeFn {
34251    #[inline]
34252    fn can_cast(kind: SyntaxKind) -> bool {
34253        kind == SyntaxKind::SOME_FN
34254    }
34255    #[inline]
34256    fn cast(syntax: SyntaxNode) -> Option<Self> {
34257        if Self::can_cast(syntax.kind()) {
34258            Some(Self { syntax })
34259        } else {
34260            None
34261        }
34262    }
34263    #[inline]
34264    fn syntax(&self) -> &SyntaxNode {
34265        &self.syntax
34266    }
34267}
34268impl AstNode for SortAsc {
34269    #[inline]
34270    fn can_cast(kind: SyntaxKind) -> bool {
34271        kind == SyntaxKind::SORT_ASC
34272    }
34273    #[inline]
34274    fn cast(syntax: SyntaxNode) -> Option<Self> {
34275        if Self::can_cast(syntax.kind()) {
34276            Some(Self { syntax })
34277        } else {
34278            None
34279        }
34280    }
34281    #[inline]
34282    fn syntax(&self) -> &SyntaxNode {
34283        &self.syntax
34284    }
34285}
34286impl AstNode for SortBy {
34287    #[inline]
34288    fn can_cast(kind: SyntaxKind) -> bool {
34289        kind == SyntaxKind::SORT_BY
34290    }
34291    #[inline]
34292    fn cast(syntax: SyntaxNode) -> Option<Self> {
34293        if Self::can_cast(syntax.kind()) {
34294            Some(Self { syntax })
34295        } else {
34296            None
34297        }
34298    }
34299    #[inline]
34300    fn syntax(&self) -> &SyntaxNode {
34301        &self.syntax
34302    }
34303}
34304impl AstNode for SortByList {
34305    #[inline]
34306    fn can_cast(kind: SyntaxKind) -> bool {
34307        kind == SyntaxKind::SORT_BY_LIST
34308    }
34309    #[inline]
34310    fn cast(syntax: SyntaxNode) -> Option<Self> {
34311        if Self::can_cast(syntax.kind()) {
34312            Some(Self { syntax })
34313        } else {
34314            None
34315        }
34316    }
34317    #[inline]
34318    fn syntax(&self) -> &SyntaxNode {
34319        &self.syntax
34320    }
34321}
34322impl AstNode for SortDesc {
34323    #[inline]
34324    fn can_cast(kind: SyntaxKind) -> bool {
34325        kind == SyntaxKind::SORT_DESC
34326    }
34327    #[inline]
34328    fn cast(syntax: SyntaxNode) -> Option<Self> {
34329        if Self::can_cast(syntax.kind()) {
34330            Some(Self { syntax })
34331        } else {
34332            None
34333        }
34334    }
34335    #[inline]
34336    fn syntax(&self) -> &SyntaxNode {
34337        &self.syntax
34338    }
34339}
34340impl AstNode for SortUsing {
34341    #[inline]
34342    fn can_cast(kind: SyntaxKind) -> bool {
34343        kind == SyntaxKind::SORT_USING
34344    }
34345    #[inline]
34346    fn cast(syntax: SyntaxNode) -> Option<Self> {
34347        if Self::can_cast(syntax.kind()) {
34348            Some(Self { syntax })
34349        } else {
34350            None
34351        }
34352    }
34353    #[inline]
34354    fn syntax(&self) -> &SyntaxNode {
34355        &self.syntax
34356    }
34357}
34358impl AstNode for SourceFile {
34359    #[inline]
34360    fn can_cast(kind: SyntaxKind) -> bool {
34361        kind == SyntaxKind::SOURCE_FILE
34362    }
34363    #[inline]
34364    fn cast(syntax: SyntaxNode) -> Option<Self> {
34365        if Self::can_cast(syntax.kind()) {
34366            Some(Self { syntax })
34367        } else {
34368            None
34369        }
34370    }
34371    #[inline]
34372    fn syntax(&self) -> &SyntaxNode {
34373        &self.syntax
34374    }
34375}
34376impl AstNode for SourceVertexTable {
34377    #[inline]
34378    fn can_cast(kind: SyntaxKind) -> bool {
34379        kind == SyntaxKind::SOURCE_VERTEX_TABLE
34380    }
34381    #[inline]
34382    fn cast(syntax: SyntaxNode) -> Option<Self> {
34383        if Self::can_cast(syntax.kind()) {
34384            Some(Self { syntax })
34385        } else {
34386            None
34387        }
34388    }
34389    #[inline]
34390    fn syntax(&self) -> &SyntaxNode {
34391        &self.syntax
34392    }
34393}
34394impl AstNode for SplitPartition {
34395    #[inline]
34396    fn can_cast(kind: SyntaxKind) -> bool {
34397        kind == SyntaxKind::SPLIT_PARTITION
34398    }
34399    #[inline]
34400    fn cast(syntax: SyntaxNode) -> Option<Self> {
34401        if Self::can_cast(syntax.kind()) {
34402            Some(Self { syntax })
34403        } else {
34404            None
34405        }
34406    }
34407    #[inline]
34408    fn syntax(&self) -> &SyntaxNode {
34409        &self.syntax
34410    }
34411}
34412impl AstNode for Storage {
34413    #[inline]
34414    fn can_cast(kind: SyntaxKind) -> bool {
34415        kind == SyntaxKind::STORAGE
34416    }
34417    #[inline]
34418    fn cast(syntax: SyntaxNode) -> Option<Self> {
34419        if Self::can_cast(syntax.kind()) {
34420            Some(Self { syntax })
34421        } else {
34422            None
34423        }
34424    }
34425    #[inline]
34426    fn syntax(&self) -> &SyntaxNode {
34427        &self.syntax
34428    }
34429}
34430impl AstNode for StrictFuncOption {
34431    #[inline]
34432    fn can_cast(kind: SyntaxKind) -> bool {
34433        kind == SyntaxKind::STRICT_FUNC_OPTION
34434    }
34435    #[inline]
34436    fn cast(syntax: SyntaxNode) -> Option<Self> {
34437        if Self::can_cast(syntax.kind()) {
34438            Some(Self { syntax })
34439        } else {
34440            None
34441        }
34442    }
34443    #[inline]
34444    fn syntax(&self) -> &SyntaxNode {
34445        &self.syntax
34446    }
34447}
34448impl AstNode for SubstringFn {
34449    #[inline]
34450    fn can_cast(kind: SyntaxKind) -> bool {
34451        kind == SyntaxKind::SUBSTRING_FN
34452    }
34453    #[inline]
34454    fn cast(syntax: SyntaxNode) -> Option<Self> {
34455        if Self::can_cast(syntax.kind()) {
34456            Some(Self { syntax })
34457        } else {
34458            None
34459        }
34460    }
34461    #[inline]
34462    fn syntax(&self) -> &SyntaxNode {
34463        &self.syntax
34464    }
34465}
34466impl AstNode for SupportFuncOption {
34467    #[inline]
34468    fn can_cast(kind: SyntaxKind) -> bool {
34469        kind == SyntaxKind::SUPPORT_FUNC_OPTION
34470    }
34471    #[inline]
34472    fn cast(syntax: SyntaxNode) -> Option<Self> {
34473        if Self::can_cast(syntax.kind()) {
34474            Some(Self { syntax })
34475        } else {
34476            None
34477        }
34478    }
34479    #[inline]
34480    fn syntax(&self) -> &SyntaxNode {
34481        &self.syntax
34482    }
34483}
34484impl AstNode for Table {
34485    #[inline]
34486    fn can_cast(kind: SyntaxKind) -> bool {
34487        kind == SyntaxKind::TABLE
34488    }
34489    #[inline]
34490    fn cast(syntax: SyntaxNode) -> Option<Self> {
34491        if Self::can_cast(syntax.kind()) {
34492            Some(Self { syntax })
34493        } else {
34494            None
34495        }
34496    }
34497    #[inline]
34498    fn syntax(&self) -> &SyntaxNode {
34499        &self.syntax
34500    }
34501}
34502impl AstNode for TableAndColumns {
34503    #[inline]
34504    fn can_cast(kind: SyntaxKind) -> bool {
34505        kind == SyntaxKind::TABLE_AND_COLUMNS
34506    }
34507    #[inline]
34508    fn cast(syntax: SyntaxNode) -> Option<Self> {
34509        if Self::can_cast(syntax.kind()) {
34510            Some(Self { syntax })
34511        } else {
34512            None
34513        }
34514    }
34515    #[inline]
34516    fn syntax(&self) -> &SyntaxNode {
34517        &self.syntax
34518    }
34519}
34520impl AstNode for TableAndColumnsList {
34521    #[inline]
34522    fn can_cast(kind: SyntaxKind) -> bool {
34523        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
34524    }
34525    #[inline]
34526    fn cast(syntax: SyntaxNode) -> Option<Self> {
34527        if Self::can_cast(syntax.kind()) {
34528            Some(Self { syntax })
34529        } else {
34530            None
34531        }
34532    }
34533    #[inline]
34534    fn syntax(&self) -> &SyntaxNode {
34535        &self.syntax
34536    }
34537}
34538impl AstNode for TableArgList {
34539    #[inline]
34540    fn can_cast(kind: SyntaxKind) -> bool {
34541        kind == SyntaxKind::TABLE_ARG_LIST
34542    }
34543    #[inline]
34544    fn cast(syntax: SyntaxNode) -> Option<Self> {
34545        if Self::can_cast(syntax.kind()) {
34546            Some(Self { syntax })
34547        } else {
34548            None
34549        }
34550    }
34551    #[inline]
34552    fn syntax(&self) -> &SyntaxNode {
34553        &self.syntax
34554    }
34555}
34556impl AstNode for TableList {
34557    #[inline]
34558    fn can_cast(kind: SyntaxKind) -> bool {
34559        kind == SyntaxKind::TABLE_LIST
34560    }
34561    #[inline]
34562    fn cast(syntax: SyntaxNode) -> Option<Self> {
34563        if Self::can_cast(syntax.kind()) {
34564            Some(Self { syntax })
34565        } else {
34566            None
34567        }
34568    }
34569    #[inline]
34570    fn syntax(&self) -> &SyntaxNode {
34571        &self.syntax
34572    }
34573}
34574impl AstNode for TablesampleClause {
34575    #[inline]
34576    fn can_cast(kind: SyntaxKind) -> bool {
34577        kind == SyntaxKind::TABLESAMPLE_CLAUSE
34578    }
34579    #[inline]
34580    fn cast(syntax: SyntaxNode) -> Option<Self> {
34581        if Self::can_cast(syntax.kind()) {
34582            Some(Self { syntax })
34583        } else {
34584            None
34585        }
34586    }
34587    #[inline]
34588    fn syntax(&self) -> &SyntaxNode {
34589        &self.syntax
34590    }
34591}
34592impl AstNode for Tablespace {
34593    #[inline]
34594    fn can_cast(kind: SyntaxKind) -> bool {
34595        kind == SyntaxKind::TABLESPACE
34596    }
34597    #[inline]
34598    fn cast(syntax: SyntaxNode) -> Option<Self> {
34599        if Self::can_cast(syntax.kind()) {
34600            Some(Self { syntax })
34601        } else {
34602            None
34603        }
34604    }
34605    #[inline]
34606    fn syntax(&self) -> &SyntaxNode {
34607        &self.syntax
34608    }
34609}
34610impl AstNode for Target {
34611    #[inline]
34612    fn can_cast(kind: SyntaxKind) -> bool {
34613        kind == SyntaxKind::TARGET
34614    }
34615    #[inline]
34616    fn cast(syntax: SyntaxNode) -> Option<Self> {
34617        if Self::can_cast(syntax.kind()) {
34618            Some(Self { syntax })
34619        } else {
34620            None
34621        }
34622    }
34623    #[inline]
34624    fn syntax(&self) -> &SyntaxNode {
34625        &self.syntax
34626    }
34627}
34628impl AstNode for TargetList {
34629    #[inline]
34630    fn can_cast(kind: SyntaxKind) -> bool {
34631        kind == SyntaxKind::TARGET_LIST
34632    }
34633    #[inline]
34634    fn cast(syntax: SyntaxNode) -> Option<Self> {
34635        if Self::can_cast(syntax.kind()) {
34636            Some(Self { syntax })
34637        } else {
34638            None
34639        }
34640    }
34641    #[inline]
34642    fn syntax(&self) -> &SyntaxNode {
34643        &self.syntax
34644    }
34645}
34646impl AstNode for Temp {
34647    #[inline]
34648    fn can_cast(kind: SyntaxKind) -> bool {
34649        kind == SyntaxKind::TEMP
34650    }
34651    #[inline]
34652    fn cast(syntax: SyntaxNode) -> Option<Self> {
34653        if Self::can_cast(syntax.kind()) {
34654            Some(Self { syntax })
34655        } else {
34656            None
34657        }
34658    }
34659    #[inline]
34660    fn syntax(&self) -> &SyntaxNode {
34661        &self.syntax
34662    }
34663}
34664impl AstNode for Ties {
34665    #[inline]
34666    fn can_cast(kind: SyntaxKind) -> bool {
34667        kind == SyntaxKind::TIES
34668    }
34669    #[inline]
34670    fn cast(syntax: SyntaxNode) -> Option<Self> {
34671        if Self::can_cast(syntax.kind()) {
34672            Some(Self { syntax })
34673        } else {
34674            None
34675        }
34676    }
34677    #[inline]
34678    fn syntax(&self) -> &SyntaxNode {
34679        &self.syntax
34680    }
34681}
34682impl AstNode for TimeType {
34683    #[inline]
34684    fn can_cast(kind: SyntaxKind) -> bool {
34685        kind == SyntaxKind::TIME_TYPE
34686    }
34687    #[inline]
34688    fn cast(syntax: SyntaxNode) -> Option<Self> {
34689        if Self::can_cast(syntax.kind()) {
34690            Some(Self { syntax })
34691        } else {
34692            None
34693        }
34694    }
34695    #[inline]
34696    fn syntax(&self) -> &SyntaxNode {
34697        &self.syntax
34698    }
34699}
34700impl AstNode for TimeZone {
34701    #[inline]
34702    fn can_cast(kind: SyntaxKind) -> bool {
34703        kind == SyntaxKind::TIME_ZONE
34704    }
34705    #[inline]
34706    fn cast(syntax: SyntaxNode) -> Option<Self> {
34707        if Self::can_cast(syntax.kind()) {
34708            Some(Self { syntax })
34709        } else {
34710            None
34711        }
34712    }
34713    #[inline]
34714    fn syntax(&self) -> &SyntaxNode {
34715        &self.syntax
34716    }
34717}
34718impl AstNode for Timing {
34719    #[inline]
34720    fn can_cast(kind: SyntaxKind) -> bool {
34721        kind == SyntaxKind::TIMING
34722    }
34723    #[inline]
34724    fn cast(syntax: SyntaxNode) -> Option<Self> {
34725        if Self::can_cast(syntax.kind()) {
34726            Some(Self { syntax })
34727        } else {
34728            None
34729        }
34730    }
34731    #[inline]
34732    fn syntax(&self) -> &SyntaxNode {
34733        &self.syntax
34734    }
34735}
34736impl AstNode for TransactionIsolationLevel {
34737    #[inline]
34738    fn can_cast(kind: SyntaxKind) -> bool {
34739        kind == SyntaxKind::TRANSACTION_ISOLATION_LEVEL
34740    }
34741    #[inline]
34742    fn cast(syntax: SyntaxNode) -> Option<Self> {
34743        if Self::can_cast(syntax.kind()) {
34744            Some(Self { syntax })
34745        } else {
34746            None
34747        }
34748    }
34749    #[inline]
34750    fn syntax(&self) -> &SyntaxNode {
34751        &self.syntax
34752    }
34753}
34754impl AstNode for TransactionModeList {
34755    #[inline]
34756    fn can_cast(kind: SyntaxKind) -> bool {
34757        kind == SyntaxKind::TRANSACTION_MODE_LIST
34758    }
34759    #[inline]
34760    fn cast(syntax: SyntaxNode) -> Option<Self> {
34761        if Self::can_cast(syntax.kind()) {
34762            Some(Self { syntax })
34763        } else {
34764            None
34765        }
34766    }
34767    #[inline]
34768    fn syntax(&self) -> &SyntaxNode {
34769        &self.syntax
34770    }
34771}
34772impl AstNode for TransformFromFunc {
34773    #[inline]
34774    fn can_cast(kind: SyntaxKind) -> bool {
34775        kind == SyntaxKind::TRANSFORM_FROM_FUNC
34776    }
34777    #[inline]
34778    fn cast(syntax: SyntaxNode) -> Option<Self> {
34779        if Self::can_cast(syntax.kind()) {
34780            Some(Self { syntax })
34781        } else {
34782            None
34783        }
34784    }
34785    #[inline]
34786    fn syntax(&self) -> &SyntaxNode {
34787        &self.syntax
34788    }
34789}
34790impl AstNode for TransformFuncOption {
34791    #[inline]
34792    fn can_cast(kind: SyntaxKind) -> bool {
34793        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
34794    }
34795    #[inline]
34796    fn cast(syntax: SyntaxNode) -> Option<Self> {
34797        if Self::can_cast(syntax.kind()) {
34798            Some(Self { syntax })
34799        } else {
34800            None
34801        }
34802    }
34803    #[inline]
34804    fn syntax(&self) -> &SyntaxNode {
34805        &self.syntax
34806    }
34807}
34808impl AstNode for TransformToFunc {
34809    #[inline]
34810    fn can_cast(kind: SyntaxKind) -> bool {
34811        kind == SyntaxKind::TRANSFORM_TO_FUNC
34812    }
34813    #[inline]
34814    fn cast(syntax: SyntaxNode) -> Option<Self> {
34815        if Self::can_cast(syntax.kind()) {
34816            Some(Self { syntax })
34817        } else {
34818            None
34819        }
34820    }
34821    #[inline]
34822    fn syntax(&self) -> &SyntaxNode {
34823        &self.syntax
34824    }
34825}
34826impl AstNode for TriggerEvent {
34827    #[inline]
34828    fn can_cast(kind: SyntaxKind) -> bool {
34829        kind == SyntaxKind::TRIGGER_EVENT
34830    }
34831    #[inline]
34832    fn cast(syntax: SyntaxNode) -> Option<Self> {
34833        if Self::can_cast(syntax.kind()) {
34834            Some(Self { syntax })
34835        } else {
34836            None
34837        }
34838    }
34839    #[inline]
34840    fn syntax(&self) -> &SyntaxNode {
34841        &self.syntax
34842    }
34843}
34844impl AstNode for TriggerEventList {
34845    #[inline]
34846    fn can_cast(kind: SyntaxKind) -> bool {
34847        kind == SyntaxKind::TRIGGER_EVENT_LIST
34848    }
34849    #[inline]
34850    fn cast(syntax: SyntaxNode) -> Option<Self> {
34851        if Self::can_cast(syntax.kind()) {
34852            Some(Self { syntax })
34853        } else {
34854            None
34855        }
34856    }
34857    #[inline]
34858    fn syntax(&self) -> &SyntaxNode {
34859        &self.syntax
34860    }
34861}
34862impl AstNode for TriggerEventUpdate {
34863    #[inline]
34864    fn can_cast(kind: SyntaxKind) -> bool {
34865        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
34866    }
34867    #[inline]
34868    fn cast(syntax: SyntaxNode) -> Option<Self> {
34869        if Self::can_cast(syntax.kind()) {
34870            Some(Self { syntax })
34871        } else {
34872            None
34873        }
34874    }
34875    #[inline]
34876    fn syntax(&self) -> &SyntaxNode {
34877        &self.syntax
34878    }
34879}
34880impl AstNode for TrimFn {
34881    #[inline]
34882    fn can_cast(kind: SyntaxKind) -> bool {
34883        kind == SyntaxKind::TRIM_FN
34884    }
34885    #[inline]
34886    fn cast(syntax: SyntaxNode) -> Option<Self> {
34887        if Self::can_cast(syntax.kind()) {
34888            Some(Self { syntax })
34889        } else {
34890            None
34891        }
34892    }
34893    #[inline]
34894    fn syntax(&self) -> &SyntaxNode {
34895        &self.syntax
34896    }
34897}
34898impl AstNode for Truncate {
34899    #[inline]
34900    fn can_cast(kind: SyntaxKind) -> bool {
34901        kind == SyntaxKind::TRUNCATE
34902    }
34903    #[inline]
34904    fn cast(syntax: SyntaxNode) -> Option<Self> {
34905        if Self::can_cast(syntax.kind()) {
34906            Some(Self { syntax })
34907        } else {
34908            None
34909        }
34910    }
34911    #[inline]
34912    fn syntax(&self) -> &SyntaxNode {
34913        &self.syntax
34914    }
34915}
34916impl AstNode for TupleExpr {
34917    #[inline]
34918    fn can_cast(kind: SyntaxKind) -> bool {
34919        kind == SyntaxKind::TUPLE_EXPR
34920    }
34921    #[inline]
34922    fn cast(syntax: SyntaxNode) -> Option<Self> {
34923        if Self::can_cast(syntax.kind()) {
34924            Some(Self { syntax })
34925        } else {
34926            None
34927        }
34928    }
34929    #[inline]
34930    fn syntax(&self) -> &SyntaxNode {
34931        &self.syntax
34932    }
34933}
34934impl AstNode for UnboundedFollowing {
34935    #[inline]
34936    fn can_cast(kind: SyntaxKind) -> bool {
34937        kind == SyntaxKind::UNBOUNDED_FOLLOWING
34938    }
34939    #[inline]
34940    fn cast(syntax: SyntaxNode) -> Option<Self> {
34941        if Self::can_cast(syntax.kind()) {
34942            Some(Self { syntax })
34943        } else {
34944            None
34945        }
34946    }
34947    #[inline]
34948    fn syntax(&self) -> &SyntaxNode {
34949        &self.syntax
34950    }
34951}
34952impl AstNode for UnboundedPreceding {
34953    #[inline]
34954    fn can_cast(kind: SyntaxKind) -> bool {
34955        kind == SyntaxKind::UNBOUNDED_PRECEDING
34956    }
34957    #[inline]
34958    fn cast(syntax: SyntaxNode) -> Option<Self> {
34959        if Self::can_cast(syntax.kind()) {
34960            Some(Self { syntax })
34961        } else {
34962            None
34963        }
34964    }
34965    #[inline]
34966    fn syntax(&self) -> &SyntaxNode {
34967        &self.syntax
34968    }
34969}
34970impl AstNode for UnicodeNormalForm {
34971    #[inline]
34972    fn can_cast(kind: SyntaxKind) -> bool {
34973        kind == SyntaxKind::UNICODE_NORMAL_FORM
34974    }
34975    #[inline]
34976    fn cast(syntax: SyntaxNode) -> Option<Self> {
34977        if Self::can_cast(syntax.kind()) {
34978            Some(Self { syntax })
34979        } else {
34980            None
34981        }
34982    }
34983    #[inline]
34984    fn syntax(&self) -> &SyntaxNode {
34985        &self.syntax
34986    }
34987}
34988impl AstNode for UniqueConstraint {
34989    #[inline]
34990    fn can_cast(kind: SyntaxKind) -> bool {
34991        kind == SyntaxKind::UNIQUE_CONSTRAINT
34992    }
34993    #[inline]
34994    fn cast(syntax: SyntaxNode) -> Option<Self> {
34995        if Self::can_cast(syntax.kind()) {
34996            Some(Self { syntax })
34997        } else {
34998            None
34999        }
35000    }
35001    #[inline]
35002    fn syntax(&self) -> &SyntaxNode {
35003        &self.syntax
35004    }
35005}
35006impl AstNode for Unlisten {
35007    #[inline]
35008    fn can_cast(kind: SyntaxKind) -> bool {
35009        kind == SyntaxKind::UNLISTEN
35010    }
35011    #[inline]
35012    fn cast(syntax: SyntaxNode) -> Option<Self> {
35013        if Self::can_cast(syntax.kind()) {
35014            Some(Self { syntax })
35015        } else {
35016            None
35017        }
35018    }
35019    #[inline]
35020    fn syntax(&self) -> &SyntaxNode {
35021        &self.syntax
35022    }
35023}
35024impl AstNode for Unlogged {
35025    #[inline]
35026    fn can_cast(kind: SyntaxKind) -> bool {
35027        kind == SyntaxKind::UNLOGGED
35028    }
35029    #[inline]
35030    fn cast(syntax: SyntaxNode) -> Option<Self> {
35031        if Self::can_cast(syntax.kind()) {
35032            Some(Self { syntax })
35033        } else {
35034            None
35035        }
35036    }
35037    #[inline]
35038    fn syntax(&self) -> &SyntaxNode {
35039        &self.syntax
35040    }
35041}
35042impl AstNode for Update {
35043    #[inline]
35044    fn can_cast(kind: SyntaxKind) -> bool {
35045        kind == SyntaxKind::UPDATE
35046    }
35047    #[inline]
35048    fn cast(syntax: SyntaxNode) -> Option<Self> {
35049        if Self::can_cast(syntax.kind()) {
35050            Some(Self { syntax })
35051        } else {
35052            None
35053        }
35054    }
35055    #[inline]
35056    fn syntax(&self) -> &SyntaxNode {
35057        &self.syntax
35058    }
35059}
35060impl AstNode for UsingClause {
35061    #[inline]
35062    fn can_cast(kind: SyntaxKind) -> bool {
35063        kind == SyntaxKind::USING_CLAUSE
35064    }
35065    #[inline]
35066    fn cast(syntax: SyntaxNode) -> Option<Self> {
35067        if Self::can_cast(syntax.kind()) {
35068            Some(Self { syntax })
35069        } else {
35070            None
35071        }
35072    }
35073    #[inline]
35074    fn syntax(&self) -> &SyntaxNode {
35075        &self.syntax
35076    }
35077}
35078impl AstNode for UsingExprClause {
35079    #[inline]
35080    fn can_cast(kind: SyntaxKind) -> bool {
35081        kind == SyntaxKind::USING_EXPR_CLAUSE
35082    }
35083    #[inline]
35084    fn cast(syntax: SyntaxNode) -> Option<Self> {
35085        if Self::can_cast(syntax.kind()) {
35086            Some(Self { syntax })
35087        } else {
35088            None
35089        }
35090    }
35091    #[inline]
35092    fn syntax(&self) -> &SyntaxNode {
35093        &self.syntax
35094    }
35095}
35096impl AstNode for UsingIndex {
35097    #[inline]
35098    fn can_cast(kind: SyntaxKind) -> bool {
35099        kind == SyntaxKind::USING_INDEX
35100    }
35101    #[inline]
35102    fn cast(syntax: SyntaxNode) -> Option<Self> {
35103        if Self::can_cast(syntax.kind()) {
35104            Some(Self { syntax })
35105        } else {
35106            None
35107        }
35108    }
35109    #[inline]
35110    fn syntax(&self) -> &SyntaxNode {
35111        &self.syntax
35112    }
35113}
35114impl AstNode for UsingMethod {
35115    #[inline]
35116    fn can_cast(kind: SyntaxKind) -> bool {
35117        kind == SyntaxKind::USING_METHOD
35118    }
35119    #[inline]
35120    fn cast(syntax: SyntaxNode) -> Option<Self> {
35121        if Self::can_cast(syntax.kind()) {
35122            Some(Self { syntax })
35123        } else {
35124            None
35125        }
35126    }
35127    #[inline]
35128    fn syntax(&self) -> &SyntaxNode {
35129        &self.syntax
35130    }
35131}
35132impl AstNode for UsingOnClause {
35133    #[inline]
35134    fn can_cast(kind: SyntaxKind) -> bool {
35135        kind == SyntaxKind::USING_ON_CLAUSE
35136    }
35137    #[inline]
35138    fn cast(syntax: SyntaxNode) -> Option<Self> {
35139        if Self::can_cast(syntax.kind()) {
35140            Some(Self { syntax })
35141        } else {
35142            None
35143        }
35144    }
35145    #[inline]
35146    fn syntax(&self) -> &SyntaxNode {
35147        &self.syntax
35148    }
35149}
35150impl AstNode for Vacuum {
35151    #[inline]
35152    fn can_cast(kind: SyntaxKind) -> bool {
35153        kind == SyntaxKind::VACUUM
35154    }
35155    #[inline]
35156    fn cast(syntax: SyntaxNode) -> Option<Self> {
35157        if Self::can_cast(syntax.kind()) {
35158            Some(Self { syntax })
35159        } else {
35160            None
35161        }
35162    }
35163    #[inline]
35164    fn syntax(&self) -> &SyntaxNode {
35165        &self.syntax
35166    }
35167}
35168impl AstNode for VacuumOption {
35169    #[inline]
35170    fn can_cast(kind: SyntaxKind) -> bool {
35171        kind == SyntaxKind::VACUUM_OPTION
35172    }
35173    #[inline]
35174    fn cast(syntax: SyntaxNode) -> Option<Self> {
35175        if Self::can_cast(syntax.kind()) {
35176            Some(Self { syntax })
35177        } else {
35178            None
35179        }
35180    }
35181    #[inline]
35182    fn syntax(&self) -> &SyntaxNode {
35183        &self.syntax
35184    }
35185}
35186impl AstNode for VacuumOptionList {
35187    #[inline]
35188    fn can_cast(kind: SyntaxKind) -> bool {
35189        kind == SyntaxKind::VACUUM_OPTION_LIST
35190    }
35191    #[inline]
35192    fn cast(syntax: SyntaxNode) -> Option<Self> {
35193        if Self::can_cast(syntax.kind()) {
35194            Some(Self { syntax })
35195        } else {
35196            None
35197        }
35198    }
35199    #[inline]
35200    fn syntax(&self) -> &SyntaxNode {
35201        &self.syntax
35202    }
35203}
35204impl AstNode for VacuumOptionValue {
35205    #[inline]
35206    fn can_cast(kind: SyntaxKind) -> bool {
35207        kind == SyntaxKind::VACUUM_OPTION_VALUE
35208    }
35209    #[inline]
35210    fn cast(syntax: SyntaxNode) -> Option<Self> {
35211        if Self::can_cast(syntax.kind()) {
35212            Some(Self { syntax })
35213        } else {
35214            None
35215        }
35216    }
35217    #[inline]
35218    fn syntax(&self) -> &SyntaxNode {
35219        &self.syntax
35220    }
35221}
35222impl AstNode for ValidateConstraint {
35223    #[inline]
35224    fn can_cast(kind: SyntaxKind) -> bool {
35225        kind == SyntaxKind::VALIDATE_CONSTRAINT
35226    }
35227    #[inline]
35228    fn cast(syntax: SyntaxNode) -> Option<Self> {
35229        if Self::can_cast(syntax.kind()) {
35230            Some(Self { syntax })
35231        } else {
35232            None
35233        }
35234    }
35235    #[inline]
35236    fn syntax(&self) -> &SyntaxNode {
35237        &self.syntax
35238    }
35239}
35240impl AstNode for Values {
35241    #[inline]
35242    fn can_cast(kind: SyntaxKind) -> bool {
35243        kind == SyntaxKind::VALUES
35244    }
35245    #[inline]
35246    fn cast(syntax: SyntaxNode) -> Option<Self> {
35247        if Self::can_cast(syntax.kind()) {
35248            Some(Self { syntax })
35249        } else {
35250            None
35251        }
35252    }
35253    #[inline]
35254    fn syntax(&self) -> &SyntaxNode {
35255        &self.syntax
35256    }
35257}
35258impl AstNode for Variant {
35259    #[inline]
35260    fn can_cast(kind: SyntaxKind) -> bool {
35261        kind == SyntaxKind::VARIANT
35262    }
35263    #[inline]
35264    fn cast(syntax: SyntaxNode) -> Option<Self> {
35265        if Self::can_cast(syntax.kind()) {
35266            Some(Self { syntax })
35267        } else {
35268            None
35269        }
35270    }
35271    #[inline]
35272    fn syntax(&self) -> &SyntaxNode {
35273        &self.syntax
35274    }
35275}
35276impl AstNode for VariantList {
35277    #[inline]
35278    fn can_cast(kind: SyntaxKind) -> bool {
35279        kind == SyntaxKind::VARIANT_LIST
35280    }
35281    #[inline]
35282    fn cast(syntax: SyntaxNode) -> Option<Self> {
35283        if Self::can_cast(syntax.kind()) {
35284            Some(Self { syntax })
35285        } else {
35286            None
35287        }
35288    }
35289    #[inline]
35290    fn syntax(&self) -> &SyntaxNode {
35291        &self.syntax
35292    }
35293}
35294impl AstNode for VertexPattern {
35295    #[inline]
35296    fn can_cast(kind: SyntaxKind) -> bool {
35297        kind == SyntaxKind::VERTEX_PATTERN
35298    }
35299    #[inline]
35300    fn cast(syntax: SyntaxNode) -> Option<Self> {
35301        if Self::can_cast(syntax.kind()) {
35302            Some(Self { syntax })
35303        } else {
35304            None
35305        }
35306    }
35307    #[inline]
35308    fn syntax(&self) -> &SyntaxNode {
35309        &self.syntax
35310    }
35311}
35312impl AstNode for VertexTableDef {
35313    #[inline]
35314    fn can_cast(kind: SyntaxKind) -> bool {
35315        kind == SyntaxKind::VERTEX_TABLE_DEF
35316    }
35317    #[inline]
35318    fn cast(syntax: SyntaxNode) -> Option<Self> {
35319        if Self::can_cast(syntax.kind()) {
35320            Some(Self { syntax })
35321        } else {
35322            None
35323        }
35324    }
35325    #[inline]
35326    fn syntax(&self) -> &SyntaxNode {
35327        &self.syntax
35328    }
35329}
35330impl AstNode for VertexTables {
35331    #[inline]
35332    fn can_cast(kind: SyntaxKind) -> bool {
35333        kind == SyntaxKind::VERTEX_TABLES
35334    }
35335    #[inline]
35336    fn cast(syntax: SyntaxNode) -> Option<Self> {
35337        if Self::can_cast(syntax.kind()) {
35338            Some(Self { syntax })
35339        } else {
35340            None
35341        }
35342    }
35343    #[inline]
35344    fn syntax(&self) -> &SyntaxNode {
35345        &self.syntax
35346    }
35347}
35348impl AstNode for VolatilityFuncOption {
35349    #[inline]
35350    fn can_cast(kind: SyntaxKind) -> bool {
35351        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
35352    }
35353    #[inline]
35354    fn cast(syntax: SyntaxNode) -> Option<Self> {
35355        if Self::can_cast(syntax.kind()) {
35356            Some(Self { syntax })
35357        } else {
35358            None
35359        }
35360    }
35361    #[inline]
35362    fn syntax(&self) -> &SyntaxNode {
35363        &self.syntax
35364    }
35365}
35366impl AstNode for WhenClause {
35367    #[inline]
35368    fn can_cast(kind: SyntaxKind) -> bool {
35369        kind == SyntaxKind::WHEN_CLAUSE
35370    }
35371    #[inline]
35372    fn cast(syntax: SyntaxNode) -> Option<Self> {
35373        if Self::can_cast(syntax.kind()) {
35374            Some(Self { syntax })
35375        } else {
35376            None
35377        }
35378    }
35379    #[inline]
35380    fn syntax(&self) -> &SyntaxNode {
35381        &self.syntax
35382    }
35383}
35384impl AstNode for WhenClauseList {
35385    #[inline]
35386    fn can_cast(kind: SyntaxKind) -> bool {
35387        kind == SyntaxKind::WHEN_CLAUSE_LIST
35388    }
35389    #[inline]
35390    fn cast(syntax: SyntaxNode) -> Option<Self> {
35391        if Self::can_cast(syntax.kind()) {
35392            Some(Self { syntax })
35393        } else {
35394            None
35395        }
35396    }
35397    #[inline]
35398    fn syntax(&self) -> &SyntaxNode {
35399        &self.syntax
35400    }
35401}
35402impl AstNode for WhenCondition {
35403    #[inline]
35404    fn can_cast(kind: SyntaxKind) -> bool {
35405        kind == SyntaxKind::WHEN_CONDITION
35406    }
35407    #[inline]
35408    fn cast(syntax: SyntaxNode) -> Option<Self> {
35409        if Self::can_cast(syntax.kind()) {
35410            Some(Self { syntax })
35411        } else {
35412            None
35413        }
35414    }
35415    #[inline]
35416    fn syntax(&self) -> &SyntaxNode {
35417        &self.syntax
35418    }
35419}
35420impl AstNode for WhereClause {
35421    #[inline]
35422    fn can_cast(kind: SyntaxKind) -> bool {
35423        kind == SyntaxKind::WHERE_CLAUSE
35424    }
35425    #[inline]
35426    fn cast(syntax: SyntaxNode) -> Option<Self> {
35427        if Self::can_cast(syntax.kind()) {
35428            Some(Self { syntax })
35429        } else {
35430            None
35431        }
35432    }
35433    #[inline]
35434    fn syntax(&self) -> &SyntaxNode {
35435        &self.syntax
35436    }
35437}
35438impl AstNode for WhereConditionClause {
35439    #[inline]
35440    fn can_cast(kind: SyntaxKind) -> bool {
35441        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
35442    }
35443    #[inline]
35444    fn cast(syntax: SyntaxNode) -> Option<Self> {
35445        if Self::can_cast(syntax.kind()) {
35446            Some(Self { syntax })
35447        } else {
35448            None
35449        }
35450    }
35451    #[inline]
35452    fn syntax(&self) -> &SyntaxNode {
35453        &self.syntax
35454    }
35455}
35456impl AstNode for WhereCurrentOf {
35457    #[inline]
35458    fn can_cast(kind: SyntaxKind) -> bool {
35459        kind == SyntaxKind::WHERE_CURRENT_OF
35460    }
35461    #[inline]
35462    fn cast(syntax: SyntaxNode) -> Option<Self> {
35463        if Self::can_cast(syntax.kind()) {
35464            Some(Self { syntax })
35465        } else {
35466            None
35467        }
35468    }
35469    #[inline]
35470    fn syntax(&self) -> &SyntaxNode {
35471        &self.syntax
35472    }
35473}
35474impl AstNode for WindowClause {
35475    #[inline]
35476    fn can_cast(kind: SyntaxKind) -> bool {
35477        kind == SyntaxKind::WINDOW_CLAUSE
35478    }
35479    #[inline]
35480    fn cast(syntax: SyntaxNode) -> Option<Self> {
35481        if Self::can_cast(syntax.kind()) {
35482            Some(Self { syntax })
35483        } else {
35484            None
35485        }
35486    }
35487    #[inline]
35488    fn syntax(&self) -> &SyntaxNode {
35489        &self.syntax
35490    }
35491}
35492impl AstNode for WindowDef {
35493    #[inline]
35494    fn can_cast(kind: SyntaxKind) -> bool {
35495        kind == SyntaxKind::WINDOW_DEF
35496    }
35497    #[inline]
35498    fn cast(syntax: SyntaxNode) -> Option<Self> {
35499        if Self::can_cast(syntax.kind()) {
35500            Some(Self { syntax })
35501        } else {
35502            None
35503        }
35504    }
35505    #[inline]
35506    fn syntax(&self) -> &SyntaxNode {
35507        &self.syntax
35508    }
35509}
35510impl AstNode for WindowFuncOption {
35511    #[inline]
35512    fn can_cast(kind: SyntaxKind) -> bool {
35513        kind == SyntaxKind::WINDOW_FUNC_OPTION
35514    }
35515    #[inline]
35516    fn cast(syntax: SyntaxNode) -> Option<Self> {
35517        if Self::can_cast(syntax.kind()) {
35518            Some(Self { syntax })
35519        } else {
35520            None
35521        }
35522    }
35523    #[inline]
35524    fn syntax(&self) -> &SyntaxNode {
35525        &self.syntax
35526    }
35527}
35528impl AstNode for WindowSpec {
35529    #[inline]
35530    fn can_cast(kind: SyntaxKind) -> bool {
35531        kind == SyntaxKind::WINDOW_SPEC
35532    }
35533    #[inline]
35534    fn cast(syntax: SyntaxNode) -> Option<Self> {
35535        if Self::can_cast(syntax.kind()) {
35536            Some(Self { syntax })
35537        } else {
35538            None
35539        }
35540    }
35541    #[inline]
35542    fn syntax(&self) -> &SyntaxNode {
35543        &self.syntax
35544    }
35545}
35546impl AstNode for WithCheckExprClause {
35547    #[inline]
35548    fn can_cast(kind: SyntaxKind) -> bool {
35549        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
35550    }
35551    #[inline]
35552    fn cast(syntax: SyntaxNode) -> Option<Self> {
35553        if Self::can_cast(syntax.kind()) {
35554            Some(Self { syntax })
35555        } else {
35556            None
35557        }
35558    }
35559    #[inline]
35560    fn syntax(&self) -> &SyntaxNode {
35561        &self.syntax
35562    }
35563}
35564impl AstNode for WithClause {
35565    #[inline]
35566    fn can_cast(kind: SyntaxKind) -> bool {
35567        kind == SyntaxKind::WITH_CLAUSE
35568    }
35569    #[inline]
35570    fn cast(syntax: SyntaxNode) -> Option<Self> {
35571        if Self::can_cast(syntax.kind()) {
35572            Some(Self { syntax })
35573        } else {
35574            None
35575        }
35576    }
35577    #[inline]
35578    fn syntax(&self) -> &SyntaxNode {
35579        &self.syntax
35580    }
35581}
35582impl AstNode for WithData {
35583    #[inline]
35584    fn can_cast(kind: SyntaxKind) -> bool {
35585        kind == SyntaxKind::WITH_DATA
35586    }
35587    #[inline]
35588    fn cast(syntax: SyntaxNode) -> Option<Self> {
35589        if Self::can_cast(syntax.kind()) {
35590            Some(Self { syntax })
35591        } else {
35592            None
35593        }
35594    }
35595    #[inline]
35596    fn syntax(&self) -> &SyntaxNode {
35597        &self.syntax
35598    }
35599}
35600impl AstNode for WithNoData {
35601    #[inline]
35602    fn can_cast(kind: SyntaxKind) -> bool {
35603        kind == SyntaxKind::WITH_NO_DATA
35604    }
35605    #[inline]
35606    fn cast(syntax: SyntaxNode) -> Option<Self> {
35607        if Self::can_cast(syntax.kind()) {
35608            Some(Self { syntax })
35609        } else {
35610            None
35611        }
35612    }
35613    #[inline]
35614    fn syntax(&self) -> &SyntaxNode {
35615        &self.syntax
35616    }
35617}
35618impl AstNode for WithOptions {
35619    #[inline]
35620    fn can_cast(kind: SyntaxKind) -> bool {
35621        kind == SyntaxKind::WITH_OPTIONS
35622    }
35623    #[inline]
35624    fn cast(syntax: SyntaxNode) -> Option<Self> {
35625        if Self::can_cast(syntax.kind()) {
35626            Some(Self { syntax })
35627        } else {
35628            None
35629        }
35630    }
35631    #[inline]
35632    fn syntax(&self) -> &SyntaxNode {
35633        &self.syntax
35634    }
35635}
35636impl AstNode for WithParams {
35637    #[inline]
35638    fn can_cast(kind: SyntaxKind) -> bool {
35639        kind == SyntaxKind::WITH_PARAMS
35640    }
35641    #[inline]
35642    fn cast(syntax: SyntaxNode) -> Option<Self> {
35643        if Self::can_cast(syntax.kind()) {
35644            Some(Self { syntax })
35645        } else {
35646            None
35647        }
35648    }
35649    #[inline]
35650    fn syntax(&self) -> &SyntaxNode {
35651        &self.syntax
35652    }
35653}
35654impl AstNode for WithTable {
35655    #[inline]
35656    fn can_cast(kind: SyntaxKind) -> bool {
35657        kind == SyntaxKind::WITH_TABLE
35658    }
35659    #[inline]
35660    fn cast(syntax: SyntaxNode) -> Option<Self> {
35661        if Self::can_cast(syntax.kind()) {
35662            Some(Self { syntax })
35663        } else {
35664            None
35665        }
35666    }
35667    #[inline]
35668    fn syntax(&self) -> &SyntaxNode {
35669        &self.syntax
35670    }
35671}
35672impl AstNode for WithTimezone {
35673    #[inline]
35674    fn can_cast(kind: SyntaxKind) -> bool {
35675        kind == SyntaxKind::WITH_TIMEZONE
35676    }
35677    #[inline]
35678    fn cast(syntax: SyntaxNode) -> Option<Self> {
35679        if Self::can_cast(syntax.kind()) {
35680            Some(Self { syntax })
35681        } else {
35682            None
35683        }
35684    }
35685    #[inline]
35686    fn syntax(&self) -> &SyntaxNode {
35687        &self.syntax
35688    }
35689}
35690impl AstNode for WithinClause {
35691    #[inline]
35692    fn can_cast(kind: SyntaxKind) -> bool {
35693        kind == SyntaxKind::WITHIN_CLAUSE
35694    }
35695    #[inline]
35696    fn cast(syntax: SyntaxNode) -> Option<Self> {
35697        if Self::can_cast(syntax.kind()) {
35698            Some(Self { syntax })
35699        } else {
35700            None
35701        }
35702    }
35703    #[inline]
35704    fn syntax(&self) -> &SyntaxNode {
35705        &self.syntax
35706    }
35707}
35708impl AstNode for WithoutOids {
35709    #[inline]
35710    fn can_cast(kind: SyntaxKind) -> bool {
35711        kind == SyntaxKind::WITHOUT_OIDS
35712    }
35713    #[inline]
35714    fn cast(syntax: SyntaxNode) -> Option<Self> {
35715        if Self::can_cast(syntax.kind()) {
35716            Some(Self { syntax })
35717        } else {
35718            None
35719        }
35720    }
35721    #[inline]
35722    fn syntax(&self) -> &SyntaxNode {
35723        &self.syntax
35724    }
35725}
35726impl AstNode for WithoutTimezone {
35727    #[inline]
35728    fn can_cast(kind: SyntaxKind) -> bool {
35729        kind == SyntaxKind::WITHOUT_TIMEZONE
35730    }
35731    #[inline]
35732    fn cast(syntax: SyntaxNode) -> Option<Self> {
35733        if Self::can_cast(syntax.kind()) {
35734            Some(Self { syntax })
35735        } else {
35736            None
35737        }
35738    }
35739    #[inline]
35740    fn syntax(&self) -> &SyntaxNode {
35741        &self.syntax
35742    }
35743}
35744impl AstNode for XmlColumnOption {
35745    #[inline]
35746    fn can_cast(kind: SyntaxKind) -> bool {
35747        kind == SyntaxKind::XML_COLUMN_OPTION
35748    }
35749    #[inline]
35750    fn cast(syntax: SyntaxNode) -> Option<Self> {
35751        if Self::can_cast(syntax.kind()) {
35752            Some(Self { syntax })
35753        } else {
35754            None
35755        }
35756    }
35757    #[inline]
35758    fn syntax(&self) -> &SyntaxNode {
35759        &self.syntax
35760    }
35761}
35762impl AstNode for XmlColumnOptionList {
35763    #[inline]
35764    fn can_cast(kind: SyntaxKind) -> bool {
35765        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
35766    }
35767    #[inline]
35768    fn cast(syntax: SyntaxNode) -> Option<Self> {
35769        if Self::can_cast(syntax.kind()) {
35770            Some(Self { syntax })
35771        } else {
35772            None
35773        }
35774    }
35775    #[inline]
35776    fn syntax(&self) -> &SyntaxNode {
35777        &self.syntax
35778    }
35779}
35780impl AstNode for XmlElementFn {
35781    #[inline]
35782    fn can_cast(kind: SyntaxKind) -> bool {
35783        kind == SyntaxKind::XML_ELEMENT_FN
35784    }
35785    #[inline]
35786    fn cast(syntax: SyntaxNode) -> Option<Self> {
35787        if Self::can_cast(syntax.kind()) {
35788            Some(Self { syntax })
35789        } else {
35790            None
35791        }
35792    }
35793    #[inline]
35794    fn syntax(&self) -> &SyntaxNode {
35795        &self.syntax
35796    }
35797}
35798impl AstNode for XmlExistsFn {
35799    #[inline]
35800    fn can_cast(kind: SyntaxKind) -> bool {
35801        kind == SyntaxKind::XML_EXISTS_FN
35802    }
35803    #[inline]
35804    fn cast(syntax: SyntaxNode) -> Option<Self> {
35805        if Self::can_cast(syntax.kind()) {
35806            Some(Self { syntax })
35807        } else {
35808            None
35809        }
35810    }
35811    #[inline]
35812    fn syntax(&self) -> &SyntaxNode {
35813        &self.syntax
35814    }
35815}
35816impl AstNode for XmlForestFn {
35817    #[inline]
35818    fn can_cast(kind: SyntaxKind) -> bool {
35819        kind == SyntaxKind::XML_FOREST_FN
35820    }
35821    #[inline]
35822    fn cast(syntax: SyntaxNode) -> Option<Self> {
35823        if Self::can_cast(syntax.kind()) {
35824            Some(Self { syntax })
35825        } else {
35826            None
35827        }
35828    }
35829    #[inline]
35830    fn syntax(&self) -> &SyntaxNode {
35831        &self.syntax
35832    }
35833}
35834impl AstNode for XmlNamespace {
35835    #[inline]
35836    fn can_cast(kind: SyntaxKind) -> bool {
35837        kind == SyntaxKind::XML_NAMESPACE
35838    }
35839    #[inline]
35840    fn cast(syntax: SyntaxNode) -> Option<Self> {
35841        if Self::can_cast(syntax.kind()) {
35842            Some(Self { syntax })
35843        } else {
35844            None
35845        }
35846    }
35847    #[inline]
35848    fn syntax(&self) -> &SyntaxNode {
35849        &self.syntax
35850    }
35851}
35852impl AstNode for XmlNamespaceList {
35853    #[inline]
35854    fn can_cast(kind: SyntaxKind) -> bool {
35855        kind == SyntaxKind::XML_NAMESPACE_LIST
35856    }
35857    #[inline]
35858    fn cast(syntax: SyntaxNode) -> Option<Self> {
35859        if Self::can_cast(syntax.kind()) {
35860            Some(Self { syntax })
35861        } else {
35862            None
35863        }
35864    }
35865    #[inline]
35866    fn syntax(&self) -> &SyntaxNode {
35867        &self.syntax
35868    }
35869}
35870impl AstNode for XmlParseFn {
35871    #[inline]
35872    fn can_cast(kind: SyntaxKind) -> bool {
35873        kind == SyntaxKind::XML_PARSE_FN
35874    }
35875    #[inline]
35876    fn cast(syntax: SyntaxNode) -> Option<Self> {
35877        if Self::can_cast(syntax.kind()) {
35878            Some(Self { syntax })
35879        } else {
35880            None
35881        }
35882    }
35883    #[inline]
35884    fn syntax(&self) -> &SyntaxNode {
35885        &self.syntax
35886    }
35887}
35888impl AstNode for XmlPassingMech {
35889    #[inline]
35890    fn can_cast(kind: SyntaxKind) -> bool {
35891        kind == SyntaxKind::XML_PASSING_MECH
35892    }
35893    #[inline]
35894    fn cast(syntax: SyntaxNode) -> Option<Self> {
35895        if Self::can_cast(syntax.kind()) {
35896            Some(Self { syntax })
35897        } else {
35898            None
35899        }
35900    }
35901    #[inline]
35902    fn syntax(&self) -> &SyntaxNode {
35903        &self.syntax
35904    }
35905}
35906impl AstNode for XmlPiFn {
35907    #[inline]
35908    fn can_cast(kind: SyntaxKind) -> bool {
35909        kind == SyntaxKind::XML_PI_FN
35910    }
35911    #[inline]
35912    fn cast(syntax: SyntaxNode) -> Option<Self> {
35913        if Self::can_cast(syntax.kind()) {
35914            Some(Self { syntax })
35915        } else {
35916            None
35917        }
35918    }
35919    #[inline]
35920    fn syntax(&self) -> &SyntaxNode {
35921        &self.syntax
35922    }
35923}
35924impl AstNode for XmlRootFn {
35925    #[inline]
35926    fn can_cast(kind: SyntaxKind) -> bool {
35927        kind == SyntaxKind::XML_ROOT_FN
35928    }
35929    #[inline]
35930    fn cast(syntax: SyntaxNode) -> Option<Self> {
35931        if Self::can_cast(syntax.kind()) {
35932            Some(Self { syntax })
35933        } else {
35934            None
35935        }
35936    }
35937    #[inline]
35938    fn syntax(&self) -> &SyntaxNode {
35939        &self.syntax
35940    }
35941}
35942impl AstNode for XmlRowPassingClause {
35943    #[inline]
35944    fn can_cast(kind: SyntaxKind) -> bool {
35945        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
35946    }
35947    #[inline]
35948    fn cast(syntax: SyntaxNode) -> Option<Self> {
35949        if Self::can_cast(syntax.kind()) {
35950            Some(Self { syntax })
35951        } else {
35952            None
35953        }
35954    }
35955    #[inline]
35956    fn syntax(&self) -> &SyntaxNode {
35957        &self.syntax
35958    }
35959}
35960impl AstNode for XmlSerializeFn {
35961    #[inline]
35962    fn can_cast(kind: SyntaxKind) -> bool {
35963        kind == SyntaxKind::XML_SERIALIZE_FN
35964    }
35965    #[inline]
35966    fn cast(syntax: SyntaxNode) -> Option<Self> {
35967        if Self::can_cast(syntax.kind()) {
35968            Some(Self { syntax })
35969        } else {
35970            None
35971        }
35972    }
35973    #[inline]
35974    fn syntax(&self) -> &SyntaxNode {
35975        &self.syntax
35976    }
35977}
35978impl AstNode for XmlTable {
35979    #[inline]
35980    fn can_cast(kind: SyntaxKind) -> bool {
35981        kind == SyntaxKind::XML_TABLE
35982    }
35983    #[inline]
35984    fn cast(syntax: SyntaxNode) -> Option<Self> {
35985        if Self::can_cast(syntax.kind()) {
35986            Some(Self { syntax })
35987        } else {
35988            None
35989        }
35990    }
35991    #[inline]
35992    fn syntax(&self) -> &SyntaxNode {
35993        &self.syntax
35994    }
35995}
35996impl AstNode for XmlTableColumn {
35997    #[inline]
35998    fn can_cast(kind: SyntaxKind) -> bool {
35999        kind == SyntaxKind::XML_TABLE_COLUMN
36000    }
36001    #[inline]
36002    fn cast(syntax: SyntaxNode) -> Option<Self> {
36003        if Self::can_cast(syntax.kind()) {
36004            Some(Self { syntax })
36005        } else {
36006            None
36007        }
36008    }
36009    #[inline]
36010    fn syntax(&self) -> &SyntaxNode {
36011        &self.syntax
36012    }
36013}
36014impl AstNode for XmlTableColumnList {
36015    #[inline]
36016    fn can_cast(kind: SyntaxKind) -> bool {
36017        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
36018    }
36019    #[inline]
36020    fn cast(syntax: SyntaxNode) -> Option<Self> {
36021        if Self::can_cast(syntax.kind()) {
36022            Some(Self { syntax })
36023        } else {
36024            None
36025        }
36026    }
36027    #[inline]
36028    fn syntax(&self) -> &SyntaxNode {
36029        &self.syntax
36030    }
36031}
36032impl AstNode for AlterColumnOption {
36033    #[inline]
36034    fn can_cast(kind: SyntaxKind) -> bool {
36035        matches!(
36036            kind,
36037            SyntaxKind::ADD_GENERATED
36038                | SyntaxKind::DROP_DEFAULT
36039                | SyntaxKind::DROP_EXPRESSION
36040                | SyntaxKind::DROP_IDENTITY
36041                | SyntaxKind::DROP_NOT_NULL
36042                | SyntaxKind::INHERIT
36043                | SyntaxKind::NO_INHERIT
36044                | SyntaxKind::RESET_OPTIONS
36045                | SyntaxKind::RESTART
36046                | SyntaxKind::SET_COMPRESSION
36047                | SyntaxKind::SET_DEFAULT
36048                | SyntaxKind::SET_EXPRESSION
36049                | SyntaxKind::SET_GENERATED
36050                | SyntaxKind::SET_GENERATED_OPTIONS
36051                | SyntaxKind::SET_NOT_NULL
36052                | SyntaxKind::SET_OPTIONS
36053                | SyntaxKind::SET_OPTIONS_LIST
36054                | SyntaxKind::SET_SEQUENCE_OPTION
36055                | SyntaxKind::SET_STATISTICS
36056                | SyntaxKind::SET_STORAGE
36057                | SyntaxKind::SET_TYPE
36058        )
36059    }
36060    #[inline]
36061    fn cast(syntax: SyntaxNode) -> Option<Self> {
36062        let res = match syntax.kind() {
36063            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
36064            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
36065            SyntaxKind::DROP_EXPRESSION => {
36066                AlterColumnOption::DropExpression(DropExpression { syntax })
36067            }
36068            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
36069            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
36070            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
36071            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
36072            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
36073            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
36074            SyntaxKind::SET_COMPRESSION => {
36075                AlterColumnOption::SetCompression(SetCompression { syntax })
36076            }
36077            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
36078            SyntaxKind::SET_EXPRESSION => {
36079                AlterColumnOption::SetExpression(SetExpression { syntax })
36080            }
36081            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
36082            SyntaxKind::SET_GENERATED_OPTIONS => {
36083                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
36084            }
36085            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
36086            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
36087            SyntaxKind::SET_OPTIONS_LIST => {
36088                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
36089            }
36090            SyntaxKind::SET_SEQUENCE_OPTION => {
36091                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
36092            }
36093            SyntaxKind::SET_STATISTICS => {
36094                AlterColumnOption::SetStatistics(SetStatistics { syntax })
36095            }
36096            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
36097            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
36098            _ => {
36099                return None;
36100            }
36101        };
36102        Some(res)
36103    }
36104    #[inline]
36105    fn syntax(&self) -> &SyntaxNode {
36106        match self {
36107            AlterColumnOption::AddGenerated(it) => &it.syntax,
36108            AlterColumnOption::DropDefault(it) => &it.syntax,
36109            AlterColumnOption::DropExpression(it) => &it.syntax,
36110            AlterColumnOption::DropIdentity(it) => &it.syntax,
36111            AlterColumnOption::DropNotNull(it) => &it.syntax,
36112            AlterColumnOption::Inherit(it) => &it.syntax,
36113            AlterColumnOption::NoInherit(it) => &it.syntax,
36114            AlterColumnOption::ResetOptions(it) => &it.syntax,
36115            AlterColumnOption::Restart(it) => &it.syntax,
36116            AlterColumnOption::SetCompression(it) => &it.syntax,
36117            AlterColumnOption::SetDefault(it) => &it.syntax,
36118            AlterColumnOption::SetExpression(it) => &it.syntax,
36119            AlterColumnOption::SetGenerated(it) => &it.syntax,
36120            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
36121            AlterColumnOption::SetNotNull(it) => &it.syntax,
36122            AlterColumnOption::SetOptions(it) => &it.syntax,
36123            AlterColumnOption::SetOptionsList(it) => &it.syntax,
36124            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
36125            AlterColumnOption::SetStatistics(it) => &it.syntax,
36126            AlterColumnOption::SetStorage(it) => &it.syntax,
36127            AlterColumnOption::SetType(it) => &it.syntax,
36128        }
36129    }
36130}
36131impl From<AddGenerated> for AlterColumnOption {
36132    #[inline]
36133    fn from(node: AddGenerated) -> AlterColumnOption {
36134        AlterColumnOption::AddGenerated(node)
36135    }
36136}
36137impl From<DropDefault> for AlterColumnOption {
36138    #[inline]
36139    fn from(node: DropDefault) -> AlterColumnOption {
36140        AlterColumnOption::DropDefault(node)
36141    }
36142}
36143impl From<DropExpression> for AlterColumnOption {
36144    #[inline]
36145    fn from(node: DropExpression) -> AlterColumnOption {
36146        AlterColumnOption::DropExpression(node)
36147    }
36148}
36149impl From<DropIdentity> for AlterColumnOption {
36150    #[inline]
36151    fn from(node: DropIdentity) -> AlterColumnOption {
36152        AlterColumnOption::DropIdentity(node)
36153    }
36154}
36155impl From<DropNotNull> for AlterColumnOption {
36156    #[inline]
36157    fn from(node: DropNotNull) -> AlterColumnOption {
36158        AlterColumnOption::DropNotNull(node)
36159    }
36160}
36161impl From<Inherit> for AlterColumnOption {
36162    #[inline]
36163    fn from(node: Inherit) -> AlterColumnOption {
36164        AlterColumnOption::Inherit(node)
36165    }
36166}
36167impl From<NoInherit> for AlterColumnOption {
36168    #[inline]
36169    fn from(node: NoInherit) -> AlterColumnOption {
36170        AlterColumnOption::NoInherit(node)
36171    }
36172}
36173impl From<ResetOptions> for AlterColumnOption {
36174    #[inline]
36175    fn from(node: ResetOptions) -> AlterColumnOption {
36176        AlterColumnOption::ResetOptions(node)
36177    }
36178}
36179impl From<Restart> for AlterColumnOption {
36180    #[inline]
36181    fn from(node: Restart) -> AlterColumnOption {
36182        AlterColumnOption::Restart(node)
36183    }
36184}
36185impl From<SetCompression> for AlterColumnOption {
36186    #[inline]
36187    fn from(node: SetCompression) -> AlterColumnOption {
36188        AlterColumnOption::SetCompression(node)
36189    }
36190}
36191impl From<SetDefault> for AlterColumnOption {
36192    #[inline]
36193    fn from(node: SetDefault) -> AlterColumnOption {
36194        AlterColumnOption::SetDefault(node)
36195    }
36196}
36197impl From<SetExpression> for AlterColumnOption {
36198    #[inline]
36199    fn from(node: SetExpression) -> AlterColumnOption {
36200        AlterColumnOption::SetExpression(node)
36201    }
36202}
36203impl From<SetGenerated> for AlterColumnOption {
36204    #[inline]
36205    fn from(node: SetGenerated) -> AlterColumnOption {
36206        AlterColumnOption::SetGenerated(node)
36207    }
36208}
36209impl From<SetGeneratedOptions> for AlterColumnOption {
36210    #[inline]
36211    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
36212        AlterColumnOption::SetGeneratedOptions(node)
36213    }
36214}
36215impl From<SetNotNull> for AlterColumnOption {
36216    #[inline]
36217    fn from(node: SetNotNull) -> AlterColumnOption {
36218        AlterColumnOption::SetNotNull(node)
36219    }
36220}
36221impl From<SetOptions> for AlterColumnOption {
36222    #[inline]
36223    fn from(node: SetOptions) -> AlterColumnOption {
36224        AlterColumnOption::SetOptions(node)
36225    }
36226}
36227impl From<SetOptionsList> for AlterColumnOption {
36228    #[inline]
36229    fn from(node: SetOptionsList) -> AlterColumnOption {
36230        AlterColumnOption::SetOptionsList(node)
36231    }
36232}
36233impl From<SetSequenceOption> for AlterColumnOption {
36234    #[inline]
36235    fn from(node: SetSequenceOption) -> AlterColumnOption {
36236        AlterColumnOption::SetSequenceOption(node)
36237    }
36238}
36239impl From<SetStatistics> for AlterColumnOption {
36240    #[inline]
36241    fn from(node: SetStatistics) -> AlterColumnOption {
36242        AlterColumnOption::SetStatistics(node)
36243    }
36244}
36245impl From<SetStorage> for AlterColumnOption {
36246    #[inline]
36247    fn from(node: SetStorage) -> AlterColumnOption {
36248        AlterColumnOption::SetStorage(node)
36249    }
36250}
36251impl From<SetType> for AlterColumnOption {
36252    #[inline]
36253    fn from(node: SetType) -> AlterColumnOption {
36254        AlterColumnOption::SetType(node)
36255    }
36256}
36257impl AstNode for AlterDomainAction {
36258    #[inline]
36259    fn can_cast(kind: SyntaxKind) -> bool {
36260        matches!(
36261            kind,
36262            SyntaxKind::ADD_CONSTRAINT
36263                | SyntaxKind::DROP_CONSTRAINT
36264                | SyntaxKind::DROP_DEFAULT
36265                | SyntaxKind::DROP_NOT_NULL
36266                | SyntaxKind::OWNER_TO
36267                | SyntaxKind::RENAME_CONSTRAINT
36268                | SyntaxKind::RENAME_TO
36269                | SyntaxKind::SET_DEFAULT
36270                | SyntaxKind::SET_NOT_NULL
36271                | SyntaxKind::SET_SCHEMA
36272                | SyntaxKind::VALIDATE_CONSTRAINT
36273        )
36274    }
36275    #[inline]
36276    fn cast(syntax: SyntaxNode) -> Option<Self> {
36277        let res = match syntax.kind() {
36278            SyntaxKind::ADD_CONSTRAINT => {
36279                AlterDomainAction::AddConstraint(AddConstraint { syntax })
36280            }
36281            SyntaxKind::DROP_CONSTRAINT => {
36282                AlterDomainAction::DropConstraint(DropConstraint { syntax })
36283            }
36284            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
36285            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
36286            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
36287            SyntaxKind::RENAME_CONSTRAINT => {
36288                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
36289            }
36290            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
36291            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
36292            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
36293            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
36294            SyntaxKind::VALIDATE_CONSTRAINT => {
36295                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
36296            }
36297            _ => {
36298                return None;
36299            }
36300        };
36301        Some(res)
36302    }
36303    #[inline]
36304    fn syntax(&self) -> &SyntaxNode {
36305        match self {
36306            AlterDomainAction::AddConstraint(it) => &it.syntax,
36307            AlterDomainAction::DropConstraint(it) => &it.syntax,
36308            AlterDomainAction::DropDefault(it) => &it.syntax,
36309            AlterDomainAction::DropNotNull(it) => &it.syntax,
36310            AlterDomainAction::OwnerTo(it) => &it.syntax,
36311            AlterDomainAction::RenameConstraint(it) => &it.syntax,
36312            AlterDomainAction::RenameTo(it) => &it.syntax,
36313            AlterDomainAction::SetDefault(it) => &it.syntax,
36314            AlterDomainAction::SetNotNull(it) => &it.syntax,
36315            AlterDomainAction::SetSchema(it) => &it.syntax,
36316            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
36317        }
36318    }
36319}
36320impl From<AddConstraint> for AlterDomainAction {
36321    #[inline]
36322    fn from(node: AddConstraint) -> AlterDomainAction {
36323        AlterDomainAction::AddConstraint(node)
36324    }
36325}
36326impl From<DropConstraint> for AlterDomainAction {
36327    #[inline]
36328    fn from(node: DropConstraint) -> AlterDomainAction {
36329        AlterDomainAction::DropConstraint(node)
36330    }
36331}
36332impl From<DropDefault> for AlterDomainAction {
36333    #[inline]
36334    fn from(node: DropDefault) -> AlterDomainAction {
36335        AlterDomainAction::DropDefault(node)
36336    }
36337}
36338impl From<DropNotNull> for AlterDomainAction {
36339    #[inline]
36340    fn from(node: DropNotNull) -> AlterDomainAction {
36341        AlterDomainAction::DropNotNull(node)
36342    }
36343}
36344impl From<OwnerTo> for AlterDomainAction {
36345    #[inline]
36346    fn from(node: OwnerTo) -> AlterDomainAction {
36347        AlterDomainAction::OwnerTo(node)
36348    }
36349}
36350impl From<RenameConstraint> for AlterDomainAction {
36351    #[inline]
36352    fn from(node: RenameConstraint) -> AlterDomainAction {
36353        AlterDomainAction::RenameConstraint(node)
36354    }
36355}
36356impl From<RenameTo> for AlterDomainAction {
36357    #[inline]
36358    fn from(node: RenameTo) -> AlterDomainAction {
36359        AlterDomainAction::RenameTo(node)
36360    }
36361}
36362impl From<SetDefault> for AlterDomainAction {
36363    #[inline]
36364    fn from(node: SetDefault) -> AlterDomainAction {
36365        AlterDomainAction::SetDefault(node)
36366    }
36367}
36368impl From<SetNotNull> for AlterDomainAction {
36369    #[inline]
36370    fn from(node: SetNotNull) -> AlterDomainAction {
36371        AlterDomainAction::SetNotNull(node)
36372    }
36373}
36374impl From<SetSchema> for AlterDomainAction {
36375    #[inline]
36376    fn from(node: SetSchema) -> AlterDomainAction {
36377        AlterDomainAction::SetSchema(node)
36378    }
36379}
36380impl From<ValidateConstraint> for AlterDomainAction {
36381    #[inline]
36382    fn from(node: ValidateConstraint) -> AlterDomainAction {
36383        AlterDomainAction::ValidateConstraint(node)
36384    }
36385}
36386impl AstNode for AlterIndexAction {
36387    #[inline]
36388    fn can_cast(kind: SyntaxKind) -> bool {
36389        matches!(
36390            kind,
36391            SyntaxKind::ALTER_SET_STATISTICS
36392                | SyntaxKind::ATTACH_PARTITION
36393                | SyntaxKind::DEPENDS_ON_EXTENSION
36394                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
36395                | SyntaxKind::RENAME_TO
36396                | SyntaxKind::RESET_OPTIONS
36397                | SyntaxKind::SET_OPTIONS
36398                | SyntaxKind::SET_TABLESPACE
36399        )
36400    }
36401    #[inline]
36402    fn cast(syntax: SyntaxNode) -> Option<Self> {
36403        let res = match syntax.kind() {
36404            SyntaxKind::ALTER_SET_STATISTICS => {
36405                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
36406            }
36407            SyntaxKind::ATTACH_PARTITION => {
36408                AlterIndexAction::AttachPartition(AttachPartition { syntax })
36409            }
36410            SyntaxKind::DEPENDS_ON_EXTENSION => {
36411                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
36412            }
36413            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
36414                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
36415            }
36416            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
36417            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
36418            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
36419            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
36420            _ => {
36421                return None;
36422            }
36423        };
36424        Some(res)
36425    }
36426    #[inline]
36427    fn syntax(&self) -> &SyntaxNode {
36428        match self {
36429            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
36430            AlterIndexAction::AttachPartition(it) => &it.syntax,
36431            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
36432            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
36433            AlterIndexAction::RenameTo(it) => &it.syntax,
36434            AlterIndexAction::ResetOptions(it) => &it.syntax,
36435            AlterIndexAction::SetOptions(it) => &it.syntax,
36436            AlterIndexAction::SetTablespace(it) => &it.syntax,
36437        }
36438    }
36439}
36440impl From<AlterSetStatistics> for AlterIndexAction {
36441    #[inline]
36442    fn from(node: AlterSetStatistics) -> AlterIndexAction {
36443        AlterIndexAction::AlterSetStatistics(node)
36444    }
36445}
36446impl From<AttachPartition> for AlterIndexAction {
36447    #[inline]
36448    fn from(node: AttachPartition) -> AlterIndexAction {
36449        AlterIndexAction::AttachPartition(node)
36450    }
36451}
36452impl From<DependsOnExtension> for AlterIndexAction {
36453    #[inline]
36454    fn from(node: DependsOnExtension) -> AlterIndexAction {
36455        AlterIndexAction::DependsOnExtension(node)
36456    }
36457}
36458impl From<NoDependsOnExtension> for AlterIndexAction {
36459    #[inline]
36460    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
36461        AlterIndexAction::NoDependsOnExtension(node)
36462    }
36463}
36464impl From<RenameTo> for AlterIndexAction {
36465    #[inline]
36466    fn from(node: RenameTo) -> AlterIndexAction {
36467        AlterIndexAction::RenameTo(node)
36468    }
36469}
36470impl From<ResetOptions> for AlterIndexAction {
36471    #[inline]
36472    fn from(node: ResetOptions) -> AlterIndexAction {
36473        AlterIndexAction::ResetOptions(node)
36474    }
36475}
36476impl From<SetOptions> for AlterIndexAction {
36477    #[inline]
36478    fn from(node: SetOptions) -> AlterIndexAction {
36479        AlterIndexAction::SetOptions(node)
36480    }
36481}
36482impl From<SetTablespace> for AlterIndexAction {
36483    #[inline]
36484    fn from(node: SetTablespace) -> AlterIndexAction {
36485        AlterIndexAction::SetTablespace(node)
36486    }
36487}
36488impl AstNode for AlterMaterializedViewAction {
36489    #[inline]
36490    fn can_cast(kind: SyntaxKind) -> bool {
36491        matches!(
36492            kind,
36493            SyntaxKind::DEPENDS_ON_EXTENSION
36494                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
36495                | SyntaxKind::RENAME_COLUMN
36496                | SyntaxKind::RENAME_TO
36497                | SyntaxKind::SET_SCHEMA
36498        )
36499    }
36500    #[inline]
36501    fn cast(syntax: SyntaxNode) -> Option<Self> {
36502        let res = match syntax.kind() {
36503            SyntaxKind::DEPENDS_ON_EXTENSION => {
36504                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
36505            }
36506            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
36507                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
36508            }
36509            SyntaxKind::RENAME_COLUMN => {
36510                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
36511            }
36512            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
36513            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
36514            _ => {
36515                if let Some(result) = AlterTableAction::cast(syntax) {
36516                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
36517                }
36518                return None;
36519            }
36520        };
36521        Some(res)
36522    }
36523    #[inline]
36524    fn syntax(&self) -> &SyntaxNode {
36525        match self {
36526            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
36527            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
36528            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
36529            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
36530            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
36531            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
36532        }
36533    }
36534}
36535impl From<DependsOnExtension> for AlterMaterializedViewAction {
36536    #[inline]
36537    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
36538        AlterMaterializedViewAction::DependsOnExtension(node)
36539    }
36540}
36541impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
36542    #[inline]
36543    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
36544        AlterMaterializedViewAction::NoDependsOnExtension(node)
36545    }
36546}
36547impl From<RenameColumn> for AlterMaterializedViewAction {
36548    #[inline]
36549    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
36550        AlterMaterializedViewAction::RenameColumn(node)
36551    }
36552}
36553impl From<RenameTo> for AlterMaterializedViewAction {
36554    #[inline]
36555    fn from(node: RenameTo) -> AlterMaterializedViewAction {
36556        AlterMaterializedViewAction::RenameTo(node)
36557    }
36558}
36559impl From<SetSchema> for AlterMaterializedViewAction {
36560    #[inline]
36561    fn from(node: SetSchema) -> AlterMaterializedViewAction {
36562        AlterMaterializedViewAction::SetSchema(node)
36563    }
36564}
36565impl AstNode for AlterPropertyGraphAction {
36566    #[inline]
36567    fn can_cast(kind: SyntaxKind) -> bool {
36568        matches!(
36569            kind,
36570            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
36571                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
36572                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
36573                | SyntaxKind::DROP_EDGE_TABLES
36574                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
36575                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
36576                | SyntaxKind::DROP_VERTEX_TABLES
36577                | SyntaxKind::OWNER_TO
36578                | SyntaxKind::RENAME_TO
36579                | SyntaxKind::SET_SCHEMA
36580        )
36581    }
36582    #[inline]
36583    fn cast(syntax: SyntaxNode) -> Option<Self> {
36584        let res = match syntax.kind() {
36585            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
36586                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
36587                    AddVertexEdgeLabelProperties { syntax },
36588                )
36589            }
36590            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
36591                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
36592            }
36593            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
36594                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
36595            }
36596            SyntaxKind::DROP_EDGE_TABLES => {
36597                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
36598            }
36599            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
36600                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
36601            }
36602            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
36603                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
36604                    DropVertexEdgeLabelProperties { syntax },
36605                )
36606            }
36607            SyntaxKind::DROP_VERTEX_TABLES => {
36608                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
36609            }
36610            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
36611            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
36612            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
36613            _ => {
36614                return None;
36615            }
36616        };
36617        Some(res)
36618    }
36619    #[inline]
36620    fn syntax(&self) -> &SyntaxNode {
36621        match self {
36622            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
36623            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
36624            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
36625            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
36626            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
36627            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
36628            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
36629            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
36630            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
36631            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
36632        }
36633    }
36634}
36635impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
36636    #[inline]
36637    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
36638        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
36639    }
36640}
36641impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
36642    #[inline]
36643    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
36644        AlterPropertyGraphAction::AddVertexEdgeTables(node)
36645    }
36646}
36647impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
36648    #[inline]
36649    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
36650        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
36651    }
36652}
36653impl From<DropEdgeTables> for AlterPropertyGraphAction {
36654    #[inline]
36655    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
36656        AlterPropertyGraphAction::DropEdgeTables(node)
36657    }
36658}
36659impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
36660    #[inline]
36661    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
36662        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
36663    }
36664}
36665impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
36666    #[inline]
36667    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
36668        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
36669    }
36670}
36671impl From<DropVertexTables> for AlterPropertyGraphAction {
36672    #[inline]
36673    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
36674        AlterPropertyGraphAction::DropVertexTables(node)
36675    }
36676}
36677impl From<OwnerTo> for AlterPropertyGraphAction {
36678    #[inline]
36679    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
36680        AlterPropertyGraphAction::OwnerTo(node)
36681    }
36682}
36683impl From<RenameTo> for AlterPropertyGraphAction {
36684    #[inline]
36685    fn from(node: RenameTo) -> AlterPropertyGraphAction {
36686        AlterPropertyGraphAction::RenameTo(node)
36687    }
36688}
36689impl From<SetSchema> for AlterPropertyGraphAction {
36690    #[inline]
36691    fn from(node: SetSchema) -> AlterPropertyGraphAction {
36692        AlterPropertyGraphAction::SetSchema(node)
36693    }
36694}
36695impl AstNode for AlterTableAction {
36696    #[inline]
36697    fn can_cast(kind: SyntaxKind) -> bool {
36698        matches!(
36699            kind,
36700            SyntaxKind::ADD_COLUMN
36701                | SyntaxKind::ADD_CONSTRAINT
36702                | SyntaxKind::ALTER_COLUMN
36703                | SyntaxKind::ALTER_CONSTRAINT
36704                | SyntaxKind::ATTACH_PARTITION
36705                | SyntaxKind::CLUSTER_ON
36706                | SyntaxKind::DETACH_PARTITION
36707                | SyntaxKind::DISABLE_RLS
36708                | SyntaxKind::DISABLE_RULE
36709                | SyntaxKind::DISABLE_TRIGGER
36710                | SyntaxKind::DROP_COLUMN
36711                | SyntaxKind::DROP_CONSTRAINT
36712                | SyntaxKind::ENABLE_ALWAYS_RULE
36713                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
36714                | SyntaxKind::ENABLE_REPLICA_RULE
36715                | SyntaxKind::ENABLE_REPLICA_TRIGGER
36716                | SyntaxKind::ENABLE_RLS
36717                | SyntaxKind::ENABLE_RULE
36718                | SyntaxKind::ENABLE_TRIGGER
36719                | SyntaxKind::FORCE_RLS
36720                | SyntaxKind::INHERIT_TABLE
36721                | SyntaxKind::MERGE_PARTITIONS
36722                | SyntaxKind::NO_FORCE_RLS
36723                | SyntaxKind::NO_INHERIT_TABLE
36724                | SyntaxKind::NOT_OF
36725                | SyntaxKind::OF_TYPE
36726                | SyntaxKind::OPTION_ITEM_LIST
36727                | SyntaxKind::OWNER_TO
36728                | SyntaxKind::RENAME_COLUMN
36729                | SyntaxKind::RENAME_CONSTRAINT
36730                | SyntaxKind::RENAME_TO
36731                | SyntaxKind::REPLICA_IDENTITY
36732                | SyntaxKind::RESET_OPTIONS
36733                | SyntaxKind::SET_ACCESS_METHOD
36734                | SyntaxKind::SET_LOGGED
36735                | SyntaxKind::SET_OPTIONS
36736                | SyntaxKind::SET_SCHEMA
36737                | SyntaxKind::SET_TABLESPACE
36738                | SyntaxKind::SET_UNLOGGED
36739                | SyntaxKind::SET_WITHOUT_CLUSTER
36740                | SyntaxKind::SET_WITHOUT_OIDS
36741                | SyntaxKind::SPLIT_PARTITION
36742                | SyntaxKind::VALIDATE_CONSTRAINT
36743        )
36744    }
36745    #[inline]
36746    fn cast(syntax: SyntaxNode) -> Option<Self> {
36747        let res = match syntax.kind() {
36748            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
36749            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
36750            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
36751            SyntaxKind::ALTER_CONSTRAINT => {
36752                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
36753            }
36754            SyntaxKind::ATTACH_PARTITION => {
36755                AlterTableAction::AttachPartition(AttachPartition { syntax })
36756            }
36757            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
36758            SyntaxKind::DETACH_PARTITION => {
36759                AlterTableAction::DetachPartition(DetachPartition { syntax })
36760            }
36761            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
36762            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
36763            SyntaxKind::DISABLE_TRIGGER => {
36764                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
36765            }
36766            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
36767            SyntaxKind::DROP_CONSTRAINT => {
36768                AlterTableAction::DropConstraint(DropConstraint { syntax })
36769            }
36770            SyntaxKind::ENABLE_ALWAYS_RULE => {
36771                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
36772            }
36773            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
36774                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
36775            }
36776            SyntaxKind::ENABLE_REPLICA_RULE => {
36777                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
36778            }
36779            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
36780                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
36781            }
36782            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
36783            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
36784            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
36785            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
36786            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
36787            SyntaxKind::MERGE_PARTITIONS => {
36788                AlterTableAction::MergePartitions(MergePartitions { syntax })
36789            }
36790            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
36791            SyntaxKind::NO_INHERIT_TABLE => {
36792                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
36793            }
36794            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
36795            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
36796            SyntaxKind::OPTION_ITEM_LIST => {
36797                AlterTableAction::OptionItemList(OptionItemList { syntax })
36798            }
36799            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
36800            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
36801            SyntaxKind::RENAME_CONSTRAINT => {
36802                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
36803            }
36804            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
36805            SyntaxKind::REPLICA_IDENTITY => {
36806                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
36807            }
36808            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
36809            SyntaxKind::SET_ACCESS_METHOD => {
36810                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
36811            }
36812            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
36813            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
36814            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
36815            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
36816            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
36817            SyntaxKind::SET_WITHOUT_CLUSTER => {
36818                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
36819            }
36820            SyntaxKind::SET_WITHOUT_OIDS => {
36821                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
36822            }
36823            SyntaxKind::SPLIT_PARTITION => {
36824                AlterTableAction::SplitPartition(SplitPartition { syntax })
36825            }
36826            SyntaxKind::VALIDATE_CONSTRAINT => {
36827                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
36828            }
36829            _ => {
36830                return None;
36831            }
36832        };
36833        Some(res)
36834    }
36835    #[inline]
36836    fn syntax(&self) -> &SyntaxNode {
36837        match self {
36838            AlterTableAction::AddColumn(it) => &it.syntax,
36839            AlterTableAction::AddConstraint(it) => &it.syntax,
36840            AlterTableAction::AlterColumn(it) => &it.syntax,
36841            AlterTableAction::AlterConstraint(it) => &it.syntax,
36842            AlterTableAction::AttachPartition(it) => &it.syntax,
36843            AlterTableAction::ClusterOn(it) => &it.syntax,
36844            AlterTableAction::DetachPartition(it) => &it.syntax,
36845            AlterTableAction::DisableRls(it) => &it.syntax,
36846            AlterTableAction::DisableRule(it) => &it.syntax,
36847            AlterTableAction::DisableTrigger(it) => &it.syntax,
36848            AlterTableAction::DropColumn(it) => &it.syntax,
36849            AlterTableAction::DropConstraint(it) => &it.syntax,
36850            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
36851            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
36852            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
36853            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
36854            AlterTableAction::EnableRls(it) => &it.syntax,
36855            AlterTableAction::EnableRule(it) => &it.syntax,
36856            AlterTableAction::EnableTrigger(it) => &it.syntax,
36857            AlterTableAction::ForceRls(it) => &it.syntax,
36858            AlterTableAction::InheritTable(it) => &it.syntax,
36859            AlterTableAction::MergePartitions(it) => &it.syntax,
36860            AlterTableAction::NoForceRls(it) => &it.syntax,
36861            AlterTableAction::NoInheritTable(it) => &it.syntax,
36862            AlterTableAction::NotOf(it) => &it.syntax,
36863            AlterTableAction::OfType(it) => &it.syntax,
36864            AlterTableAction::OptionItemList(it) => &it.syntax,
36865            AlterTableAction::OwnerTo(it) => &it.syntax,
36866            AlterTableAction::RenameColumn(it) => &it.syntax,
36867            AlterTableAction::RenameConstraint(it) => &it.syntax,
36868            AlterTableAction::RenameTo(it) => &it.syntax,
36869            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
36870            AlterTableAction::ResetOptions(it) => &it.syntax,
36871            AlterTableAction::SetAccessMethod(it) => &it.syntax,
36872            AlterTableAction::SetLogged(it) => &it.syntax,
36873            AlterTableAction::SetOptions(it) => &it.syntax,
36874            AlterTableAction::SetSchema(it) => &it.syntax,
36875            AlterTableAction::SetTablespace(it) => &it.syntax,
36876            AlterTableAction::SetUnlogged(it) => &it.syntax,
36877            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
36878            AlterTableAction::SetWithoutOids(it) => &it.syntax,
36879            AlterTableAction::SplitPartition(it) => &it.syntax,
36880            AlterTableAction::ValidateConstraint(it) => &it.syntax,
36881        }
36882    }
36883}
36884impl From<AddColumn> for AlterTableAction {
36885    #[inline]
36886    fn from(node: AddColumn) -> AlterTableAction {
36887        AlterTableAction::AddColumn(node)
36888    }
36889}
36890impl From<AddConstraint> for AlterTableAction {
36891    #[inline]
36892    fn from(node: AddConstraint) -> AlterTableAction {
36893        AlterTableAction::AddConstraint(node)
36894    }
36895}
36896impl From<AlterColumn> for AlterTableAction {
36897    #[inline]
36898    fn from(node: AlterColumn) -> AlterTableAction {
36899        AlterTableAction::AlterColumn(node)
36900    }
36901}
36902impl From<AlterConstraint> for AlterTableAction {
36903    #[inline]
36904    fn from(node: AlterConstraint) -> AlterTableAction {
36905        AlterTableAction::AlterConstraint(node)
36906    }
36907}
36908impl From<AttachPartition> for AlterTableAction {
36909    #[inline]
36910    fn from(node: AttachPartition) -> AlterTableAction {
36911        AlterTableAction::AttachPartition(node)
36912    }
36913}
36914impl From<ClusterOn> for AlterTableAction {
36915    #[inline]
36916    fn from(node: ClusterOn) -> AlterTableAction {
36917        AlterTableAction::ClusterOn(node)
36918    }
36919}
36920impl From<DetachPartition> for AlterTableAction {
36921    #[inline]
36922    fn from(node: DetachPartition) -> AlterTableAction {
36923        AlterTableAction::DetachPartition(node)
36924    }
36925}
36926impl From<DisableRls> for AlterTableAction {
36927    #[inline]
36928    fn from(node: DisableRls) -> AlterTableAction {
36929        AlterTableAction::DisableRls(node)
36930    }
36931}
36932impl From<DisableRule> for AlterTableAction {
36933    #[inline]
36934    fn from(node: DisableRule) -> AlterTableAction {
36935        AlterTableAction::DisableRule(node)
36936    }
36937}
36938impl From<DisableTrigger> for AlterTableAction {
36939    #[inline]
36940    fn from(node: DisableTrigger) -> AlterTableAction {
36941        AlterTableAction::DisableTrigger(node)
36942    }
36943}
36944impl From<DropColumn> for AlterTableAction {
36945    #[inline]
36946    fn from(node: DropColumn) -> AlterTableAction {
36947        AlterTableAction::DropColumn(node)
36948    }
36949}
36950impl From<DropConstraint> for AlterTableAction {
36951    #[inline]
36952    fn from(node: DropConstraint) -> AlterTableAction {
36953        AlterTableAction::DropConstraint(node)
36954    }
36955}
36956impl From<EnableAlwaysRule> for AlterTableAction {
36957    #[inline]
36958    fn from(node: EnableAlwaysRule) -> AlterTableAction {
36959        AlterTableAction::EnableAlwaysRule(node)
36960    }
36961}
36962impl From<EnableAlwaysTrigger> for AlterTableAction {
36963    #[inline]
36964    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
36965        AlterTableAction::EnableAlwaysTrigger(node)
36966    }
36967}
36968impl From<EnableReplicaRule> for AlterTableAction {
36969    #[inline]
36970    fn from(node: EnableReplicaRule) -> AlterTableAction {
36971        AlterTableAction::EnableReplicaRule(node)
36972    }
36973}
36974impl From<EnableReplicaTrigger> for AlterTableAction {
36975    #[inline]
36976    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
36977        AlterTableAction::EnableReplicaTrigger(node)
36978    }
36979}
36980impl From<EnableRls> for AlterTableAction {
36981    #[inline]
36982    fn from(node: EnableRls) -> AlterTableAction {
36983        AlterTableAction::EnableRls(node)
36984    }
36985}
36986impl From<EnableRule> for AlterTableAction {
36987    #[inline]
36988    fn from(node: EnableRule) -> AlterTableAction {
36989        AlterTableAction::EnableRule(node)
36990    }
36991}
36992impl From<EnableTrigger> for AlterTableAction {
36993    #[inline]
36994    fn from(node: EnableTrigger) -> AlterTableAction {
36995        AlterTableAction::EnableTrigger(node)
36996    }
36997}
36998impl From<ForceRls> for AlterTableAction {
36999    #[inline]
37000    fn from(node: ForceRls) -> AlterTableAction {
37001        AlterTableAction::ForceRls(node)
37002    }
37003}
37004impl From<InheritTable> for AlterTableAction {
37005    #[inline]
37006    fn from(node: InheritTable) -> AlterTableAction {
37007        AlterTableAction::InheritTable(node)
37008    }
37009}
37010impl From<MergePartitions> for AlterTableAction {
37011    #[inline]
37012    fn from(node: MergePartitions) -> AlterTableAction {
37013        AlterTableAction::MergePartitions(node)
37014    }
37015}
37016impl From<NoForceRls> for AlterTableAction {
37017    #[inline]
37018    fn from(node: NoForceRls) -> AlterTableAction {
37019        AlterTableAction::NoForceRls(node)
37020    }
37021}
37022impl From<NoInheritTable> for AlterTableAction {
37023    #[inline]
37024    fn from(node: NoInheritTable) -> AlterTableAction {
37025        AlterTableAction::NoInheritTable(node)
37026    }
37027}
37028impl From<NotOf> for AlterTableAction {
37029    #[inline]
37030    fn from(node: NotOf) -> AlterTableAction {
37031        AlterTableAction::NotOf(node)
37032    }
37033}
37034impl From<OfType> for AlterTableAction {
37035    #[inline]
37036    fn from(node: OfType) -> AlterTableAction {
37037        AlterTableAction::OfType(node)
37038    }
37039}
37040impl From<OptionItemList> for AlterTableAction {
37041    #[inline]
37042    fn from(node: OptionItemList) -> AlterTableAction {
37043        AlterTableAction::OptionItemList(node)
37044    }
37045}
37046impl From<OwnerTo> for AlterTableAction {
37047    #[inline]
37048    fn from(node: OwnerTo) -> AlterTableAction {
37049        AlterTableAction::OwnerTo(node)
37050    }
37051}
37052impl From<RenameColumn> for AlterTableAction {
37053    #[inline]
37054    fn from(node: RenameColumn) -> AlterTableAction {
37055        AlterTableAction::RenameColumn(node)
37056    }
37057}
37058impl From<RenameConstraint> for AlterTableAction {
37059    #[inline]
37060    fn from(node: RenameConstraint) -> AlterTableAction {
37061        AlterTableAction::RenameConstraint(node)
37062    }
37063}
37064impl From<RenameTo> for AlterTableAction {
37065    #[inline]
37066    fn from(node: RenameTo) -> AlterTableAction {
37067        AlterTableAction::RenameTo(node)
37068    }
37069}
37070impl From<ReplicaIdentity> for AlterTableAction {
37071    #[inline]
37072    fn from(node: ReplicaIdentity) -> AlterTableAction {
37073        AlterTableAction::ReplicaIdentity(node)
37074    }
37075}
37076impl From<ResetOptions> for AlterTableAction {
37077    #[inline]
37078    fn from(node: ResetOptions) -> AlterTableAction {
37079        AlterTableAction::ResetOptions(node)
37080    }
37081}
37082impl From<SetAccessMethod> for AlterTableAction {
37083    #[inline]
37084    fn from(node: SetAccessMethod) -> AlterTableAction {
37085        AlterTableAction::SetAccessMethod(node)
37086    }
37087}
37088impl From<SetLogged> for AlterTableAction {
37089    #[inline]
37090    fn from(node: SetLogged) -> AlterTableAction {
37091        AlterTableAction::SetLogged(node)
37092    }
37093}
37094impl From<SetOptions> for AlterTableAction {
37095    #[inline]
37096    fn from(node: SetOptions) -> AlterTableAction {
37097        AlterTableAction::SetOptions(node)
37098    }
37099}
37100impl From<SetSchema> for AlterTableAction {
37101    #[inline]
37102    fn from(node: SetSchema) -> AlterTableAction {
37103        AlterTableAction::SetSchema(node)
37104    }
37105}
37106impl From<SetTablespace> for AlterTableAction {
37107    #[inline]
37108    fn from(node: SetTablespace) -> AlterTableAction {
37109        AlterTableAction::SetTablespace(node)
37110    }
37111}
37112impl From<SetUnlogged> for AlterTableAction {
37113    #[inline]
37114    fn from(node: SetUnlogged) -> AlterTableAction {
37115        AlterTableAction::SetUnlogged(node)
37116    }
37117}
37118impl From<SetWithoutCluster> for AlterTableAction {
37119    #[inline]
37120    fn from(node: SetWithoutCluster) -> AlterTableAction {
37121        AlterTableAction::SetWithoutCluster(node)
37122    }
37123}
37124impl From<SetWithoutOids> for AlterTableAction {
37125    #[inline]
37126    fn from(node: SetWithoutOids) -> AlterTableAction {
37127        AlterTableAction::SetWithoutOids(node)
37128    }
37129}
37130impl From<SplitPartition> for AlterTableAction {
37131    #[inline]
37132    fn from(node: SplitPartition) -> AlterTableAction {
37133        AlterTableAction::SplitPartition(node)
37134    }
37135}
37136impl From<ValidateConstraint> for AlterTableAction {
37137    #[inline]
37138    fn from(node: ValidateConstraint) -> AlterTableAction {
37139        AlterTableAction::ValidateConstraint(node)
37140    }
37141}
37142impl AstNode for AlterTypeAction {
37143    #[inline]
37144    fn can_cast(kind: SyntaxKind) -> bool {
37145        matches!(
37146            kind,
37147            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
37148        )
37149    }
37150    #[inline]
37151    fn cast(syntax: SyntaxNode) -> Option<Self> {
37152        let res = match syntax.kind() {
37153            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
37154            SyntaxKind::ALTER_ATTRIBUTE => {
37155                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
37156            }
37157            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
37158            _ => {
37159                return None;
37160            }
37161        };
37162        Some(res)
37163    }
37164    #[inline]
37165    fn syntax(&self) -> &SyntaxNode {
37166        match self {
37167            AlterTypeAction::AddAttribute(it) => &it.syntax,
37168            AlterTypeAction::AlterAttribute(it) => &it.syntax,
37169            AlterTypeAction::DropAttribute(it) => &it.syntax,
37170        }
37171    }
37172}
37173impl From<AddAttribute> for AlterTypeAction {
37174    #[inline]
37175    fn from(node: AddAttribute) -> AlterTypeAction {
37176        AlterTypeAction::AddAttribute(node)
37177    }
37178}
37179impl From<AlterAttribute> for AlterTypeAction {
37180    #[inline]
37181    fn from(node: AlterAttribute) -> AlterTypeAction {
37182        AlterTypeAction::AlterAttribute(node)
37183    }
37184}
37185impl From<DropAttribute> for AlterTypeAction {
37186    #[inline]
37187    fn from(node: DropAttribute) -> AlterTypeAction {
37188        AlterTypeAction::DropAttribute(node)
37189    }
37190}
37191impl AstNode for BeginFuncOption {
37192    #[inline]
37193    fn can_cast(kind: SyntaxKind) -> bool {
37194        matches!(kind, SyntaxKind::RETURN_FUNC_OPTION)
37195    }
37196    #[inline]
37197    fn cast(syntax: SyntaxNode) -> Option<Self> {
37198        let res = match syntax.kind() {
37199            SyntaxKind::RETURN_FUNC_OPTION => {
37200                BeginFuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
37201            }
37202            _ => {
37203                if let Some(result) = Stmt::cast(syntax) {
37204                    return Some(BeginFuncOption::Stmt(result));
37205                }
37206                return None;
37207            }
37208        };
37209        Some(res)
37210    }
37211    #[inline]
37212    fn syntax(&self) -> &SyntaxNode {
37213        match self {
37214            BeginFuncOption::ReturnFuncOption(it) => &it.syntax,
37215            BeginFuncOption::Stmt(it) => it.syntax(),
37216        }
37217    }
37218}
37219impl From<ReturnFuncOption> for BeginFuncOption {
37220    #[inline]
37221    fn from(node: ReturnFuncOption) -> BeginFuncOption {
37222        BeginFuncOption::ReturnFuncOption(node)
37223    }
37224}
37225impl AstNode for ColumnConstraint {
37226    #[inline]
37227    fn can_cast(kind: SyntaxKind) -> bool {
37228        matches!(
37229            kind,
37230            SyntaxKind::CHECK_CONSTRAINT
37231                | SyntaxKind::DEFAULT_CONSTRAINT
37232                | SyntaxKind::EXCLUDE_CONSTRAINT
37233                | SyntaxKind::GENERATED_CONSTRAINT
37234                | SyntaxKind::NOT_NULL_CONSTRAINT
37235                | SyntaxKind::NULL_CONSTRAINT
37236                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
37237                | SyntaxKind::REFERENCES_CONSTRAINT
37238                | SyntaxKind::UNIQUE_CONSTRAINT
37239        )
37240    }
37241    #[inline]
37242    fn cast(syntax: SyntaxNode) -> Option<Self> {
37243        let res = match syntax.kind() {
37244            SyntaxKind::CHECK_CONSTRAINT => {
37245                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
37246            }
37247            SyntaxKind::DEFAULT_CONSTRAINT => {
37248                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
37249            }
37250            SyntaxKind::EXCLUDE_CONSTRAINT => {
37251                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
37252            }
37253            SyntaxKind::GENERATED_CONSTRAINT => {
37254                ColumnConstraint::GeneratedConstraint(GeneratedConstraint { syntax })
37255            }
37256            SyntaxKind::NOT_NULL_CONSTRAINT => {
37257                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
37258            }
37259            SyntaxKind::NULL_CONSTRAINT => {
37260                ColumnConstraint::NullConstraint(NullConstraint { syntax })
37261            }
37262            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
37263                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
37264            }
37265            SyntaxKind::REFERENCES_CONSTRAINT => {
37266                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
37267            }
37268            SyntaxKind::UNIQUE_CONSTRAINT => {
37269                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
37270            }
37271            _ => {
37272                return None;
37273            }
37274        };
37275        Some(res)
37276    }
37277    #[inline]
37278    fn syntax(&self) -> &SyntaxNode {
37279        match self {
37280            ColumnConstraint::CheckConstraint(it) => &it.syntax,
37281            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
37282            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
37283            ColumnConstraint::GeneratedConstraint(it) => &it.syntax,
37284            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
37285            ColumnConstraint::NullConstraint(it) => &it.syntax,
37286            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
37287            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
37288            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
37289        }
37290    }
37291}
37292impl From<CheckConstraint> for ColumnConstraint {
37293    #[inline]
37294    fn from(node: CheckConstraint) -> ColumnConstraint {
37295        ColumnConstraint::CheckConstraint(node)
37296    }
37297}
37298impl From<DefaultConstraint> for ColumnConstraint {
37299    #[inline]
37300    fn from(node: DefaultConstraint) -> ColumnConstraint {
37301        ColumnConstraint::DefaultConstraint(node)
37302    }
37303}
37304impl From<ExcludeConstraint> for ColumnConstraint {
37305    #[inline]
37306    fn from(node: ExcludeConstraint) -> ColumnConstraint {
37307        ColumnConstraint::ExcludeConstraint(node)
37308    }
37309}
37310impl From<GeneratedConstraint> for ColumnConstraint {
37311    #[inline]
37312    fn from(node: GeneratedConstraint) -> ColumnConstraint {
37313        ColumnConstraint::GeneratedConstraint(node)
37314    }
37315}
37316impl From<NotNullConstraint> for ColumnConstraint {
37317    #[inline]
37318    fn from(node: NotNullConstraint) -> ColumnConstraint {
37319        ColumnConstraint::NotNullConstraint(node)
37320    }
37321}
37322impl From<NullConstraint> for ColumnConstraint {
37323    #[inline]
37324    fn from(node: NullConstraint) -> ColumnConstraint {
37325        ColumnConstraint::NullConstraint(node)
37326    }
37327}
37328impl From<PrimaryKeyConstraint> for ColumnConstraint {
37329    #[inline]
37330    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
37331        ColumnConstraint::PrimaryKeyConstraint(node)
37332    }
37333}
37334impl From<ReferencesConstraint> for ColumnConstraint {
37335    #[inline]
37336    fn from(node: ReferencesConstraint) -> ColumnConstraint {
37337        ColumnConstraint::ReferencesConstraint(node)
37338    }
37339}
37340impl From<UniqueConstraint> for ColumnConstraint {
37341    #[inline]
37342    fn from(node: UniqueConstraint) -> ColumnConstraint {
37343        ColumnConstraint::UniqueConstraint(node)
37344    }
37345}
37346impl AstNode for ConfigValue {
37347    #[inline]
37348    fn can_cast(kind: SyntaxKind) -> bool {
37349        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
37350    }
37351    #[inline]
37352    fn cast(syntax: SyntaxNode) -> Option<Self> {
37353        let res = match syntax.kind() {
37354            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
37355            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
37356            _ => {
37357                return None;
37358            }
37359        };
37360        Some(res)
37361    }
37362    #[inline]
37363    fn syntax(&self) -> &SyntaxNode {
37364        match self {
37365            ConfigValue::Literal(it) => &it.syntax,
37366            ConfigValue::NameRef(it) => &it.syntax,
37367        }
37368    }
37369}
37370impl From<Literal> for ConfigValue {
37371    #[inline]
37372    fn from(node: Literal) -> ConfigValue {
37373        ConfigValue::Literal(node)
37374    }
37375}
37376impl From<NameRef> for ConfigValue {
37377    #[inline]
37378    fn from(node: NameRef) -> ConfigValue {
37379        ConfigValue::NameRef(node)
37380    }
37381}
37382impl AstNode for ConflictAction {
37383    #[inline]
37384    fn can_cast(kind: SyntaxKind) -> bool {
37385        matches!(
37386            kind,
37387            SyntaxKind::CONFLICT_DO_NOTHING
37388                | SyntaxKind::CONFLICT_DO_SELECT
37389                | SyntaxKind::CONFLICT_DO_UPDATE_SET
37390        )
37391    }
37392    #[inline]
37393    fn cast(syntax: SyntaxNode) -> Option<Self> {
37394        let res = match syntax.kind() {
37395            SyntaxKind::CONFLICT_DO_NOTHING => {
37396                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
37397            }
37398            SyntaxKind::CONFLICT_DO_SELECT => {
37399                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
37400            }
37401            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
37402                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
37403            }
37404            _ => {
37405                return None;
37406            }
37407        };
37408        Some(res)
37409    }
37410    #[inline]
37411    fn syntax(&self) -> &SyntaxNode {
37412        match self {
37413            ConflictAction::ConflictDoNothing(it) => &it.syntax,
37414            ConflictAction::ConflictDoSelect(it) => &it.syntax,
37415            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
37416        }
37417    }
37418}
37419impl From<ConflictDoNothing> for ConflictAction {
37420    #[inline]
37421    fn from(node: ConflictDoNothing) -> ConflictAction {
37422        ConflictAction::ConflictDoNothing(node)
37423    }
37424}
37425impl From<ConflictDoSelect> for ConflictAction {
37426    #[inline]
37427    fn from(node: ConflictDoSelect) -> ConflictAction {
37428        ConflictAction::ConflictDoSelect(node)
37429    }
37430}
37431impl From<ConflictDoUpdateSet> for ConflictAction {
37432    #[inline]
37433    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
37434        ConflictAction::ConflictDoUpdateSet(node)
37435    }
37436}
37437impl AstNode for ConflictTarget {
37438    #[inline]
37439    fn can_cast(kind: SyntaxKind) -> bool {
37440        matches!(
37441            kind,
37442            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
37443        )
37444    }
37445    #[inline]
37446    fn cast(syntax: SyntaxNode) -> Option<Self> {
37447        let res = match syntax.kind() {
37448            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
37449                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
37450            }
37451            SyntaxKind::CONFLICT_ON_INDEX => {
37452                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
37453            }
37454            _ => {
37455                return None;
37456            }
37457        };
37458        Some(res)
37459    }
37460    #[inline]
37461    fn syntax(&self) -> &SyntaxNode {
37462        match self {
37463            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
37464            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
37465        }
37466    }
37467}
37468impl From<ConflictOnConstraint> for ConflictTarget {
37469    #[inline]
37470    fn from(node: ConflictOnConstraint) -> ConflictTarget {
37471        ConflictTarget::ConflictOnConstraint(node)
37472    }
37473}
37474impl From<ConflictOnIndex> for ConflictTarget {
37475    #[inline]
37476    fn from(node: ConflictOnIndex) -> ConflictTarget {
37477        ConflictTarget::ConflictOnIndex(node)
37478    }
37479}
37480impl AstNode for Constraint {
37481    #[inline]
37482    fn can_cast(kind: SyntaxKind) -> bool {
37483        matches!(
37484            kind,
37485            SyntaxKind::CHECK_CONSTRAINT
37486                | SyntaxKind::DEFAULT_CONSTRAINT
37487                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
37488                | SyntaxKind::GENERATED_CONSTRAINT
37489                | SyntaxKind::NOT_NULL_CONSTRAINT
37490                | SyntaxKind::NULL_CONSTRAINT
37491                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
37492                | SyntaxKind::REFERENCES_CONSTRAINT
37493                | SyntaxKind::UNIQUE_CONSTRAINT
37494        )
37495    }
37496    #[inline]
37497    fn cast(syntax: SyntaxNode) -> Option<Self> {
37498        let res = match syntax.kind() {
37499            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
37500            SyntaxKind::DEFAULT_CONSTRAINT => {
37501                Constraint::DefaultConstraint(DefaultConstraint { syntax })
37502            }
37503            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
37504                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
37505            }
37506            SyntaxKind::GENERATED_CONSTRAINT => {
37507                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
37508            }
37509            SyntaxKind::NOT_NULL_CONSTRAINT => {
37510                Constraint::NotNullConstraint(NotNullConstraint { syntax })
37511            }
37512            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
37513            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
37514                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
37515            }
37516            SyntaxKind::REFERENCES_CONSTRAINT => {
37517                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
37518            }
37519            SyntaxKind::UNIQUE_CONSTRAINT => {
37520                Constraint::UniqueConstraint(UniqueConstraint { syntax })
37521            }
37522            _ => {
37523                return None;
37524            }
37525        };
37526        Some(res)
37527    }
37528    #[inline]
37529    fn syntax(&self) -> &SyntaxNode {
37530        match self {
37531            Constraint::CheckConstraint(it) => &it.syntax,
37532            Constraint::DefaultConstraint(it) => &it.syntax,
37533            Constraint::ForeignKeyConstraint(it) => &it.syntax,
37534            Constraint::GeneratedConstraint(it) => &it.syntax,
37535            Constraint::NotNullConstraint(it) => &it.syntax,
37536            Constraint::NullConstraint(it) => &it.syntax,
37537            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
37538            Constraint::ReferencesConstraint(it) => &it.syntax,
37539            Constraint::UniqueConstraint(it) => &it.syntax,
37540        }
37541    }
37542}
37543impl From<CheckConstraint> for Constraint {
37544    #[inline]
37545    fn from(node: CheckConstraint) -> Constraint {
37546        Constraint::CheckConstraint(node)
37547    }
37548}
37549impl From<DefaultConstraint> for Constraint {
37550    #[inline]
37551    fn from(node: DefaultConstraint) -> Constraint {
37552        Constraint::DefaultConstraint(node)
37553    }
37554}
37555impl From<ForeignKeyConstraint> for Constraint {
37556    #[inline]
37557    fn from(node: ForeignKeyConstraint) -> Constraint {
37558        Constraint::ForeignKeyConstraint(node)
37559    }
37560}
37561impl From<GeneratedConstraint> for Constraint {
37562    #[inline]
37563    fn from(node: GeneratedConstraint) -> Constraint {
37564        Constraint::GeneratedConstraint(node)
37565    }
37566}
37567impl From<NotNullConstraint> for Constraint {
37568    #[inline]
37569    fn from(node: NotNullConstraint) -> Constraint {
37570        Constraint::NotNullConstraint(node)
37571    }
37572}
37573impl From<NullConstraint> for Constraint {
37574    #[inline]
37575    fn from(node: NullConstraint) -> Constraint {
37576        Constraint::NullConstraint(node)
37577    }
37578}
37579impl From<PrimaryKeyConstraint> for Constraint {
37580    #[inline]
37581    fn from(node: PrimaryKeyConstraint) -> Constraint {
37582        Constraint::PrimaryKeyConstraint(node)
37583    }
37584}
37585impl From<ReferencesConstraint> for Constraint {
37586    #[inline]
37587    fn from(node: ReferencesConstraint) -> Constraint {
37588        Constraint::ReferencesConstraint(node)
37589    }
37590}
37591impl From<UniqueConstraint> for Constraint {
37592    #[inline]
37593    fn from(node: UniqueConstraint) -> Constraint {
37594        Constraint::UniqueConstraint(node)
37595    }
37596}
37597impl AstNode for CreateTableAsQuery {
37598    #[inline]
37599    fn can_cast(kind: SyntaxKind) -> bool {
37600        matches!(kind, SyntaxKind::EXECUTE)
37601    }
37602    #[inline]
37603    fn cast(syntax: SyntaxNode) -> Option<Self> {
37604        let res = match syntax.kind() {
37605            SyntaxKind::EXECUTE => CreateTableAsQuery::Execute(Execute { syntax }),
37606            _ => {
37607                if let Some(result) = SelectVariant::cast(syntax) {
37608                    return Some(CreateTableAsQuery::SelectVariant(result));
37609                }
37610                return None;
37611            }
37612        };
37613        Some(res)
37614    }
37615    #[inline]
37616    fn syntax(&self) -> &SyntaxNode {
37617        match self {
37618            CreateTableAsQuery::Execute(it) => &it.syntax,
37619            CreateTableAsQuery::SelectVariant(it) => it.syntax(),
37620        }
37621    }
37622}
37623impl From<Execute> for CreateTableAsQuery {
37624    #[inline]
37625    fn from(node: Execute) -> CreateTableAsQuery {
37626        CreateTableAsQuery::Execute(node)
37627    }
37628}
37629impl AstNode for ElementTableLabelAndProperties {
37630    #[inline]
37631    fn can_cast(kind: SyntaxKind) -> bool {
37632        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
37633    }
37634    #[inline]
37635    fn cast(syntax: SyntaxNode) -> Option<Self> {
37636        let res = match syntax.kind() {
37637            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
37638                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
37639                    syntax,
37640                })
37641            }
37642            _ => {
37643                if let Some(result) = ElementTableProperties::cast(syntax) {
37644                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
37645                        result,
37646                    ));
37647                }
37648                return None;
37649            }
37650        };
37651        Some(res)
37652    }
37653    #[inline]
37654    fn syntax(&self) -> &SyntaxNode {
37655        match self {
37656            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
37657            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
37658        }
37659    }
37660}
37661impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
37662    #[inline]
37663    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
37664        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
37665    }
37666}
37667impl AstNode for ElementTableProperties {
37668    #[inline]
37669    fn can_cast(kind: SyntaxKind) -> bool {
37670        matches!(
37671            kind,
37672            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES
37673        )
37674    }
37675    #[inline]
37676    fn cast(syntax: SyntaxNode) -> Option<Self> {
37677        let res = match syntax.kind() {
37678            SyntaxKind::ALL_PROPERTIES => {
37679                ElementTableProperties::AllProperties(AllProperties { syntax })
37680            }
37681            SyntaxKind::NO_PROPERTIES => {
37682                ElementTableProperties::NoProperties(NoProperties { syntax })
37683            }
37684            SyntaxKind::PROPERTIES => ElementTableProperties::Properties(Properties { syntax }),
37685            _ => {
37686                return None;
37687            }
37688        };
37689        Some(res)
37690    }
37691    #[inline]
37692    fn syntax(&self) -> &SyntaxNode {
37693        match self {
37694            ElementTableProperties::AllProperties(it) => &it.syntax,
37695            ElementTableProperties::NoProperties(it) => &it.syntax,
37696            ElementTableProperties::Properties(it) => &it.syntax,
37697        }
37698    }
37699}
37700impl From<AllProperties> for ElementTableProperties {
37701    #[inline]
37702    fn from(node: AllProperties) -> ElementTableProperties {
37703        ElementTableProperties::AllProperties(node)
37704    }
37705}
37706impl From<NoProperties> for ElementTableProperties {
37707    #[inline]
37708    fn from(node: NoProperties) -> ElementTableProperties {
37709        ElementTableProperties::NoProperties(node)
37710    }
37711}
37712impl From<Properties> for ElementTableProperties {
37713    #[inline]
37714    fn from(node: Properties) -> ElementTableProperties {
37715        ElementTableProperties::Properties(node)
37716    }
37717}
37718impl AstNode for ExplainStmt {
37719    #[inline]
37720    fn can_cast(kind: SyntaxKind) -> bool {
37721        matches!(
37722            kind,
37723            SyntaxKind::COMPOUND_SELECT
37724                | SyntaxKind::CREATE_MATERIALIZED_VIEW
37725                | SyntaxKind::CREATE_TABLE_AS
37726                | SyntaxKind::DECLARE
37727                | SyntaxKind::DELETE
37728                | SyntaxKind::EXECUTE
37729                | SyntaxKind::INSERT
37730                | SyntaxKind::MERGE
37731                | SyntaxKind::PAREN_SELECT
37732                | SyntaxKind::SELECT
37733                | SyntaxKind::SELECT_INTO
37734                | SyntaxKind::TABLE
37735                | SyntaxKind::UPDATE
37736                | SyntaxKind::VALUES
37737        )
37738    }
37739    #[inline]
37740    fn cast(syntax: SyntaxNode) -> Option<Self> {
37741        let res = match syntax.kind() {
37742            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
37743            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
37744                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
37745            }
37746            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
37747            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
37748            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
37749            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
37750            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
37751            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
37752            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
37753            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
37754            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
37755            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
37756            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
37757            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
37758            _ => {
37759                return None;
37760            }
37761        };
37762        Some(res)
37763    }
37764    #[inline]
37765    fn syntax(&self) -> &SyntaxNode {
37766        match self {
37767            ExplainStmt::CompoundSelect(it) => &it.syntax,
37768            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
37769            ExplainStmt::CreateTableAs(it) => &it.syntax,
37770            ExplainStmt::Declare(it) => &it.syntax,
37771            ExplainStmt::Delete(it) => &it.syntax,
37772            ExplainStmt::Execute(it) => &it.syntax,
37773            ExplainStmt::Insert(it) => &it.syntax,
37774            ExplainStmt::Merge(it) => &it.syntax,
37775            ExplainStmt::ParenSelect(it) => &it.syntax,
37776            ExplainStmt::Select(it) => &it.syntax,
37777            ExplainStmt::SelectInto(it) => &it.syntax,
37778            ExplainStmt::Table(it) => &it.syntax,
37779            ExplainStmt::Update(it) => &it.syntax,
37780            ExplainStmt::Values(it) => &it.syntax,
37781        }
37782    }
37783}
37784impl From<CompoundSelect> for ExplainStmt {
37785    #[inline]
37786    fn from(node: CompoundSelect) -> ExplainStmt {
37787        ExplainStmt::CompoundSelect(node)
37788    }
37789}
37790impl From<CreateMaterializedView> for ExplainStmt {
37791    #[inline]
37792    fn from(node: CreateMaterializedView) -> ExplainStmt {
37793        ExplainStmt::CreateMaterializedView(node)
37794    }
37795}
37796impl From<CreateTableAs> for ExplainStmt {
37797    #[inline]
37798    fn from(node: CreateTableAs) -> ExplainStmt {
37799        ExplainStmt::CreateTableAs(node)
37800    }
37801}
37802impl From<Declare> for ExplainStmt {
37803    #[inline]
37804    fn from(node: Declare) -> ExplainStmt {
37805        ExplainStmt::Declare(node)
37806    }
37807}
37808impl From<Delete> for ExplainStmt {
37809    #[inline]
37810    fn from(node: Delete) -> ExplainStmt {
37811        ExplainStmt::Delete(node)
37812    }
37813}
37814impl From<Execute> for ExplainStmt {
37815    #[inline]
37816    fn from(node: Execute) -> ExplainStmt {
37817        ExplainStmt::Execute(node)
37818    }
37819}
37820impl From<Insert> for ExplainStmt {
37821    #[inline]
37822    fn from(node: Insert) -> ExplainStmt {
37823        ExplainStmt::Insert(node)
37824    }
37825}
37826impl From<Merge> for ExplainStmt {
37827    #[inline]
37828    fn from(node: Merge) -> ExplainStmt {
37829        ExplainStmt::Merge(node)
37830    }
37831}
37832impl From<ParenSelect> for ExplainStmt {
37833    #[inline]
37834    fn from(node: ParenSelect) -> ExplainStmt {
37835        ExplainStmt::ParenSelect(node)
37836    }
37837}
37838impl From<Select> for ExplainStmt {
37839    #[inline]
37840    fn from(node: Select) -> ExplainStmt {
37841        ExplainStmt::Select(node)
37842    }
37843}
37844impl From<SelectInto> for ExplainStmt {
37845    #[inline]
37846    fn from(node: SelectInto) -> ExplainStmt {
37847        ExplainStmt::SelectInto(node)
37848    }
37849}
37850impl From<Table> for ExplainStmt {
37851    #[inline]
37852    fn from(node: Table) -> ExplainStmt {
37853        ExplainStmt::Table(node)
37854    }
37855}
37856impl From<Update> for ExplainStmt {
37857    #[inline]
37858    fn from(node: Update) -> ExplainStmt {
37859        ExplainStmt::Update(node)
37860    }
37861}
37862impl From<Values> for ExplainStmt {
37863    #[inline]
37864    fn from(node: Values) -> ExplainStmt {
37865        ExplainStmt::Values(node)
37866    }
37867}
37868impl AstNode for Expr {
37869    #[inline]
37870    fn can_cast(kind: SyntaxKind) -> bool {
37871        matches!(
37872            kind,
37873            SyntaxKind::ARRAY_EXPR
37874                | SyntaxKind::BETWEEN_EXPR
37875                | SyntaxKind::BIN_EXPR
37876                | SyntaxKind::CALL_EXPR
37877                | SyntaxKind::CASE_EXPR
37878                | SyntaxKind::CAST_EXPR
37879                | SyntaxKind::FIELD_EXPR
37880                | SyntaxKind::INDEX_EXPR
37881                | SyntaxKind::LITERAL
37882                | SyntaxKind::NAME_REF
37883                | SyntaxKind::PAREN_EXPR
37884                | SyntaxKind::POSTFIX_EXPR
37885                | SyntaxKind::PREFIX_EXPR
37886                | SyntaxKind::SLICE_EXPR
37887                | SyntaxKind::TUPLE_EXPR
37888        )
37889    }
37890    #[inline]
37891    fn cast(syntax: SyntaxNode) -> Option<Self> {
37892        let res = match syntax.kind() {
37893            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
37894            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
37895            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
37896            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
37897            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
37898            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
37899            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
37900            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
37901            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
37902            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
37903            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
37904            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
37905            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
37906            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
37907            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
37908            _ => {
37909                return None;
37910            }
37911        };
37912        Some(res)
37913    }
37914    #[inline]
37915    fn syntax(&self) -> &SyntaxNode {
37916        match self {
37917            Expr::ArrayExpr(it) => &it.syntax,
37918            Expr::BetweenExpr(it) => &it.syntax,
37919            Expr::BinExpr(it) => &it.syntax,
37920            Expr::CallExpr(it) => &it.syntax,
37921            Expr::CaseExpr(it) => &it.syntax,
37922            Expr::CastExpr(it) => &it.syntax,
37923            Expr::FieldExpr(it) => &it.syntax,
37924            Expr::IndexExpr(it) => &it.syntax,
37925            Expr::Literal(it) => &it.syntax,
37926            Expr::NameRef(it) => &it.syntax,
37927            Expr::ParenExpr(it) => &it.syntax,
37928            Expr::PostfixExpr(it) => &it.syntax,
37929            Expr::PrefixExpr(it) => &it.syntax,
37930            Expr::SliceExpr(it) => &it.syntax,
37931            Expr::TupleExpr(it) => &it.syntax,
37932        }
37933    }
37934}
37935impl From<ArrayExpr> for Expr {
37936    #[inline]
37937    fn from(node: ArrayExpr) -> Expr {
37938        Expr::ArrayExpr(node)
37939    }
37940}
37941impl From<BetweenExpr> for Expr {
37942    #[inline]
37943    fn from(node: BetweenExpr) -> Expr {
37944        Expr::BetweenExpr(node)
37945    }
37946}
37947impl From<BinExpr> for Expr {
37948    #[inline]
37949    fn from(node: BinExpr) -> Expr {
37950        Expr::BinExpr(node)
37951    }
37952}
37953impl From<CallExpr> for Expr {
37954    #[inline]
37955    fn from(node: CallExpr) -> Expr {
37956        Expr::CallExpr(node)
37957    }
37958}
37959impl From<CaseExpr> for Expr {
37960    #[inline]
37961    fn from(node: CaseExpr) -> Expr {
37962        Expr::CaseExpr(node)
37963    }
37964}
37965impl From<CastExpr> for Expr {
37966    #[inline]
37967    fn from(node: CastExpr) -> Expr {
37968        Expr::CastExpr(node)
37969    }
37970}
37971impl From<FieldExpr> for Expr {
37972    #[inline]
37973    fn from(node: FieldExpr) -> Expr {
37974        Expr::FieldExpr(node)
37975    }
37976}
37977impl From<IndexExpr> for Expr {
37978    #[inline]
37979    fn from(node: IndexExpr) -> Expr {
37980        Expr::IndexExpr(node)
37981    }
37982}
37983impl From<Literal> for Expr {
37984    #[inline]
37985    fn from(node: Literal) -> Expr {
37986        Expr::Literal(node)
37987    }
37988}
37989impl From<NameRef> for Expr {
37990    #[inline]
37991    fn from(node: NameRef) -> Expr {
37992        Expr::NameRef(node)
37993    }
37994}
37995impl From<ParenExpr> for Expr {
37996    #[inline]
37997    fn from(node: ParenExpr) -> Expr {
37998        Expr::ParenExpr(node)
37999    }
38000}
38001impl From<PostfixExpr> for Expr {
38002    #[inline]
38003    fn from(node: PostfixExpr) -> Expr {
38004        Expr::PostfixExpr(node)
38005    }
38006}
38007impl From<PrefixExpr> for Expr {
38008    #[inline]
38009    fn from(node: PrefixExpr) -> Expr {
38010        Expr::PrefixExpr(node)
38011    }
38012}
38013impl From<SliceExpr> for Expr {
38014    #[inline]
38015    fn from(node: SliceExpr) -> Expr {
38016        Expr::SliceExpr(node)
38017    }
38018}
38019impl From<TupleExpr> for Expr {
38020    #[inline]
38021    fn from(node: TupleExpr) -> Expr {
38022        Expr::TupleExpr(node)
38023    }
38024}
38025impl AstNode for FrameBound {
38026    #[inline]
38027    fn can_cast(kind: SyntaxKind) -> bool {
38028        matches!(
38029            kind,
38030            SyntaxKind::CURRENT_ROW
38031                | SyntaxKind::EXPR_FOLLOWING
38032                | SyntaxKind::EXPR_PRECEDING
38033                | SyntaxKind::UNBOUNDED_FOLLOWING
38034                | SyntaxKind::UNBOUNDED_PRECEDING
38035        )
38036    }
38037    #[inline]
38038    fn cast(syntax: SyntaxNode) -> Option<Self> {
38039        let res = match syntax.kind() {
38040            SyntaxKind::CURRENT_ROW => FrameBound::CurrentRow(CurrentRow { syntax }),
38041            SyntaxKind::EXPR_FOLLOWING => FrameBound::ExprFollowing(ExprFollowing { syntax }),
38042            SyntaxKind::EXPR_PRECEDING => FrameBound::ExprPreceding(ExprPreceding { syntax }),
38043            SyntaxKind::UNBOUNDED_FOLLOWING => {
38044                FrameBound::UnboundedFollowing(UnboundedFollowing { syntax })
38045            }
38046            SyntaxKind::UNBOUNDED_PRECEDING => {
38047                FrameBound::UnboundedPreceding(UnboundedPreceding { syntax })
38048            }
38049            _ => {
38050                return None;
38051            }
38052        };
38053        Some(res)
38054    }
38055    #[inline]
38056    fn syntax(&self) -> &SyntaxNode {
38057        match self {
38058            FrameBound::CurrentRow(it) => &it.syntax,
38059            FrameBound::ExprFollowing(it) => &it.syntax,
38060            FrameBound::ExprPreceding(it) => &it.syntax,
38061            FrameBound::UnboundedFollowing(it) => &it.syntax,
38062            FrameBound::UnboundedPreceding(it) => &it.syntax,
38063        }
38064    }
38065}
38066impl From<CurrentRow> for FrameBound {
38067    #[inline]
38068    fn from(node: CurrentRow) -> FrameBound {
38069        FrameBound::CurrentRow(node)
38070    }
38071}
38072impl From<ExprFollowing> for FrameBound {
38073    #[inline]
38074    fn from(node: ExprFollowing) -> FrameBound {
38075        FrameBound::ExprFollowing(node)
38076    }
38077}
38078impl From<ExprPreceding> for FrameBound {
38079    #[inline]
38080    fn from(node: ExprPreceding) -> FrameBound {
38081        FrameBound::ExprPreceding(node)
38082    }
38083}
38084impl From<UnboundedFollowing> for FrameBound {
38085    #[inline]
38086    fn from(node: UnboundedFollowing) -> FrameBound {
38087        FrameBound::UnboundedFollowing(node)
38088    }
38089}
38090impl From<UnboundedPreceding> for FrameBound {
38091    #[inline]
38092    fn from(node: UnboundedPreceding) -> FrameBound {
38093        FrameBound::UnboundedPreceding(node)
38094    }
38095}
38096impl AstNode for FuncOption {
38097    #[inline]
38098    fn can_cast(kind: SyntaxKind) -> bool {
38099        matches!(
38100            kind,
38101            SyntaxKind::AS_FUNC_OPTION
38102                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
38103                | SyntaxKind::COST_FUNC_OPTION
38104                | SyntaxKind::LANGUAGE_FUNC_OPTION
38105                | SyntaxKind::LEAKPROOF_FUNC_OPTION
38106                | SyntaxKind::PARALLEL_FUNC_OPTION
38107                | SyntaxKind::RESET_FUNC_OPTION
38108                | SyntaxKind::RETURN_FUNC_OPTION
38109                | SyntaxKind::ROWS_FUNC_OPTION
38110                | SyntaxKind::SECURITY_FUNC_OPTION
38111                | SyntaxKind::SET_FUNC_OPTION
38112                | SyntaxKind::STRICT_FUNC_OPTION
38113                | SyntaxKind::SUPPORT_FUNC_OPTION
38114                | SyntaxKind::TRANSFORM_FUNC_OPTION
38115                | SyntaxKind::VOLATILITY_FUNC_OPTION
38116                | SyntaxKind::WINDOW_FUNC_OPTION
38117        )
38118    }
38119    #[inline]
38120    fn cast(syntax: SyntaxNode) -> Option<Self> {
38121        let res = match syntax.kind() {
38122            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
38123            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
38124                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
38125            }
38126            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
38127            SyntaxKind::LANGUAGE_FUNC_OPTION => {
38128                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
38129            }
38130            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
38131                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
38132            }
38133            SyntaxKind::PARALLEL_FUNC_OPTION => {
38134                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
38135            }
38136            SyntaxKind::RESET_FUNC_OPTION => {
38137                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
38138            }
38139            SyntaxKind::RETURN_FUNC_OPTION => {
38140                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
38141            }
38142            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
38143            SyntaxKind::SECURITY_FUNC_OPTION => {
38144                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
38145            }
38146            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
38147            SyntaxKind::STRICT_FUNC_OPTION => {
38148                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
38149            }
38150            SyntaxKind::SUPPORT_FUNC_OPTION => {
38151                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
38152            }
38153            SyntaxKind::TRANSFORM_FUNC_OPTION => {
38154                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
38155            }
38156            SyntaxKind::VOLATILITY_FUNC_OPTION => {
38157                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
38158            }
38159            SyntaxKind::WINDOW_FUNC_OPTION => {
38160                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
38161            }
38162            _ => {
38163                return None;
38164            }
38165        };
38166        Some(res)
38167    }
38168    #[inline]
38169    fn syntax(&self) -> &SyntaxNode {
38170        match self {
38171            FuncOption::AsFuncOption(it) => &it.syntax,
38172            FuncOption::BeginFuncOptionList(it) => &it.syntax,
38173            FuncOption::CostFuncOption(it) => &it.syntax,
38174            FuncOption::LanguageFuncOption(it) => &it.syntax,
38175            FuncOption::LeakproofFuncOption(it) => &it.syntax,
38176            FuncOption::ParallelFuncOption(it) => &it.syntax,
38177            FuncOption::ResetFuncOption(it) => &it.syntax,
38178            FuncOption::ReturnFuncOption(it) => &it.syntax,
38179            FuncOption::RowsFuncOption(it) => &it.syntax,
38180            FuncOption::SecurityFuncOption(it) => &it.syntax,
38181            FuncOption::SetFuncOption(it) => &it.syntax,
38182            FuncOption::StrictFuncOption(it) => &it.syntax,
38183            FuncOption::SupportFuncOption(it) => &it.syntax,
38184            FuncOption::TransformFuncOption(it) => &it.syntax,
38185            FuncOption::VolatilityFuncOption(it) => &it.syntax,
38186            FuncOption::WindowFuncOption(it) => &it.syntax,
38187        }
38188    }
38189}
38190impl From<AsFuncOption> for FuncOption {
38191    #[inline]
38192    fn from(node: AsFuncOption) -> FuncOption {
38193        FuncOption::AsFuncOption(node)
38194    }
38195}
38196impl From<BeginFuncOptionList> for FuncOption {
38197    #[inline]
38198    fn from(node: BeginFuncOptionList) -> FuncOption {
38199        FuncOption::BeginFuncOptionList(node)
38200    }
38201}
38202impl From<CostFuncOption> for FuncOption {
38203    #[inline]
38204    fn from(node: CostFuncOption) -> FuncOption {
38205        FuncOption::CostFuncOption(node)
38206    }
38207}
38208impl From<LanguageFuncOption> for FuncOption {
38209    #[inline]
38210    fn from(node: LanguageFuncOption) -> FuncOption {
38211        FuncOption::LanguageFuncOption(node)
38212    }
38213}
38214impl From<LeakproofFuncOption> for FuncOption {
38215    #[inline]
38216    fn from(node: LeakproofFuncOption) -> FuncOption {
38217        FuncOption::LeakproofFuncOption(node)
38218    }
38219}
38220impl From<ParallelFuncOption> for FuncOption {
38221    #[inline]
38222    fn from(node: ParallelFuncOption) -> FuncOption {
38223        FuncOption::ParallelFuncOption(node)
38224    }
38225}
38226impl From<ResetFuncOption> for FuncOption {
38227    #[inline]
38228    fn from(node: ResetFuncOption) -> FuncOption {
38229        FuncOption::ResetFuncOption(node)
38230    }
38231}
38232impl From<ReturnFuncOption> for FuncOption {
38233    #[inline]
38234    fn from(node: ReturnFuncOption) -> FuncOption {
38235        FuncOption::ReturnFuncOption(node)
38236    }
38237}
38238impl From<RowsFuncOption> for FuncOption {
38239    #[inline]
38240    fn from(node: RowsFuncOption) -> FuncOption {
38241        FuncOption::RowsFuncOption(node)
38242    }
38243}
38244impl From<SecurityFuncOption> for FuncOption {
38245    #[inline]
38246    fn from(node: SecurityFuncOption) -> FuncOption {
38247        FuncOption::SecurityFuncOption(node)
38248    }
38249}
38250impl From<SetFuncOption> for FuncOption {
38251    #[inline]
38252    fn from(node: SetFuncOption) -> FuncOption {
38253        FuncOption::SetFuncOption(node)
38254    }
38255}
38256impl From<StrictFuncOption> for FuncOption {
38257    #[inline]
38258    fn from(node: StrictFuncOption) -> FuncOption {
38259        FuncOption::StrictFuncOption(node)
38260    }
38261}
38262impl From<SupportFuncOption> for FuncOption {
38263    #[inline]
38264    fn from(node: SupportFuncOption) -> FuncOption {
38265        FuncOption::SupportFuncOption(node)
38266    }
38267}
38268impl From<TransformFuncOption> for FuncOption {
38269    #[inline]
38270    fn from(node: TransformFuncOption) -> FuncOption {
38271        FuncOption::TransformFuncOption(node)
38272    }
38273}
38274impl From<VolatilityFuncOption> for FuncOption {
38275    #[inline]
38276    fn from(node: VolatilityFuncOption) -> FuncOption {
38277        FuncOption::VolatilityFuncOption(node)
38278    }
38279}
38280impl From<WindowFuncOption> for FuncOption {
38281    #[inline]
38282    fn from(node: WindowFuncOption) -> FuncOption {
38283        FuncOption::WindowFuncOption(node)
38284    }
38285}
38286impl AstNode for GroupBy {
38287    #[inline]
38288    fn can_cast(kind: SyntaxKind) -> bool {
38289        matches!(
38290            kind,
38291            SyntaxKind::GROUPING_CUBE
38292                | SyntaxKind::GROUPING_EXPR
38293                | SyntaxKind::GROUPING_ROLLUP
38294                | SyntaxKind::GROUPING_SETS
38295        )
38296    }
38297    #[inline]
38298    fn cast(syntax: SyntaxNode) -> Option<Self> {
38299        let res = match syntax.kind() {
38300            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
38301            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
38302            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
38303            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
38304            _ => {
38305                return None;
38306            }
38307        };
38308        Some(res)
38309    }
38310    #[inline]
38311    fn syntax(&self) -> &SyntaxNode {
38312        match self {
38313            GroupBy::GroupingCube(it) => &it.syntax,
38314            GroupBy::GroupingExpr(it) => &it.syntax,
38315            GroupBy::GroupingRollup(it) => &it.syntax,
38316            GroupBy::GroupingSets(it) => &it.syntax,
38317        }
38318    }
38319}
38320impl From<GroupingCube> for GroupBy {
38321    #[inline]
38322    fn from(node: GroupingCube) -> GroupBy {
38323        GroupBy::GroupingCube(node)
38324    }
38325}
38326impl From<GroupingExpr> for GroupBy {
38327    #[inline]
38328    fn from(node: GroupingExpr) -> GroupBy {
38329        GroupBy::GroupingExpr(node)
38330    }
38331}
38332impl From<GroupingRollup> for GroupBy {
38333    #[inline]
38334    fn from(node: GroupingRollup) -> GroupBy {
38335        GroupBy::GroupingRollup(node)
38336    }
38337}
38338impl From<GroupingSets> for GroupBy {
38339    #[inline]
38340    fn from(node: GroupingSets) -> GroupBy {
38341        GroupBy::GroupingSets(node)
38342    }
38343}
38344impl AstNode for JoinType {
38345    #[inline]
38346    fn can_cast(kind: SyntaxKind) -> bool {
38347        matches!(
38348            kind,
38349            SyntaxKind::JOIN_CROSS
38350                | SyntaxKind::JOIN_FULL
38351                | SyntaxKind::JOIN_INNER
38352                | SyntaxKind::JOIN_LEFT
38353                | SyntaxKind::JOIN_RIGHT
38354        )
38355    }
38356    #[inline]
38357    fn cast(syntax: SyntaxNode) -> Option<Self> {
38358        let res = match syntax.kind() {
38359            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
38360            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
38361            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
38362            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
38363            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
38364            _ => {
38365                return None;
38366            }
38367        };
38368        Some(res)
38369    }
38370    #[inline]
38371    fn syntax(&self) -> &SyntaxNode {
38372        match self {
38373            JoinType::JoinCross(it) => &it.syntax,
38374            JoinType::JoinFull(it) => &it.syntax,
38375            JoinType::JoinInner(it) => &it.syntax,
38376            JoinType::JoinLeft(it) => &it.syntax,
38377            JoinType::JoinRight(it) => &it.syntax,
38378        }
38379    }
38380}
38381impl From<JoinCross> for JoinType {
38382    #[inline]
38383    fn from(node: JoinCross) -> JoinType {
38384        JoinType::JoinCross(node)
38385    }
38386}
38387impl From<JoinFull> for JoinType {
38388    #[inline]
38389    fn from(node: JoinFull) -> JoinType {
38390        JoinType::JoinFull(node)
38391    }
38392}
38393impl From<JoinInner> for JoinType {
38394    #[inline]
38395    fn from(node: JoinInner) -> JoinType {
38396        JoinType::JoinInner(node)
38397    }
38398}
38399impl From<JoinLeft> for JoinType {
38400    #[inline]
38401    fn from(node: JoinLeft) -> JoinType {
38402        JoinType::JoinLeft(node)
38403    }
38404}
38405impl From<JoinRight> for JoinType {
38406    #[inline]
38407    fn from(node: JoinRight) -> JoinType {
38408        JoinType::JoinRight(node)
38409    }
38410}
38411impl AstNode for JsonBehavior {
38412    #[inline]
38413    fn can_cast(kind: SyntaxKind) -> bool {
38414        matches!(
38415            kind,
38416            SyntaxKind::JSON_BEHAVIOR_DEFAULT
38417                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
38418                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
38419                | SyntaxKind::JSON_BEHAVIOR_ERROR
38420                | SyntaxKind::JSON_BEHAVIOR_FALSE
38421                | SyntaxKind::JSON_BEHAVIOR_NULL
38422                | SyntaxKind::JSON_BEHAVIOR_TRUE
38423                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
38424        )
38425    }
38426    #[inline]
38427    fn cast(syntax: SyntaxNode) -> Option<Self> {
38428        let res = match syntax.kind() {
38429            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
38430                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
38431            }
38432            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
38433                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
38434            }
38435            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
38436                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
38437            }
38438            SyntaxKind::JSON_BEHAVIOR_ERROR => {
38439                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
38440            }
38441            SyntaxKind::JSON_BEHAVIOR_FALSE => {
38442                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
38443            }
38444            SyntaxKind::JSON_BEHAVIOR_NULL => {
38445                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
38446            }
38447            SyntaxKind::JSON_BEHAVIOR_TRUE => {
38448                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
38449            }
38450            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
38451                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
38452            }
38453            _ => {
38454                return None;
38455            }
38456        };
38457        Some(res)
38458    }
38459    #[inline]
38460    fn syntax(&self) -> &SyntaxNode {
38461        match self {
38462            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
38463            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
38464            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
38465            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
38466            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
38467            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
38468            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
38469            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
38470        }
38471    }
38472}
38473impl From<JsonBehaviorDefault> for JsonBehavior {
38474    #[inline]
38475    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
38476        JsonBehavior::JsonBehaviorDefault(node)
38477    }
38478}
38479impl From<JsonBehaviorEmptyArray> for JsonBehavior {
38480    #[inline]
38481    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
38482        JsonBehavior::JsonBehaviorEmptyArray(node)
38483    }
38484}
38485impl From<JsonBehaviorEmptyObject> for JsonBehavior {
38486    #[inline]
38487    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
38488        JsonBehavior::JsonBehaviorEmptyObject(node)
38489    }
38490}
38491impl From<JsonBehaviorError> for JsonBehavior {
38492    #[inline]
38493    fn from(node: JsonBehaviorError) -> JsonBehavior {
38494        JsonBehavior::JsonBehaviorError(node)
38495    }
38496}
38497impl From<JsonBehaviorFalse> for JsonBehavior {
38498    #[inline]
38499    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
38500        JsonBehavior::JsonBehaviorFalse(node)
38501    }
38502}
38503impl From<JsonBehaviorNull> for JsonBehavior {
38504    #[inline]
38505    fn from(node: JsonBehaviorNull) -> JsonBehavior {
38506        JsonBehavior::JsonBehaviorNull(node)
38507    }
38508}
38509impl From<JsonBehaviorTrue> for JsonBehavior {
38510    #[inline]
38511    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
38512        JsonBehavior::JsonBehaviorTrue(node)
38513    }
38514}
38515impl From<JsonBehaviorUnknown> for JsonBehavior {
38516    #[inline]
38517    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
38518        JsonBehavior::JsonBehaviorUnknown(node)
38519    }
38520}
38521impl AstNode for LockMode {
38522    #[inline]
38523    fn can_cast(kind: SyntaxKind) -> bool {
38524        matches!(
38525            kind,
38526            SyntaxKind::ACCESS_EXCLUSIVE
38527                | SyntaxKind::ACCESS_SHARE
38528                | SyntaxKind::EXCLUSIVE
38529                | SyntaxKind::ROW_EXCLUSIVE
38530                | SyntaxKind::ROW_SHARE
38531                | SyntaxKind::SHARE
38532                | SyntaxKind::SHARE_ROW_EXCLUSIVE
38533                | SyntaxKind::SHARE_UPDATE_EXCLUSIVE
38534        )
38535    }
38536    #[inline]
38537    fn cast(syntax: SyntaxNode) -> Option<Self> {
38538        let res = match syntax.kind() {
38539            SyntaxKind::ACCESS_EXCLUSIVE => LockMode::AccessExclusive(AccessExclusive { syntax }),
38540            SyntaxKind::ACCESS_SHARE => LockMode::AccessShare(AccessShare { syntax }),
38541            SyntaxKind::EXCLUSIVE => LockMode::Exclusive(Exclusive { syntax }),
38542            SyntaxKind::ROW_EXCLUSIVE => LockMode::RowExclusive(RowExclusive { syntax }),
38543            SyntaxKind::ROW_SHARE => LockMode::RowShare(RowShare { syntax }),
38544            SyntaxKind::SHARE => LockMode::Share(Share { syntax }),
38545            SyntaxKind::SHARE_ROW_EXCLUSIVE => {
38546                LockMode::ShareRowExclusive(ShareRowExclusive { syntax })
38547            }
38548            SyntaxKind::SHARE_UPDATE_EXCLUSIVE => {
38549                LockMode::ShareUpdateExclusive(ShareUpdateExclusive { syntax })
38550            }
38551            _ => {
38552                return None;
38553            }
38554        };
38555        Some(res)
38556    }
38557    #[inline]
38558    fn syntax(&self) -> &SyntaxNode {
38559        match self {
38560            LockMode::AccessExclusive(it) => &it.syntax,
38561            LockMode::AccessShare(it) => &it.syntax,
38562            LockMode::Exclusive(it) => &it.syntax,
38563            LockMode::RowExclusive(it) => &it.syntax,
38564            LockMode::RowShare(it) => &it.syntax,
38565            LockMode::Share(it) => &it.syntax,
38566            LockMode::ShareRowExclusive(it) => &it.syntax,
38567            LockMode::ShareUpdateExclusive(it) => &it.syntax,
38568        }
38569    }
38570}
38571impl From<AccessExclusive> for LockMode {
38572    #[inline]
38573    fn from(node: AccessExclusive) -> LockMode {
38574        LockMode::AccessExclusive(node)
38575    }
38576}
38577impl From<AccessShare> for LockMode {
38578    #[inline]
38579    fn from(node: AccessShare) -> LockMode {
38580        LockMode::AccessShare(node)
38581    }
38582}
38583impl From<Exclusive> for LockMode {
38584    #[inline]
38585    fn from(node: Exclusive) -> LockMode {
38586        LockMode::Exclusive(node)
38587    }
38588}
38589impl From<RowExclusive> for LockMode {
38590    #[inline]
38591    fn from(node: RowExclusive) -> LockMode {
38592        LockMode::RowExclusive(node)
38593    }
38594}
38595impl From<RowShare> for LockMode {
38596    #[inline]
38597    fn from(node: RowShare) -> LockMode {
38598        LockMode::RowShare(node)
38599    }
38600}
38601impl From<Share> for LockMode {
38602    #[inline]
38603    fn from(node: Share) -> LockMode {
38604        LockMode::Share(node)
38605    }
38606}
38607impl From<ShareRowExclusive> for LockMode {
38608    #[inline]
38609    fn from(node: ShareRowExclusive) -> LockMode {
38610        LockMode::ShareRowExclusive(node)
38611    }
38612}
38613impl From<ShareUpdateExclusive> for LockMode {
38614    #[inline]
38615    fn from(node: ShareUpdateExclusive) -> LockMode {
38616        LockMode::ShareUpdateExclusive(node)
38617    }
38618}
38619impl AstNode for MatchType {
38620    #[inline]
38621    fn can_cast(kind: SyntaxKind) -> bool {
38622        matches!(
38623            kind,
38624            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
38625        )
38626    }
38627    #[inline]
38628    fn cast(syntax: SyntaxNode) -> Option<Self> {
38629        let res = match syntax.kind() {
38630            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
38631            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
38632            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
38633            _ => {
38634                return None;
38635            }
38636        };
38637        Some(res)
38638    }
38639    #[inline]
38640    fn syntax(&self) -> &SyntaxNode {
38641        match self {
38642            MatchType::MatchFull(it) => &it.syntax,
38643            MatchType::MatchPartial(it) => &it.syntax,
38644            MatchType::MatchSimple(it) => &it.syntax,
38645        }
38646    }
38647}
38648impl From<MatchFull> for MatchType {
38649    #[inline]
38650    fn from(node: MatchFull) -> MatchType {
38651        MatchType::MatchFull(node)
38652    }
38653}
38654impl From<MatchPartial> for MatchType {
38655    #[inline]
38656    fn from(node: MatchPartial) -> MatchType {
38657        MatchType::MatchPartial(node)
38658    }
38659}
38660impl From<MatchSimple> for MatchType {
38661    #[inline]
38662    fn from(node: MatchSimple) -> MatchType {
38663        MatchType::MatchSimple(node)
38664    }
38665}
38666impl AstNode for MergeAction {
38667    #[inline]
38668    fn can_cast(kind: SyntaxKind) -> bool {
38669        matches!(
38670            kind,
38671            SyntaxKind::MERGE_DELETE
38672                | SyntaxKind::MERGE_DO_NOTHING
38673                | SyntaxKind::MERGE_INSERT
38674                | SyntaxKind::MERGE_UPDATE
38675        )
38676    }
38677    #[inline]
38678    fn cast(syntax: SyntaxNode) -> Option<Self> {
38679        let res = match syntax.kind() {
38680            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
38681            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
38682            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
38683            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
38684            _ => {
38685                return None;
38686            }
38687        };
38688        Some(res)
38689    }
38690    #[inline]
38691    fn syntax(&self) -> &SyntaxNode {
38692        match self {
38693            MergeAction::MergeDelete(it) => &it.syntax,
38694            MergeAction::MergeDoNothing(it) => &it.syntax,
38695            MergeAction::MergeInsert(it) => &it.syntax,
38696            MergeAction::MergeUpdate(it) => &it.syntax,
38697        }
38698    }
38699}
38700impl From<MergeDelete> for MergeAction {
38701    #[inline]
38702    fn from(node: MergeDelete) -> MergeAction {
38703        MergeAction::MergeDelete(node)
38704    }
38705}
38706impl From<MergeDoNothing> for MergeAction {
38707    #[inline]
38708    fn from(node: MergeDoNothing) -> MergeAction {
38709        MergeAction::MergeDoNothing(node)
38710    }
38711}
38712impl From<MergeInsert> for MergeAction {
38713    #[inline]
38714    fn from(node: MergeInsert) -> MergeAction {
38715        MergeAction::MergeInsert(node)
38716    }
38717}
38718impl From<MergeUpdate> for MergeAction {
38719    #[inline]
38720    fn from(node: MergeUpdate) -> MergeAction {
38721        MergeAction::MergeUpdate(node)
38722    }
38723}
38724impl AstNode for MergeWhenClause {
38725    #[inline]
38726    fn can_cast(kind: SyntaxKind) -> bool {
38727        matches!(
38728            kind,
38729            SyntaxKind::MERGE_WHEN_MATCHED
38730                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
38731                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
38732        )
38733    }
38734    #[inline]
38735    fn cast(syntax: SyntaxNode) -> Option<Self> {
38736        let res = match syntax.kind() {
38737            SyntaxKind::MERGE_WHEN_MATCHED => {
38738                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
38739            }
38740            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
38741                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
38742            }
38743            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
38744                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
38745            }
38746            _ => {
38747                return None;
38748            }
38749        };
38750        Some(res)
38751    }
38752    #[inline]
38753    fn syntax(&self) -> &SyntaxNode {
38754        match self {
38755            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
38756            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
38757            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
38758        }
38759    }
38760}
38761impl From<MergeWhenMatched> for MergeWhenClause {
38762    #[inline]
38763    fn from(node: MergeWhenMatched) -> MergeWhenClause {
38764        MergeWhenClause::MergeWhenMatched(node)
38765    }
38766}
38767impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
38768    #[inline]
38769    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
38770        MergeWhenClause::MergeWhenNotMatchedSource(node)
38771    }
38772}
38773impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
38774    #[inline]
38775    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
38776        MergeWhenClause::MergeWhenNotMatchedTarget(node)
38777    }
38778}
38779impl AstNode for OnCommitAction {
38780    #[inline]
38781    fn can_cast(kind: SyntaxKind) -> bool {
38782        matches!(
38783            kind,
38784            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
38785        )
38786    }
38787    #[inline]
38788    fn cast(syntax: SyntaxNode) -> Option<Self> {
38789        let res = match syntax.kind() {
38790            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
38791            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
38792            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
38793            _ => {
38794                return None;
38795            }
38796        };
38797        Some(res)
38798    }
38799    #[inline]
38800    fn syntax(&self) -> &SyntaxNode {
38801        match self {
38802            OnCommitAction::DeleteRows(it) => &it.syntax,
38803            OnCommitAction::Drop(it) => &it.syntax,
38804            OnCommitAction::PreserveRows(it) => &it.syntax,
38805        }
38806    }
38807}
38808impl From<DeleteRows> for OnCommitAction {
38809    #[inline]
38810    fn from(node: DeleteRows) -> OnCommitAction {
38811        OnCommitAction::DeleteRows(node)
38812    }
38813}
38814impl From<Drop> for OnCommitAction {
38815    #[inline]
38816    fn from(node: Drop) -> OnCommitAction {
38817        OnCommitAction::Drop(node)
38818    }
38819}
38820impl From<PreserveRows> for OnCommitAction {
38821    #[inline]
38822    fn from(node: PreserveRows) -> OnCommitAction {
38823        OnCommitAction::PreserveRows(node)
38824    }
38825}
38826impl AstNode for ParamMode {
38827    #[inline]
38828    fn can_cast(kind: SyntaxKind) -> bool {
38829        matches!(
38830            kind,
38831            SyntaxKind::PARAM_IN
38832                | SyntaxKind::PARAM_IN_OUT
38833                | SyntaxKind::PARAM_OUT
38834                | SyntaxKind::PARAM_VARIADIC
38835        )
38836    }
38837    #[inline]
38838    fn cast(syntax: SyntaxNode) -> Option<Self> {
38839        let res = match syntax.kind() {
38840            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
38841            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
38842            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
38843            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
38844            _ => {
38845                return None;
38846            }
38847        };
38848        Some(res)
38849    }
38850    #[inline]
38851    fn syntax(&self) -> &SyntaxNode {
38852        match self {
38853            ParamMode::ParamIn(it) => &it.syntax,
38854            ParamMode::ParamInOut(it) => &it.syntax,
38855            ParamMode::ParamOut(it) => &it.syntax,
38856            ParamMode::ParamVariadic(it) => &it.syntax,
38857        }
38858    }
38859}
38860impl From<ParamIn> for ParamMode {
38861    #[inline]
38862    fn from(node: ParamIn) -> ParamMode {
38863        ParamMode::ParamIn(node)
38864    }
38865}
38866impl From<ParamInOut> for ParamMode {
38867    #[inline]
38868    fn from(node: ParamInOut) -> ParamMode {
38869        ParamMode::ParamInOut(node)
38870    }
38871}
38872impl From<ParamOut> for ParamMode {
38873    #[inline]
38874    fn from(node: ParamOut) -> ParamMode {
38875        ParamMode::ParamOut(node)
38876    }
38877}
38878impl From<ParamVariadic> for ParamMode {
38879    #[inline]
38880    fn from(node: ParamVariadic) -> ParamMode {
38881        ParamMode::ParamVariadic(node)
38882    }
38883}
38884impl AstNode for PartitionType {
38885    #[inline]
38886    fn can_cast(kind: SyntaxKind) -> bool {
38887        matches!(
38888            kind,
38889            SyntaxKind::PARTITION_DEFAULT
38890                | SyntaxKind::PARTITION_FOR_VALUES_FROM
38891                | SyntaxKind::PARTITION_FOR_VALUES_IN
38892                | SyntaxKind::PARTITION_FOR_VALUES_WITH
38893        )
38894    }
38895    #[inline]
38896    fn cast(syntax: SyntaxNode) -> Option<Self> {
38897        let res = match syntax.kind() {
38898            SyntaxKind::PARTITION_DEFAULT => {
38899                PartitionType::PartitionDefault(PartitionDefault { syntax })
38900            }
38901            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
38902                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
38903            }
38904            SyntaxKind::PARTITION_FOR_VALUES_IN => {
38905                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
38906            }
38907            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
38908                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
38909            }
38910            _ => {
38911                return None;
38912            }
38913        };
38914        Some(res)
38915    }
38916    #[inline]
38917    fn syntax(&self) -> &SyntaxNode {
38918        match self {
38919            PartitionType::PartitionDefault(it) => &it.syntax,
38920            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
38921            PartitionType::PartitionForValuesIn(it) => &it.syntax,
38922            PartitionType::PartitionForValuesWith(it) => &it.syntax,
38923        }
38924    }
38925}
38926impl From<PartitionDefault> for PartitionType {
38927    #[inline]
38928    fn from(node: PartitionDefault) -> PartitionType {
38929        PartitionType::PartitionDefault(node)
38930    }
38931}
38932impl From<PartitionForValuesFrom> for PartitionType {
38933    #[inline]
38934    fn from(node: PartitionForValuesFrom) -> PartitionType {
38935        PartitionType::PartitionForValuesFrom(node)
38936    }
38937}
38938impl From<PartitionForValuesIn> for PartitionType {
38939    #[inline]
38940    fn from(node: PartitionForValuesIn) -> PartitionType {
38941        PartitionType::PartitionForValuesIn(node)
38942    }
38943}
38944impl From<PartitionForValuesWith> for PartitionType {
38945    #[inline]
38946    fn from(node: PartitionForValuesWith) -> PartitionType {
38947        PartitionType::PartitionForValuesWith(node)
38948    }
38949}
38950impl AstNode for PathPrimary {
38951    #[inline]
38952    fn can_cast(kind: SyntaxKind) -> bool {
38953        matches!(
38954            kind,
38955            SyntaxKind::EDGE_ANY
38956                | SyntaxKind::EDGE_LEFT
38957                | SyntaxKind::EDGE_RIGHT
38958                | SyntaxKind::PAREN_GRAPH_PATTERN
38959                | SyntaxKind::VERTEX_PATTERN
38960        )
38961    }
38962    #[inline]
38963    fn cast(syntax: SyntaxNode) -> Option<Self> {
38964        let res = match syntax.kind() {
38965            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
38966            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
38967            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
38968            SyntaxKind::PAREN_GRAPH_PATTERN => {
38969                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
38970            }
38971            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
38972            _ => {
38973                return None;
38974            }
38975        };
38976        Some(res)
38977    }
38978    #[inline]
38979    fn syntax(&self) -> &SyntaxNode {
38980        match self {
38981            PathPrimary::EdgeAny(it) => &it.syntax,
38982            PathPrimary::EdgeLeft(it) => &it.syntax,
38983            PathPrimary::EdgeRight(it) => &it.syntax,
38984            PathPrimary::ParenGraphPattern(it) => &it.syntax,
38985            PathPrimary::VertexPattern(it) => &it.syntax,
38986        }
38987    }
38988}
38989impl From<EdgeAny> for PathPrimary {
38990    #[inline]
38991    fn from(node: EdgeAny) -> PathPrimary {
38992        PathPrimary::EdgeAny(node)
38993    }
38994}
38995impl From<EdgeLeft> for PathPrimary {
38996    #[inline]
38997    fn from(node: EdgeLeft) -> PathPrimary {
38998        PathPrimary::EdgeLeft(node)
38999    }
39000}
39001impl From<EdgeRight> for PathPrimary {
39002    #[inline]
39003    fn from(node: EdgeRight) -> PathPrimary {
39004        PathPrimary::EdgeRight(node)
39005    }
39006}
39007impl From<ParenGraphPattern> for PathPrimary {
39008    #[inline]
39009    fn from(node: ParenGraphPattern) -> PathPrimary {
39010        PathPrimary::ParenGraphPattern(node)
39011    }
39012}
39013impl From<VertexPattern> for PathPrimary {
39014    #[inline]
39015    fn from(node: VertexPattern) -> PathPrimary {
39016        PathPrimary::VertexPattern(node)
39017    }
39018}
39019impl AstNode for Persistence {
39020    #[inline]
39021    fn can_cast(kind: SyntaxKind) -> bool {
39022        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
39023    }
39024    #[inline]
39025    fn cast(syntax: SyntaxNode) -> Option<Self> {
39026        let res = match syntax.kind() {
39027            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
39028            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
39029            _ => {
39030                return None;
39031            }
39032        };
39033        Some(res)
39034    }
39035    #[inline]
39036    fn syntax(&self) -> &SyntaxNode {
39037        match self {
39038            Persistence::Temp(it) => &it.syntax,
39039            Persistence::Unlogged(it) => &it.syntax,
39040        }
39041    }
39042}
39043impl From<Temp> for Persistence {
39044    #[inline]
39045    fn from(node: Temp) -> Persistence {
39046        Persistence::Temp(node)
39047    }
39048}
39049impl From<Unlogged> for Persistence {
39050    #[inline]
39051    fn from(node: Unlogged) -> Persistence {
39052        Persistence::Unlogged(node)
39053    }
39054}
39055impl AstNode for PreparableStmt {
39056    #[inline]
39057    fn can_cast(kind: SyntaxKind) -> bool {
39058        matches!(
39059            kind,
39060            SyntaxKind::COMPOUND_SELECT
39061                | SyntaxKind::DELETE
39062                | SyntaxKind::INSERT
39063                | SyntaxKind::MERGE
39064                | SyntaxKind::SELECT
39065                | SyntaxKind::SELECT_INTO
39066                | SyntaxKind::TABLE
39067                | SyntaxKind::UPDATE
39068                | SyntaxKind::VALUES
39069        )
39070    }
39071    #[inline]
39072    fn cast(syntax: SyntaxNode) -> Option<Self> {
39073        let res = match syntax.kind() {
39074            SyntaxKind::COMPOUND_SELECT => {
39075                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
39076            }
39077            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
39078            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
39079            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
39080            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
39081            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
39082            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
39083            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
39084            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
39085            _ => {
39086                return None;
39087            }
39088        };
39089        Some(res)
39090    }
39091    #[inline]
39092    fn syntax(&self) -> &SyntaxNode {
39093        match self {
39094            PreparableStmt::CompoundSelect(it) => &it.syntax,
39095            PreparableStmt::Delete(it) => &it.syntax,
39096            PreparableStmt::Insert(it) => &it.syntax,
39097            PreparableStmt::Merge(it) => &it.syntax,
39098            PreparableStmt::Select(it) => &it.syntax,
39099            PreparableStmt::SelectInto(it) => &it.syntax,
39100            PreparableStmt::Table(it) => &it.syntax,
39101            PreparableStmt::Update(it) => &it.syntax,
39102            PreparableStmt::Values(it) => &it.syntax,
39103        }
39104    }
39105}
39106impl From<CompoundSelect> for PreparableStmt {
39107    #[inline]
39108    fn from(node: CompoundSelect) -> PreparableStmt {
39109        PreparableStmt::CompoundSelect(node)
39110    }
39111}
39112impl From<Delete> for PreparableStmt {
39113    #[inline]
39114    fn from(node: Delete) -> PreparableStmt {
39115        PreparableStmt::Delete(node)
39116    }
39117}
39118impl From<Insert> for PreparableStmt {
39119    #[inline]
39120    fn from(node: Insert) -> PreparableStmt {
39121        PreparableStmt::Insert(node)
39122    }
39123}
39124impl From<Merge> for PreparableStmt {
39125    #[inline]
39126    fn from(node: Merge) -> PreparableStmt {
39127        PreparableStmt::Merge(node)
39128    }
39129}
39130impl From<Select> for PreparableStmt {
39131    #[inline]
39132    fn from(node: Select) -> PreparableStmt {
39133        PreparableStmt::Select(node)
39134    }
39135}
39136impl From<SelectInto> for PreparableStmt {
39137    #[inline]
39138    fn from(node: SelectInto) -> PreparableStmt {
39139        PreparableStmt::SelectInto(node)
39140    }
39141}
39142impl From<Table> for PreparableStmt {
39143    #[inline]
39144    fn from(node: Table) -> PreparableStmt {
39145        PreparableStmt::Table(node)
39146    }
39147}
39148impl From<Update> for PreparableStmt {
39149    #[inline]
39150    fn from(node: Update) -> PreparableStmt {
39151        PreparableStmt::Update(node)
39152    }
39153}
39154impl From<Values> for PreparableStmt {
39155    #[inline]
39156    fn from(node: Values) -> PreparableStmt {
39157        PreparableStmt::Values(node)
39158    }
39159}
39160impl AstNode for RefAction {
39161    #[inline]
39162    fn can_cast(kind: SyntaxKind) -> bool {
39163        matches!(
39164            kind,
39165            SyntaxKind::CASCADE
39166                | SyntaxKind::NO_ACTION
39167                | SyntaxKind::RESTRICT
39168                | SyntaxKind::SET_DEFAULT_COLUMNS
39169                | SyntaxKind::SET_NULL_COLUMNS
39170        )
39171    }
39172    #[inline]
39173    fn cast(syntax: SyntaxNode) -> Option<Self> {
39174        let res = match syntax.kind() {
39175            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
39176            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
39177            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
39178            SyntaxKind::SET_DEFAULT_COLUMNS => {
39179                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
39180            }
39181            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
39182            _ => {
39183                return None;
39184            }
39185        };
39186        Some(res)
39187    }
39188    #[inline]
39189    fn syntax(&self) -> &SyntaxNode {
39190        match self {
39191            RefAction::Cascade(it) => &it.syntax,
39192            RefAction::NoAction(it) => &it.syntax,
39193            RefAction::Restrict(it) => &it.syntax,
39194            RefAction::SetDefaultColumns(it) => &it.syntax,
39195            RefAction::SetNullColumns(it) => &it.syntax,
39196        }
39197    }
39198}
39199impl From<Cascade> for RefAction {
39200    #[inline]
39201    fn from(node: Cascade) -> RefAction {
39202        RefAction::Cascade(node)
39203    }
39204}
39205impl From<NoAction> for RefAction {
39206    #[inline]
39207    fn from(node: NoAction) -> RefAction {
39208        RefAction::NoAction(node)
39209    }
39210}
39211impl From<Restrict> for RefAction {
39212    #[inline]
39213    fn from(node: Restrict) -> RefAction {
39214        RefAction::Restrict(node)
39215    }
39216}
39217impl From<SetDefaultColumns> for RefAction {
39218    #[inline]
39219    fn from(node: SetDefaultColumns) -> RefAction {
39220        RefAction::SetDefaultColumns(node)
39221    }
39222}
39223impl From<SetNullColumns> for RefAction {
39224    #[inline]
39225    fn from(node: SetNullColumns) -> RefAction {
39226        RefAction::SetNullColumns(node)
39227    }
39228}
39229impl AstNode for RuleAction {
39230    #[inline]
39231    fn can_cast(kind: SyntaxKind) -> bool {
39232        matches!(kind, SyntaxKind::NOTHING | SyntaxKind::RULE_STMT_LIST)
39233    }
39234    #[inline]
39235    fn cast(syntax: SyntaxNode) -> Option<Self> {
39236        let res = match syntax.kind() {
39237            SyntaxKind::NOTHING => RuleAction::Nothing(Nothing { syntax }),
39238            SyntaxKind::RULE_STMT_LIST => RuleAction::RuleStmtList(RuleStmtList { syntax }),
39239            _ => {
39240                if let Some(result) = RuleStmt::cast(syntax) {
39241                    return Some(RuleAction::RuleStmt(result));
39242                }
39243                return None;
39244            }
39245        };
39246        Some(res)
39247    }
39248    #[inline]
39249    fn syntax(&self) -> &SyntaxNode {
39250        match self {
39251            RuleAction::Nothing(it) => &it.syntax,
39252            RuleAction::RuleStmtList(it) => &it.syntax,
39253            RuleAction::RuleStmt(it) => it.syntax(),
39254        }
39255    }
39256}
39257impl From<Nothing> for RuleAction {
39258    #[inline]
39259    fn from(node: Nothing) -> RuleAction {
39260        RuleAction::Nothing(node)
39261    }
39262}
39263impl From<RuleStmtList> for RuleAction {
39264    #[inline]
39265    fn from(node: RuleStmtList) -> RuleAction {
39266        RuleAction::RuleStmtList(node)
39267    }
39268}
39269impl AstNode for RuleStmt {
39270    #[inline]
39271    fn can_cast(kind: SyntaxKind) -> bool {
39272        matches!(
39273            kind,
39274            SyntaxKind::DELETE | SyntaxKind::INSERT | SyntaxKind::NOTIFY | SyntaxKind::UPDATE
39275        )
39276    }
39277    #[inline]
39278    fn cast(syntax: SyntaxNode) -> Option<Self> {
39279        let res = match syntax.kind() {
39280            SyntaxKind::DELETE => RuleStmt::Delete(Delete { syntax }),
39281            SyntaxKind::INSERT => RuleStmt::Insert(Insert { syntax }),
39282            SyntaxKind::NOTIFY => RuleStmt::Notify(Notify { syntax }),
39283            SyntaxKind::UPDATE => RuleStmt::Update(Update { syntax }),
39284            _ => {
39285                if let Some(result) = SelectVariant::cast(syntax) {
39286                    return Some(RuleStmt::SelectVariant(result));
39287                }
39288                return None;
39289            }
39290        };
39291        Some(res)
39292    }
39293    #[inline]
39294    fn syntax(&self) -> &SyntaxNode {
39295        match self {
39296            RuleStmt::Delete(it) => &it.syntax,
39297            RuleStmt::Insert(it) => &it.syntax,
39298            RuleStmt::Notify(it) => &it.syntax,
39299            RuleStmt::Update(it) => &it.syntax,
39300            RuleStmt::SelectVariant(it) => it.syntax(),
39301        }
39302    }
39303}
39304impl From<Delete> for RuleStmt {
39305    #[inline]
39306    fn from(node: Delete) -> RuleStmt {
39307        RuleStmt::Delete(node)
39308    }
39309}
39310impl From<Insert> for RuleStmt {
39311    #[inline]
39312    fn from(node: Insert) -> RuleStmt {
39313        RuleStmt::Insert(node)
39314    }
39315}
39316impl From<Notify> for RuleStmt {
39317    #[inline]
39318    fn from(node: Notify) -> RuleStmt {
39319        RuleStmt::Notify(node)
39320    }
39321}
39322impl From<Update> for RuleStmt {
39323    #[inline]
39324    fn from(node: Update) -> RuleStmt {
39325        RuleStmt::Update(node)
39326    }
39327}
39328impl AstNode for SchemaElement {
39329    #[inline]
39330    fn can_cast(kind: SyntaxKind) -> bool {
39331        matches!(
39332            kind,
39333            SyntaxKind::CREATE_INDEX
39334                | SyntaxKind::CREATE_SEQUENCE
39335                | SyntaxKind::CREATE_TABLE
39336                | SyntaxKind::CREATE_TRIGGER
39337                | SyntaxKind::CREATE_VIEW
39338                | SyntaxKind::GRANT
39339        )
39340    }
39341    #[inline]
39342    fn cast(syntax: SyntaxNode) -> Option<Self> {
39343        let res = match syntax.kind() {
39344            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
39345            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
39346            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
39347            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
39348            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
39349            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
39350            _ => {
39351                return None;
39352            }
39353        };
39354        Some(res)
39355    }
39356    #[inline]
39357    fn syntax(&self) -> &SyntaxNode {
39358        match self {
39359            SchemaElement::CreateIndex(it) => &it.syntax,
39360            SchemaElement::CreateSequence(it) => &it.syntax,
39361            SchemaElement::CreateTable(it) => &it.syntax,
39362            SchemaElement::CreateTrigger(it) => &it.syntax,
39363            SchemaElement::CreateView(it) => &it.syntax,
39364            SchemaElement::Grant(it) => &it.syntax,
39365        }
39366    }
39367}
39368impl From<CreateIndex> for SchemaElement {
39369    #[inline]
39370    fn from(node: CreateIndex) -> SchemaElement {
39371        SchemaElement::CreateIndex(node)
39372    }
39373}
39374impl From<CreateSequence> for SchemaElement {
39375    #[inline]
39376    fn from(node: CreateSequence) -> SchemaElement {
39377        SchemaElement::CreateSequence(node)
39378    }
39379}
39380impl From<CreateTable> for SchemaElement {
39381    #[inline]
39382    fn from(node: CreateTable) -> SchemaElement {
39383        SchemaElement::CreateTable(node)
39384    }
39385}
39386impl From<CreateTrigger> for SchemaElement {
39387    #[inline]
39388    fn from(node: CreateTrigger) -> SchemaElement {
39389        SchemaElement::CreateTrigger(node)
39390    }
39391}
39392impl From<CreateView> for SchemaElement {
39393    #[inline]
39394    fn from(node: CreateView) -> SchemaElement {
39395        SchemaElement::CreateView(node)
39396    }
39397}
39398impl From<Grant> for SchemaElement {
39399    #[inline]
39400    fn from(node: Grant) -> SchemaElement {
39401        SchemaElement::Grant(node)
39402    }
39403}
39404impl AstNode for SelectVariant {
39405    #[inline]
39406    fn can_cast(kind: SyntaxKind) -> bool {
39407        matches!(
39408            kind,
39409            SyntaxKind::COMPOUND_SELECT
39410                | SyntaxKind::PAREN_SELECT
39411                | SyntaxKind::SELECT
39412                | SyntaxKind::SELECT_INTO
39413                | SyntaxKind::TABLE
39414                | SyntaxKind::VALUES
39415        )
39416    }
39417    #[inline]
39418    fn cast(syntax: SyntaxNode) -> Option<Self> {
39419        let res = match syntax.kind() {
39420            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
39421            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
39422            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
39423            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
39424            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
39425            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
39426            _ => {
39427                return None;
39428            }
39429        };
39430        Some(res)
39431    }
39432    #[inline]
39433    fn syntax(&self) -> &SyntaxNode {
39434        match self {
39435            SelectVariant::CompoundSelect(it) => &it.syntax,
39436            SelectVariant::ParenSelect(it) => &it.syntax,
39437            SelectVariant::Select(it) => &it.syntax,
39438            SelectVariant::SelectInto(it) => &it.syntax,
39439            SelectVariant::Table(it) => &it.syntax,
39440            SelectVariant::Values(it) => &it.syntax,
39441        }
39442    }
39443}
39444impl From<CompoundSelect> for SelectVariant {
39445    #[inline]
39446    fn from(node: CompoundSelect) -> SelectVariant {
39447        SelectVariant::CompoundSelect(node)
39448    }
39449}
39450impl From<ParenSelect> for SelectVariant {
39451    #[inline]
39452    fn from(node: ParenSelect) -> SelectVariant {
39453        SelectVariant::ParenSelect(node)
39454    }
39455}
39456impl From<Select> for SelectVariant {
39457    #[inline]
39458    fn from(node: Select) -> SelectVariant {
39459        SelectVariant::Select(node)
39460    }
39461}
39462impl From<SelectInto> for SelectVariant {
39463    #[inline]
39464    fn from(node: SelectInto) -> SelectVariant {
39465        SelectVariant::SelectInto(node)
39466    }
39467}
39468impl From<Table> for SelectVariant {
39469    #[inline]
39470    fn from(node: Table) -> SelectVariant {
39471        SelectVariant::Table(node)
39472    }
39473}
39474impl From<Values> for SelectVariant {
39475    #[inline]
39476    fn from(node: Values) -> SelectVariant {
39477        SelectVariant::Values(node)
39478    }
39479}
39480impl AstNode for SetColumn {
39481    #[inline]
39482    fn can_cast(kind: SyntaxKind) -> bool {
39483        matches!(
39484            kind,
39485            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
39486        )
39487    }
39488    #[inline]
39489    fn cast(syntax: SyntaxNode) -> Option<Self> {
39490        let res = match syntax.kind() {
39491            SyntaxKind::SET_MULTIPLE_COLUMNS => {
39492                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
39493            }
39494            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
39495            _ => {
39496                return None;
39497            }
39498        };
39499        Some(res)
39500    }
39501    #[inline]
39502    fn syntax(&self) -> &SyntaxNode {
39503        match self {
39504            SetColumn::SetMultipleColumns(it) => &it.syntax,
39505            SetColumn::SetSingleColumn(it) => &it.syntax,
39506        }
39507    }
39508}
39509impl From<SetMultipleColumns> for SetColumn {
39510    #[inline]
39511    fn from(node: SetMultipleColumns) -> SetColumn {
39512        SetColumn::SetMultipleColumns(node)
39513    }
39514}
39515impl From<SetSingleColumn> for SetColumn {
39516    #[inline]
39517    fn from(node: SetSingleColumn) -> SetColumn {
39518        SetColumn::SetSingleColumn(node)
39519    }
39520}
39521impl AstNode for Stmt {
39522    #[inline]
39523    fn can_cast(kind: SyntaxKind) -> bool {
39524        matches!(
39525            kind,
39526            SyntaxKind::ALTER_AGGREGATE
39527                | SyntaxKind::ALTER_COLLATION
39528                | SyntaxKind::ALTER_CONVERSION
39529                | SyntaxKind::ALTER_DATABASE
39530                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
39531                | SyntaxKind::ALTER_DOMAIN
39532                | SyntaxKind::ALTER_EVENT_TRIGGER
39533                | SyntaxKind::ALTER_EXTENSION
39534                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
39535                | SyntaxKind::ALTER_FOREIGN_TABLE
39536                | SyntaxKind::ALTER_FUNCTION
39537                | SyntaxKind::ALTER_GROUP
39538                | SyntaxKind::ALTER_INDEX
39539                | SyntaxKind::ALTER_LANGUAGE
39540                | SyntaxKind::ALTER_LARGE_OBJECT
39541                | SyntaxKind::ALTER_MATERIALIZED_VIEW
39542                | SyntaxKind::ALTER_OPERATOR
39543                | SyntaxKind::ALTER_OPERATOR_CLASS
39544                | SyntaxKind::ALTER_OPERATOR_FAMILY
39545                | SyntaxKind::ALTER_POLICY
39546                | SyntaxKind::ALTER_PROCEDURE
39547                | SyntaxKind::ALTER_PROPERTY_GRAPH
39548                | SyntaxKind::ALTER_PUBLICATION
39549                | SyntaxKind::ALTER_ROLE
39550                | SyntaxKind::ALTER_ROUTINE
39551                | SyntaxKind::ALTER_RULE
39552                | SyntaxKind::ALTER_SCHEMA
39553                | SyntaxKind::ALTER_SEQUENCE
39554                | SyntaxKind::ALTER_SERVER
39555                | SyntaxKind::ALTER_STATISTICS
39556                | SyntaxKind::ALTER_SUBSCRIPTION
39557                | SyntaxKind::ALTER_SYSTEM
39558                | SyntaxKind::ALTER_TABLE
39559                | SyntaxKind::ALTER_TABLESPACE
39560                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
39561                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
39562                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
39563                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
39564                | SyntaxKind::ALTER_TRIGGER
39565                | SyntaxKind::ALTER_TYPE
39566                | SyntaxKind::ALTER_USER
39567                | SyntaxKind::ALTER_USER_MAPPING
39568                | SyntaxKind::ALTER_VIEW
39569                | SyntaxKind::ANALYZE
39570                | SyntaxKind::BEGIN
39571                | SyntaxKind::CALL
39572                | SyntaxKind::CHECKPOINT
39573                | SyntaxKind::CLOSE
39574                | SyntaxKind::CLUSTER
39575                | SyntaxKind::COMMENT_ON
39576                | SyntaxKind::COMMIT
39577                | SyntaxKind::COPY
39578                | SyntaxKind::CREATE_ACCESS_METHOD
39579                | SyntaxKind::CREATE_AGGREGATE
39580                | SyntaxKind::CREATE_CAST
39581                | SyntaxKind::CREATE_COLLATION
39582                | SyntaxKind::CREATE_CONVERSION
39583                | SyntaxKind::CREATE_DATABASE
39584                | SyntaxKind::CREATE_DOMAIN
39585                | SyntaxKind::CREATE_EVENT_TRIGGER
39586                | SyntaxKind::CREATE_EXTENSION
39587                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
39588                | SyntaxKind::CREATE_FOREIGN_TABLE
39589                | SyntaxKind::CREATE_FUNCTION
39590                | SyntaxKind::CREATE_GROUP
39591                | SyntaxKind::CREATE_INDEX
39592                | SyntaxKind::CREATE_LANGUAGE
39593                | SyntaxKind::CREATE_MATERIALIZED_VIEW
39594                | SyntaxKind::CREATE_OPERATOR
39595                | SyntaxKind::CREATE_OPERATOR_CLASS
39596                | SyntaxKind::CREATE_OPERATOR_FAMILY
39597                | SyntaxKind::CREATE_POLICY
39598                | SyntaxKind::CREATE_PROCEDURE
39599                | SyntaxKind::CREATE_PROPERTY_GRAPH
39600                | SyntaxKind::CREATE_PUBLICATION
39601                | SyntaxKind::CREATE_ROLE
39602                | SyntaxKind::CREATE_RULE
39603                | SyntaxKind::CREATE_SCHEMA
39604                | SyntaxKind::CREATE_SEQUENCE
39605                | SyntaxKind::CREATE_SERVER
39606                | SyntaxKind::CREATE_STATISTICS
39607                | SyntaxKind::CREATE_SUBSCRIPTION
39608                | SyntaxKind::CREATE_TABLE
39609                | SyntaxKind::CREATE_TABLE_AS
39610                | SyntaxKind::CREATE_TABLESPACE
39611                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
39612                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
39613                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
39614                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
39615                | SyntaxKind::CREATE_TRANSFORM
39616                | SyntaxKind::CREATE_TRIGGER
39617                | SyntaxKind::CREATE_TYPE
39618                | SyntaxKind::CREATE_USER
39619                | SyntaxKind::CREATE_USER_MAPPING
39620                | SyntaxKind::CREATE_VIEW
39621                | SyntaxKind::DEALLOCATE
39622                | SyntaxKind::DECLARE
39623                | SyntaxKind::DELETE
39624                | SyntaxKind::DISCARD
39625                | SyntaxKind::DO
39626                | SyntaxKind::DROP_ACCESS_METHOD
39627                | SyntaxKind::DROP_AGGREGATE
39628                | SyntaxKind::DROP_CAST
39629                | SyntaxKind::DROP_COLLATION
39630                | SyntaxKind::DROP_CONVERSION
39631                | SyntaxKind::DROP_DATABASE
39632                | SyntaxKind::DROP_DOMAIN
39633                | SyntaxKind::DROP_EVENT_TRIGGER
39634                | SyntaxKind::DROP_EXTENSION
39635                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
39636                | SyntaxKind::DROP_FOREIGN_TABLE
39637                | SyntaxKind::DROP_FUNCTION
39638                | SyntaxKind::DROP_GROUP
39639                | SyntaxKind::DROP_INDEX
39640                | SyntaxKind::DROP_LANGUAGE
39641                | SyntaxKind::DROP_MATERIALIZED_VIEW
39642                | SyntaxKind::DROP_OPERATOR
39643                | SyntaxKind::DROP_OPERATOR_CLASS
39644                | SyntaxKind::DROP_OPERATOR_FAMILY
39645                | SyntaxKind::DROP_OWNED
39646                | SyntaxKind::DROP_POLICY
39647                | SyntaxKind::DROP_PROCEDURE
39648                | SyntaxKind::DROP_PROPERTY_GRAPH
39649                | SyntaxKind::DROP_PUBLICATION
39650                | SyntaxKind::DROP_ROLE
39651                | SyntaxKind::DROP_ROUTINE
39652                | SyntaxKind::DROP_RULE
39653                | SyntaxKind::DROP_SCHEMA
39654                | SyntaxKind::DROP_SEQUENCE
39655                | SyntaxKind::DROP_SERVER
39656                | SyntaxKind::DROP_STATISTICS
39657                | SyntaxKind::DROP_SUBSCRIPTION
39658                | SyntaxKind::DROP_TABLE
39659                | SyntaxKind::DROP_TABLESPACE
39660                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
39661                | SyntaxKind::DROP_TEXT_SEARCH_DICT
39662                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
39663                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
39664                | SyntaxKind::DROP_TRANSFORM
39665                | SyntaxKind::DROP_TRIGGER
39666                | SyntaxKind::DROP_TYPE
39667                | SyntaxKind::DROP_USER
39668                | SyntaxKind::DROP_USER_MAPPING
39669                | SyntaxKind::DROP_VIEW
39670                | SyntaxKind::EMPTY_STMT
39671                | SyntaxKind::EXECUTE
39672                | SyntaxKind::EXPLAIN
39673                | SyntaxKind::FETCH
39674                | SyntaxKind::GRANT
39675                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
39676                | SyntaxKind::INSERT
39677                | SyntaxKind::LISTEN
39678                | SyntaxKind::LOAD
39679                | SyntaxKind::LOCK
39680                | SyntaxKind::MERGE
39681                | SyntaxKind::MOVE
39682                | SyntaxKind::NOTIFY
39683                | SyntaxKind::PAREN_SELECT
39684                | SyntaxKind::PREPARE
39685                | SyntaxKind::PREPARE_TRANSACTION
39686                | SyntaxKind::REASSIGN
39687                | SyntaxKind::REFRESH
39688                | SyntaxKind::REINDEX
39689                | SyntaxKind::RELEASE_SAVEPOINT
39690                | SyntaxKind::REPACK
39691                | SyntaxKind::RESET
39692                | SyntaxKind::RESET_SESSION_AUTH
39693                | SyntaxKind::REVOKE
39694                | SyntaxKind::ROLLBACK
39695                | SyntaxKind::SAVEPOINT
39696                | SyntaxKind::SECURITY_LABEL
39697                | SyntaxKind::SELECT
39698                | SyntaxKind::SELECT_INTO
39699                | SyntaxKind::SET
39700                | SyntaxKind::SET_CONSTRAINTS
39701                | SyntaxKind::SET_ROLE
39702                | SyntaxKind::SET_SESSION_AUTH
39703                | SyntaxKind::SET_TRANSACTION
39704                | SyntaxKind::SHOW
39705                | SyntaxKind::TABLE
39706                | SyntaxKind::TRUNCATE
39707                | SyntaxKind::UNLISTEN
39708                | SyntaxKind::UPDATE
39709                | SyntaxKind::VACUUM
39710                | SyntaxKind::VALUES
39711        )
39712    }
39713    #[inline]
39714    fn cast(syntax: SyntaxNode) -> Option<Self> {
39715        let res = match syntax.kind() {
39716            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
39717            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
39718            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
39719            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
39720            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
39721                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
39722            }
39723            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
39724            SyntaxKind::ALTER_EVENT_TRIGGER => {
39725                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
39726            }
39727            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
39728            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
39729                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
39730            }
39731            SyntaxKind::ALTER_FOREIGN_TABLE => {
39732                Stmt::AlterForeignTable(AlterForeignTable { syntax })
39733            }
39734            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
39735            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
39736            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
39737            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
39738            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
39739            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
39740                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
39741            }
39742            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
39743            SyntaxKind::ALTER_OPERATOR_CLASS => {
39744                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
39745            }
39746            SyntaxKind::ALTER_OPERATOR_FAMILY => {
39747                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
39748            }
39749            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
39750            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
39751            SyntaxKind::ALTER_PROPERTY_GRAPH => {
39752                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
39753            }
39754            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
39755            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
39756            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
39757            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
39758            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
39759            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
39760            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
39761            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
39762            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
39763            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
39764            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
39765            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
39766            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
39767                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
39768            }
39769            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
39770                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
39771            }
39772            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
39773                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
39774            }
39775            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
39776                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
39777            }
39778            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
39779            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
39780            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
39781            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
39782            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
39783            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
39784            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
39785            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
39786            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
39787            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
39788            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
39789            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
39790            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
39791            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
39792            SyntaxKind::CREATE_ACCESS_METHOD => {
39793                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
39794            }
39795            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
39796            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
39797            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
39798            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
39799            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
39800            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
39801            SyntaxKind::CREATE_EVENT_TRIGGER => {
39802                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
39803            }
39804            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
39805            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
39806                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
39807            }
39808            SyntaxKind::CREATE_FOREIGN_TABLE => {
39809                Stmt::CreateForeignTable(CreateForeignTable { syntax })
39810            }
39811            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
39812            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
39813            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
39814            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
39815            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
39816                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
39817            }
39818            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
39819            SyntaxKind::CREATE_OPERATOR_CLASS => {
39820                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
39821            }
39822            SyntaxKind::CREATE_OPERATOR_FAMILY => {
39823                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
39824            }
39825            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
39826            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
39827            SyntaxKind::CREATE_PROPERTY_GRAPH => {
39828                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
39829            }
39830            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
39831            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
39832            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
39833            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
39834            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
39835            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
39836            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
39837            SyntaxKind::CREATE_SUBSCRIPTION => {
39838                Stmt::CreateSubscription(CreateSubscription { syntax })
39839            }
39840            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
39841            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
39842            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
39843            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
39844                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
39845            }
39846            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
39847                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
39848            }
39849            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
39850                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
39851            }
39852            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
39853                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
39854            }
39855            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
39856            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
39857            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
39858            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
39859            SyntaxKind::CREATE_USER_MAPPING => {
39860                Stmt::CreateUserMapping(CreateUserMapping { syntax })
39861            }
39862            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
39863            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
39864            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
39865            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
39866            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
39867            SyntaxKind::DO => Stmt::Do(Do { syntax }),
39868            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
39869            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
39870            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
39871            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
39872            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
39873            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
39874            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
39875            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
39876            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
39877            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
39878                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
39879            }
39880            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
39881            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
39882            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
39883            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
39884            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
39885            SyntaxKind::DROP_MATERIALIZED_VIEW => {
39886                Stmt::DropMaterializedView(DropMaterializedView { syntax })
39887            }
39888            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
39889            SyntaxKind::DROP_OPERATOR_CLASS => {
39890                Stmt::DropOperatorClass(DropOperatorClass { syntax })
39891            }
39892            SyntaxKind::DROP_OPERATOR_FAMILY => {
39893                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
39894            }
39895            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
39896            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
39897            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
39898            SyntaxKind::DROP_PROPERTY_GRAPH => {
39899                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
39900            }
39901            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
39902            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
39903            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
39904            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
39905            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
39906            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
39907            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
39908            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
39909            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
39910            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
39911            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
39912            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
39913                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
39914            }
39915            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
39916                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
39917            }
39918            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
39919                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
39920            }
39921            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
39922                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
39923            }
39924            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
39925            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
39926            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
39927            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
39928            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
39929            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
39930            SyntaxKind::EMPTY_STMT => Stmt::EmptyStmt(EmptyStmt { syntax }),
39931            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
39932            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
39933            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
39934            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
39935            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
39936                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
39937            }
39938            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
39939            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
39940            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
39941            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
39942            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
39943            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
39944            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
39945            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
39946            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
39947            SyntaxKind::PREPARE_TRANSACTION => {
39948                Stmt::PrepareTransaction(PrepareTransaction { syntax })
39949            }
39950            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
39951            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
39952            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
39953            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
39954            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
39955            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
39956            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
39957            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
39958            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
39959            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
39960            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
39961            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
39962            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
39963            SyntaxKind::SET => Stmt::Set(Set { syntax }),
39964            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
39965            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
39966            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
39967            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
39968            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
39969            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
39970            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
39971            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
39972            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
39973            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
39974            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
39975            _ => {
39976                return None;
39977            }
39978        };
39979        Some(res)
39980    }
39981    #[inline]
39982    fn syntax(&self) -> &SyntaxNode {
39983        match self {
39984            Stmt::AlterAggregate(it) => &it.syntax,
39985            Stmt::AlterCollation(it) => &it.syntax,
39986            Stmt::AlterConversion(it) => &it.syntax,
39987            Stmt::AlterDatabase(it) => &it.syntax,
39988            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
39989            Stmt::AlterDomain(it) => &it.syntax,
39990            Stmt::AlterEventTrigger(it) => &it.syntax,
39991            Stmt::AlterExtension(it) => &it.syntax,
39992            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
39993            Stmt::AlterForeignTable(it) => &it.syntax,
39994            Stmt::AlterFunction(it) => &it.syntax,
39995            Stmt::AlterGroup(it) => &it.syntax,
39996            Stmt::AlterIndex(it) => &it.syntax,
39997            Stmt::AlterLanguage(it) => &it.syntax,
39998            Stmt::AlterLargeObject(it) => &it.syntax,
39999            Stmt::AlterMaterializedView(it) => &it.syntax,
40000            Stmt::AlterOperator(it) => &it.syntax,
40001            Stmt::AlterOperatorClass(it) => &it.syntax,
40002            Stmt::AlterOperatorFamily(it) => &it.syntax,
40003            Stmt::AlterPolicy(it) => &it.syntax,
40004            Stmt::AlterProcedure(it) => &it.syntax,
40005            Stmt::AlterPropertyGraph(it) => &it.syntax,
40006            Stmt::AlterPublication(it) => &it.syntax,
40007            Stmt::AlterRole(it) => &it.syntax,
40008            Stmt::AlterRoutine(it) => &it.syntax,
40009            Stmt::AlterRule(it) => &it.syntax,
40010            Stmt::AlterSchema(it) => &it.syntax,
40011            Stmt::AlterSequence(it) => &it.syntax,
40012            Stmt::AlterServer(it) => &it.syntax,
40013            Stmt::AlterStatistics(it) => &it.syntax,
40014            Stmt::AlterSubscription(it) => &it.syntax,
40015            Stmt::AlterSystem(it) => &it.syntax,
40016            Stmt::AlterTable(it) => &it.syntax,
40017            Stmt::AlterTablespace(it) => &it.syntax,
40018            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
40019            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
40020            Stmt::AlterTextSearchParser(it) => &it.syntax,
40021            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
40022            Stmt::AlterTrigger(it) => &it.syntax,
40023            Stmt::AlterType(it) => &it.syntax,
40024            Stmt::AlterUser(it) => &it.syntax,
40025            Stmt::AlterUserMapping(it) => &it.syntax,
40026            Stmt::AlterView(it) => &it.syntax,
40027            Stmt::Analyze(it) => &it.syntax,
40028            Stmt::Begin(it) => &it.syntax,
40029            Stmt::Call(it) => &it.syntax,
40030            Stmt::Checkpoint(it) => &it.syntax,
40031            Stmt::Close(it) => &it.syntax,
40032            Stmt::Cluster(it) => &it.syntax,
40033            Stmt::CommentOn(it) => &it.syntax,
40034            Stmt::Commit(it) => &it.syntax,
40035            Stmt::Copy(it) => &it.syntax,
40036            Stmt::CreateAccessMethod(it) => &it.syntax,
40037            Stmt::CreateAggregate(it) => &it.syntax,
40038            Stmt::CreateCast(it) => &it.syntax,
40039            Stmt::CreateCollation(it) => &it.syntax,
40040            Stmt::CreateConversion(it) => &it.syntax,
40041            Stmt::CreateDatabase(it) => &it.syntax,
40042            Stmt::CreateDomain(it) => &it.syntax,
40043            Stmt::CreateEventTrigger(it) => &it.syntax,
40044            Stmt::CreateExtension(it) => &it.syntax,
40045            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
40046            Stmt::CreateForeignTable(it) => &it.syntax,
40047            Stmt::CreateFunction(it) => &it.syntax,
40048            Stmt::CreateGroup(it) => &it.syntax,
40049            Stmt::CreateIndex(it) => &it.syntax,
40050            Stmt::CreateLanguage(it) => &it.syntax,
40051            Stmt::CreateMaterializedView(it) => &it.syntax,
40052            Stmt::CreateOperator(it) => &it.syntax,
40053            Stmt::CreateOperatorClass(it) => &it.syntax,
40054            Stmt::CreateOperatorFamily(it) => &it.syntax,
40055            Stmt::CreatePolicy(it) => &it.syntax,
40056            Stmt::CreateProcedure(it) => &it.syntax,
40057            Stmt::CreatePropertyGraph(it) => &it.syntax,
40058            Stmt::CreatePublication(it) => &it.syntax,
40059            Stmt::CreateRole(it) => &it.syntax,
40060            Stmt::CreateRule(it) => &it.syntax,
40061            Stmt::CreateSchema(it) => &it.syntax,
40062            Stmt::CreateSequence(it) => &it.syntax,
40063            Stmt::CreateServer(it) => &it.syntax,
40064            Stmt::CreateStatistics(it) => &it.syntax,
40065            Stmt::CreateSubscription(it) => &it.syntax,
40066            Stmt::CreateTable(it) => &it.syntax,
40067            Stmt::CreateTableAs(it) => &it.syntax,
40068            Stmt::CreateTablespace(it) => &it.syntax,
40069            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
40070            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
40071            Stmt::CreateTextSearchParser(it) => &it.syntax,
40072            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
40073            Stmt::CreateTransform(it) => &it.syntax,
40074            Stmt::CreateTrigger(it) => &it.syntax,
40075            Stmt::CreateType(it) => &it.syntax,
40076            Stmt::CreateUser(it) => &it.syntax,
40077            Stmt::CreateUserMapping(it) => &it.syntax,
40078            Stmt::CreateView(it) => &it.syntax,
40079            Stmt::Deallocate(it) => &it.syntax,
40080            Stmt::Declare(it) => &it.syntax,
40081            Stmt::Delete(it) => &it.syntax,
40082            Stmt::Discard(it) => &it.syntax,
40083            Stmt::Do(it) => &it.syntax,
40084            Stmt::DropAccessMethod(it) => &it.syntax,
40085            Stmt::DropAggregate(it) => &it.syntax,
40086            Stmt::DropCast(it) => &it.syntax,
40087            Stmt::DropCollation(it) => &it.syntax,
40088            Stmt::DropConversion(it) => &it.syntax,
40089            Stmt::DropDatabase(it) => &it.syntax,
40090            Stmt::DropDomain(it) => &it.syntax,
40091            Stmt::DropEventTrigger(it) => &it.syntax,
40092            Stmt::DropExtension(it) => &it.syntax,
40093            Stmt::DropForeignDataWrapper(it) => &it.syntax,
40094            Stmt::DropForeignTable(it) => &it.syntax,
40095            Stmt::DropFunction(it) => &it.syntax,
40096            Stmt::DropGroup(it) => &it.syntax,
40097            Stmt::DropIndex(it) => &it.syntax,
40098            Stmt::DropLanguage(it) => &it.syntax,
40099            Stmt::DropMaterializedView(it) => &it.syntax,
40100            Stmt::DropOperator(it) => &it.syntax,
40101            Stmt::DropOperatorClass(it) => &it.syntax,
40102            Stmt::DropOperatorFamily(it) => &it.syntax,
40103            Stmt::DropOwned(it) => &it.syntax,
40104            Stmt::DropPolicy(it) => &it.syntax,
40105            Stmt::DropProcedure(it) => &it.syntax,
40106            Stmt::DropPropertyGraph(it) => &it.syntax,
40107            Stmt::DropPublication(it) => &it.syntax,
40108            Stmt::DropRole(it) => &it.syntax,
40109            Stmt::DropRoutine(it) => &it.syntax,
40110            Stmt::DropRule(it) => &it.syntax,
40111            Stmt::DropSchema(it) => &it.syntax,
40112            Stmt::DropSequence(it) => &it.syntax,
40113            Stmt::DropServer(it) => &it.syntax,
40114            Stmt::DropStatistics(it) => &it.syntax,
40115            Stmt::DropSubscription(it) => &it.syntax,
40116            Stmt::DropTable(it) => &it.syntax,
40117            Stmt::DropTablespace(it) => &it.syntax,
40118            Stmt::DropTextSearchConfig(it) => &it.syntax,
40119            Stmt::DropTextSearchDict(it) => &it.syntax,
40120            Stmt::DropTextSearchParser(it) => &it.syntax,
40121            Stmt::DropTextSearchTemplate(it) => &it.syntax,
40122            Stmt::DropTransform(it) => &it.syntax,
40123            Stmt::DropTrigger(it) => &it.syntax,
40124            Stmt::DropType(it) => &it.syntax,
40125            Stmt::DropUser(it) => &it.syntax,
40126            Stmt::DropUserMapping(it) => &it.syntax,
40127            Stmt::DropView(it) => &it.syntax,
40128            Stmt::EmptyStmt(it) => &it.syntax,
40129            Stmt::Execute(it) => &it.syntax,
40130            Stmt::Explain(it) => &it.syntax,
40131            Stmt::Fetch(it) => &it.syntax,
40132            Stmt::Grant(it) => &it.syntax,
40133            Stmt::ImportForeignSchema(it) => &it.syntax,
40134            Stmt::Insert(it) => &it.syntax,
40135            Stmt::Listen(it) => &it.syntax,
40136            Stmt::Load(it) => &it.syntax,
40137            Stmt::Lock(it) => &it.syntax,
40138            Stmt::Merge(it) => &it.syntax,
40139            Stmt::Move(it) => &it.syntax,
40140            Stmt::Notify(it) => &it.syntax,
40141            Stmt::ParenSelect(it) => &it.syntax,
40142            Stmt::Prepare(it) => &it.syntax,
40143            Stmt::PrepareTransaction(it) => &it.syntax,
40144            Stmt::Reassign(it) => &it.syntax,
40145            Stmt::Refresh(it) => &it.syntax,
40146            Stmt::Reindex(it) => &it.syntax,
40147            Stmt::ReleaseSavepoint(it) => &it.syntax,
40148            Stmt::Repack(it) => &it.syntax,
40149            Stmt::Reset(it) => &it.syntax,
40150            Stmt::ResetSessionAuth(it) => &it.syntax,
40151            Stmt::Revoke(it) => &it.syntax,
40152            Stmt::Rollback(it) => &it.syntax,
40153            Stmt::Savepoint(it) => &it.syntax,
40154            Stmt::SecurityLabel(it) => &it.syntax,
40155            Stmt::Select(it) => &it.syntax,
40156            Stmt::SelectInto(it) => &it.syntax,
40157            Stmt::Set(it) => &it.syntax,
40158            Stmt::SetConstraints(it) => &it.syntax,
40159            Stmt::SetRole(it) => &it.syntax,
40160            Stmt::SetSessionAuth(it) => &it.syntax,
40161            Stmt::SetTransaction(it) => &it.syntax,
40162            Stmt::Show(it) => &it.syntax,
40163            Stmt::Table(it) => &it.syntax,
40164            Stmt::Truncate(it) => &it.syntax,
40165            Stmt::Unlisten(it) => &it.syntax,
40166            Stmt::Update(it) => &it.syntax,
40167            Stmt::Vacuum(it) => &it.syntax,
40168            Stmt::Values(it) => &it.syntax,
40169        }
40170    }
40171}
40172impl From<AlterAggregate> for Stmt {
40173    #[inline]
40174    fn from(node: AlterAggregate) -> Stmt {
40175        Stmt::AlterAggregate(node)
40176    }
40177}
40178impl From<AlterCollation> for Stmt {
40179    #[inline]
40180    fn from(node: AlterCollation) -> Stmt {
40181        Stmt::AlterCollation(node)
40182    }
40183}
40184impl From<AlterConversion> for Stmt {
40185    #[inline]
40186    fn from(node: AlterConversion) -> Stmt {
40187        Stmt::AlterConversion(node)
40188    }
40189}
40190impl From<AlterDatabase> for Stmt {
40191    #[inline]
40192    fn from(node: AlterDatabase) -> Stmt {
40193        Stmt::AlterDatabase(node)
40194    }
40195}
40196impl From<AlterDefaultPrivileges> for Stmt {
40197    #[inline]
40198    fn from(node: AlterDefaultPrivileges) -> Stmt {
40199        Stmt::AlterDefaultPrivileges(node)
40200    }
40201}
40202impl From<AlterDomain> for Stmt {
40203    #[inline]
40204    fn from(node: AlterDomain) -> Stmt {
40205        Stmt::AlterDomain(node)
40206    }
40207}
40208impl From<AlterEventTrigger> for Stmt {
40209    #[inline]
40210    fn from(node: AlterEventTrigger) -> Stmt {
40211        Stmt::AlterEventTrigger(node)
40212    }
40213}
40214impl From<AlterExtension> for Stmt {
40215    #[inline]
40216    fn from(node: AlterExtension) -> Stmt {
40217        Stmt::AlterExtension(node)
40218    }
40219}
40220impl From<AlterForeignDataWrapper> for Stmt {
40221    #[inline]
40222    fn from(node: AlterForeignDataWrapper) -> Stmt {
40223        Stmt::AlterForeignDataWrapper(node)
40224    }
40225}
40226impl From<AlterForeignTable> for Stmt {
40227    #[inline]
40228    fn from(node: AlterForeignTable) -> Stmt {
40229        Stmt::AlterForeignTable(node)
40230    }
40231}
40232impl From<AlterFunction> for Stmt {
40233    #[inline]
40234    fn from(node: AlterFunction) -> Stmt {
40235        Stmt::AlterFunction(node)
40236    }
40237}
40238impl From<AlterGroup> for Stmt {
40239    #[inline]
40240    fn from(node: AlterGroup) -> Stmt {
40241        Stmt::AlterGroup(node)
40242    }
40243}
40244impl From<AlterIndex> for Stmt {
40245    #[inline]
40246    fn from(node: AlterIndex) -> Stmt {
40247        Stmt::AlterIndex(node)
40248    }
40249}
40250impl From<AlterLanguage> for Stmt {
40251    #[inline]
40252    fn from(node: AlterLanguage) -> Stmt {
40253        Stmt::AlterLanguage(node)
40254    }
40255}
40256impl From<AlterLargeObject> for Stmt {
40257    #[inline]
40258    fn from(node: AlterLargeObject) -> Stmt {
40259        Stmt::AlterLargeObject(node)
40260    }
40261}
40262impl From<AlterMaterializedView> for Stmt {
40263    #[inline]
40264    fn from(node: AlterMaterializedView) -> Stmt {
40265        Stmt::AlterMaterializedView(node)
40266    }
40267}
40268impl From<AlterOperator> for Stmt {
40269    #[inline]
40270    fn from(node: AlterOperator) -> Stmt {
40271        Stmt::AlterOperator(node)
40272    }
40273}
40274impl From<AlterOperatorClass> for Stmt {
40275    #[inline]
40276    fn from(node: AlterOperatorClass) -> Stmt {
40277        Stmt::AlterOperatorClass(node)
40278    }
40279}
40280impl From<AlterOperatorFamily> for Stmt {
40281    #[inline]
40282    fn from(node: AlterOperatorFamily) -> Stmt {
40283        Stmt::AlterOperatorFamily(node)
40284    }
40285}
40286impl From<AlterPolicy> for Stmt {
40287    #[inline]
40288    fn from(node: AlterPolicy) -> Stmt {
40289        Stmt::AlterPolicy(node)
40290    }
40291}
40292impl From<AlterProcedure> for Stmt {
40293    #[inline]
40294    fn from(node: AlterProcedure) -> Stmt {
40295        Stmt::AlterProcedure(node)
40296    }
40297}
40298impl From<AlterPropertyGraph> for Stmt {
40299    #[inline]
40300    fn from(node: AlterPropertyGraph) -> Stmt {
40301        Stmt::AlterPropertyGraph(node)
40302    }
40303}
40304impl From<AlterPublication> for Stmt {
40305    #[inline]
40306    fn from(node: AlterPublication) -> Stmt {
40307        Stmt::AlterPublication(node)
40308    }
40309}
40310impl From<AlterRole> for Stmt {
40311    #[inline]
40312    fn from(node: AlterRole) -> Stmt {
40313        Stmt::AlterRole(node)
40314    }
40315}
40316impl From<AlterRoutine> for Stmt {
40317    #[inline]
40318    fn from(node: AlterRoutine) -> Stmt {
40319        Stmt::AlterRoutine(node)
40320    }
40321}
40322impl From<AlterRule> for Stmt {
40323    #[inline]
40324    fn from(node: AlterRule) -> Stmt {
40325        Stmt::AlterRule(node)
40326    }
40327}
40328impl From<AlterSchema> for Stmt {
40329    #[inline]
40330    fn from(node: AlterSchema) -> Stmt {
40331        Stmt::AlterSchema(node)
40332    }
40333}
40334impl From<AlterSequence> for Stmt {
40335    #[inline]
40336    fn from(node: AlterSequence) -> Stmt {
40337        Stmt::AlterSequence(node)
40338    }
40339}
40340impl From<AlterServer> for Stmt {
40341    #[inline]
40342    fn from(node: AlterServer) -> Stmt {
40343        Stmt::AlterServer(node)
40344    }
40345}
40346impl From<AlterStatistics> for Stmt {
40347    #[inline]
40348    fn from(node: AlterStatistics) -> Stmt {
40349        Stmt::AlterStatistics(node)
40350    }
40351}
40352impl From<AlterSubscription> for Stmt {
40353    #[inline]
40354    fn from(node: AlterSubscription) -> Stmt {
40355        Stmt::AlterSubscription(node)
40356    }
40357}
40358impl From<AlterSystem> for Stmt {
40359    #[inline]
40360    fn from(node: AlterSystem) -> Stmt {
40361        Stmt::AlterSystem(node)
40362    }
40363}
40364impl From<AlterTable> for Stmt {
40365    #[inline]
40366    fn from(node: AlterTable) -> Stmt {
40367        Stmt::AlterTable(node)
40368    }
40369}
40370impl From<AlterTablespace> for Stmt {
40371    #[inline]
40372    fn from(node: AlterTablespace) -> Stmt {
40373        Stmt::AlterTablespace(node)
40374    }
40375}
40376impl From<AlterTextSearchConfiguration> for Stmt {
40377    #[inline]
40378    fn from(node: AlterTextSearchConfiguration) -> Stmt {
40379        Stmt::AlterTextSearchConfiguration(node)
40380    }
40381}
40382impl From<AlterTextSearchDictionary> for Stmt {
40383    #[inline]
40384    fn from(node: AlterTextSearchDictionary) -> Stmt {
40385        Stmt::AlterTextSearchDictionary(node)
40386    }
40387}
40388impl From<AlterTextSearchParser> for Stmt {
40389    #[inline]
40390    fn from(node: AlterTextSearchParser) -> Stmt {
40391        Stmt::AlterTextSearchParser(node)
40392    }
40393}
40394impl From<AlterTextSearchTemplate> for Stmt {
40395    #[inline]
40396    fn from(node: AlterTextSearchTemplate) -> Stmt {
40397        Stmt::AlterTextSearchTemplate(node)
40398    }
40399}
40400impl From<AlterTrigger> for Stmt {
40401    #[inline]
40402    fn from(node: AlterTrigger) -> Stmt {
40403        Stmt::AlterTrigger(node)
40404    }
40405}
40406impl From<AlterType> for Stmt {
40407    #[inline]
40408    fn from(node: AlterType) -> Stmt {
40409        Stmt::AlterType(node)
40410    }
40411}
40412impl From<AlterUser> for Stmt {
40413    #[inline]
40414    fn from(node: AlterUser) -> Stmt {
40415        Stmt::AlterUser(node)
40416    }
40417}
40418impl From<AlterUserMapping> for Stmt {
40419    #[inline]
40420    fn from(node: AlterUserMapping) -> Stmt {
40421        Stmt::AlterUserMapping(node)
40422    }
40423}
40424impl From<AlterView> for Stmt {
40425    #[inline]
40426    fn from(node: AlterView) -> Stmt {
40427        Stmt::AlterView(node)
40428    }
40429}
40430impl From<Analyze> for Stmt {
40431    #[inline]
40432    fn from(node: Analyze) -> Stmt {
40433        Stmt::Analyze(node)
40434    }
40435}
40436impl From<Begin> for Stmt {
40437    #[inline]
40438    fn from(node: Begin) -> Stmt {
40439        Stmt::Begin(node)
40440    }
40441}
40442impl From<Call> for Stmt {
40443    #[inline]
40444    fn from(node: Call) -> Stmt {
40445        Stmt::Call(node)
40446    }
40447}
40448impl From<Checkpoint> for Stmt {
40449    #[inline]
40450    fn from(node: Checkpoint) -> Stmt {
40451        Stmt::Checkpoint(node)
40452    }
40453}
40454impl From<Close> for Stmt {
40455    #[inline]
40456    fn from(node: Close) -> Stmt {
40457        Stmt::Close(node)
40458    }
40459}
40460impl From<Cluster> for Stmt {
40461    #[inline]
40462    fn from(node: Cluster) -> Stmt {
40463        Stmt::Cluster(node)
40464    }
40465}
40466impl From<CommentOn> for Stmt {
40467    #[inline]
40468    fn from(node: CommentOn) -> Stmt {
40469        Stmt::CommentOn(node)
40470    }
40471}
40472impl From<Commit> for Stmt {
40473    #[inline]
40474    fn from(node: Commit) -> Stmt {
40475        Stmt::Commit(node)
40476    }
40477}
40478impl From<Copy> for Stmt {
40479    #[inline]
40480    fn from(node: Copy) -> Stmt {
40481        Stmt::Copy(node)
40482    }
40483}
40484impl From<CreateAccessMethod> for Stmt {
40485    #[inline]
40486    fn from(node: CreateAccessMethod) -> Stmt {
40487        Stmt::CreateAccessMethod(node)
40488    }
40489}
40490impl From<CreateAggregate> for Stmt {
40491    #[inline]
40492    fn from(node: CreateAggregate) -> Stmt {
40493        Stmt::CreateAggregate(node)
40494    }
40495}
40496impl From<CreateCast> for Stmt {
40497    #[inline]
40498    fn from(node: CreateCast) -> Stmt {
40499        Stmt::CreateCast(node)
40500    }
40501}
40502impl From<CreateCollation> for Stmt {
40503    #[inline]
40504    fn from(node: CreateCollation) -> Stmt {
40505        Stmt::CreateCollation(node)
40506    }
40507}
40508impl From<CreateConversion> for Stmt {
40509    #[inline]
40510    fn from(node: CreateConversion) -> Stmt {
40511        Stmt::CreateConversion(node)
40512    }
40513}
40514impl From<CreateDatabase> for Stmt {
40515    #[inline]
40516    fn from(node: CreateDatabase) -> Stmt {
40517        Stmt::CreateDatabase(node)
40518    }
40519}
40520impl From<CreateDomain> for Stmt {
40521    #[inline]
40522    fn from(node: CreateDomain) -> Stmt {
40523        Stmt::CreateDomain(node)
40524    }
40525}
40526impl From<CreateEventTrigger> for Stmt {
40527    #[inline]
40528    fn from(node: CreateEventTrigger) -> Stmt {
40529        Stmt::CreateEventTrigger(node)
40530    }
40531}
40532impl From<CreateExtension> for Stmt {
40533    #[inline]
40534    fn from(node: CreateExtension) -> Stmt {
40535        Stmt::CreateExtension(node)
40536    }
40537}
40538impl From<CreateForeignDataWrapper> for Stmt {
40539    #[inline]
40540    fn from(node: CreateForeignDataWrapper) -> Stmt {
40541        Stmt::CreateForeignDataWrapper(node)
40542    }
40543}
40544impl From<CreateForeignTable> for Stmt {
40545    #[inline]
40546    fn from(node: CreateForeignTable) -> Stmt {
40547        Stmt::CreateForeignTable(node)
40548    }
40549}
40550impl From<CreateFunction> for Stmt {
40551    #[inline]
40552    fn from(node: CreateFunction) -> Stmt {
40553        Stmt::CreateFunction(node)
40554    }
40555}
40556impl From<CreateGroup> for Stmt {
40557    #[inline]
40558    fn from(node: CreateGroup) -> Stmt {
40559        Stmt::CreateGroup(node)
40560    }
40561}
40562impl From<CreateIndex> for Stmt {
40563    #[inline]
40564    fn from(node: CreateIndex) -> Stmt {
40565        Stmt::CreateIndex(node)
40566    }
40567}
40568impl From<CreateLanguage> for Stmt {
40569    #[inline]
40570    fn from(node: CreateLanguage) -> Stmt {
40571        Stmt::CreateLanguage(node)
40572    }
40573}
40574impl From<CreateMaterializedView> for Stmt {
40575    #[inline]
40576    fn from(node: CreateMaterializedView) -> Stmt {
40577        Stmt::CreateMaterializedView(node)
40578    }
40579}
40580impl From<CreateOperator> for Stmt {
40581    #[inline]
40582    fn from(node: CreateOperator) -> Stmt {
40583        Stmt::CreateOperator(node)
40584    }
40585}
40586impl From<CreateOperatorClass> for Stmt {
40587    #[inline]
40588    fn from(node: CreateOperatorClass) -> Stmt {
40589        Stmt::CreateOperatorClass(node)
40590    }
40591}
40592impl From<CreateOperatorFamily> for Stmt {
40593    #[inline]
40594    fn from(node: CreateOperatorFamily) -> Stmt {
40595        Stmt::CreateOperatorFamily(node)
40596    }
40597}
40598impl From<CreatePolicy> for Stmt {
40599    #[inline]
40600    fn from(node: CreatePolicy) -> Stmt {
40601        Stmt::CreatePolicy(node)
40602    }
40603}
40604impl From<CreateProcedure> for Stmt {
40605    #[inline]
40606    fn from(node: CreateProcedure) -> Stmt {
40607        Stmt::CreateProcedure(node)
40608    }
40609}
40610impl From<CreatePropertyGraph> for Stmt {
40611    #[inline]
40612    fn from(node: CreatePropertyGraph) -> Stmt {
40613        Stmt::CreatePropertyGraph(node)
40614    }
40615}
40616impl From<CreatePublication> for Stmt {
40617    #[inline]
40618    fn from(node: CreatePublication) -> Stmt {
40619        Stmt::CreatePublication(node)
40620    }
40621}
40622impl From<CreateRole> for Stmt {
40623    #[inline]
40624    fn from(node: CreateRole) -> Stmt {
40625        Stmt::CreateRole(node)
40626    }
40627}
40628impl From<CreateRule> for Stmt {
40629    #[inline]
40630    fn from(node: CreateRule) -> Stmt {
40631        Stmt::CreateRule(node)
40632    }
40633}
40634impl From<CreateSchema> for Stmt {
40635    #[inline]
40636    fn from(node: CreateSchema) -> Stmt {
40637        Stmt::CreateSchema(node)
40638    }
40639}
40640impl From<CreateSequence> for Stmt {
40641    #[inline]
40642    fn from(node: CreateSequence) -> Stmt {
40643        Stmt::CreateSequence(node)
40644    }
40645}
40646impl From<CreateServer> for Stmt {
40647    #[inline]
40648    fn from(node: CreateServer) -> Stmt {
40649        Stmt::CreateServer(node)
40650    }
40651}
40652impl From<CreateStatistics> for Stmt {
40653    #[inline]
40654    fn from(node: CreateStatistics) -> Stmt {
40655        Stmt::CreateStatistics(node)
40656    }
40657}
40658impl From<CreateSubscription> for Stmt {
40659    #[inline]
40660    fn from(node: CreateSubscription) -> Stmt {
40661        Stmt::CreateSubscription(node)
40662    }
40663}
40664impl From<CreateTable> for Stmt {
40665    #[inline]
40666    fn from(node: CreateTable) -> Stmt {
40667        Stmt::CreateTable(node)
40668    }
40669}
40670impl From<CreateTableAs> for Stmt {
40671    #[inline]
40672    fn from(node: CreateTableAs) -> Stmt {
40673        Stmt::CreateTableAs(node)
40674    }
40675}
40676impl From<CreateTablespace> for Stmt {
40677    #[inline]
40678    fn from(node: CreateTablespace) -> Stmt {
40679        Stmt::CreateTablespace(node)
40680    }
40681}
40682impl From<CreateTextSearchConfiguration> for Stmt {
40683    #[inline]
40684    fn from(node: CreateTextSearchConfiguration) -> Stmt {
40685        Stmt::CreateTextSearchConfiguration(node)
40686    }
40687}
40688impl From<CreateTextSearchDictionary> for Stmt {
40689    #[inline]
40690    fn from(node: CreateTextSearchDictionary) -> Stmt {
40691        Stmt::CreateTextSearchDictionary(node)
40692    }
40693}
40694impl From<CreateTextSearchParser> for Stmt {
40695    #[inline]
40696    fn from(node: CreateTextSearchParser) -> Stmt {
40697        Stmt::CreateTextSearchParser(node)
40698    }
40699}
40700impl From<CreateTextSearchTemplate> for Stmt {
40701    #[inline]
40702    fn from(node: CreateTextSearchTemplate) -> Stmt {
40703        Stmt::CreateTextSearchTemplate(node)
40704    }
40705}
40706impl From<CreateTransform> for Stmt {
40707    #[inline]
40708    fn from(node: CreateTransform) -> Stmt {
40709        Stmt::CreateTransform(node)
40710    }
40711}
40712impl From<CreateTrigger> for Stmt {
40713    #[inline]
40714    fn from(node: CreateTrigger) -> Stmt {
40715        Stmt::CreateTrigger(node)
40716    }
40717}
40718impl From<CreateType> for Stmt {
40719    #[inline]
40720    fn from(node: CreateType) -> Stmt {
40721        Stmt::CreateType(node)
40722    }
40723}
40724impl From<CreateUser> for Stmt {
40725    #[inline]
40726    fn from(node: CreateUser) -> Stmt {
40727        Stmt::CreateUser(node)
40728    }
40729}
40730impl From<CreateUserMapping> for Stmt {
40731    #[inline]
40732    fn from(node: CreateUserMapping) -> Stmt {
40733        Stmt::CreateUserMapping(node)
40734    }
40735}
40736impl From<CreateView> for Stmt {
40737    #[inline]
40738    fn from(node: CreateView) -> Stmt {
40739        Stmt::CreateView(node)
40740    }
40741}
40742impl From<Deallocate> for Stmt {
40743    #[inline]
40744    fn from(node: Deallocate) -> Stmt {
40745        Stmt::Deallocate(node)
40746    }
40747}
40748impl From<Declare> for Stmt {
40749    #[inline]
40750    fn from(node: Declare) -> Stmt {
40751        Stmt::Declare(node)
40752    }
40753}
40754impl From<Delete> for Stmt {
40755    #[inline]
40756    fn from(node: Delete) -> Stmt {
40757        Stmt::Delete(node)
40758    }
40759}
40760impl From<Discard> for Stmt {
40761    #[inline]
40762    fn from(node: Discard) -> Stmt {
40763        Stmt::Discard(node)
40764    }
40765}
40766impl From<Do> for Stmt {
40767    #[inline]
40768    fn from(node: Do) -> Stmt {
40769        Stmt::Do(node)
40770    }
40771}
40772impl From<DropAccessMethod> for Stmt {
40773    #[inline]
40774    fn from(node: DropAccessMethod) -> Stmt {
40775        Stmt::DropAccessMethod(node)
40776    }
40777}
40778impl From<DropAggregate> for Stmt {
40779    #[inline]
40780    fn from(node: DropAggregate) -> Stmt {
40781        Stmt::DropAggregate(node)
40782    }
40783}
40784impl From<DropCast> for Stmt {
40785    #[inline]
40786    fn from(node: DropCast) -> Stmt {
40787        Stmt::DropCast(node)
40788    }
40789}
40790impl From<DropCollation> for Stmt {
40791    #[inline]
40792    fn from(node: DropCollation) -> Stmt {
40793        Stmt::DropCollation(node)
40794    }
40795}
40796impl From<DropConversion> for Stmt {
40797    #[inline]
40798    fn from(node: DropConversion) -> Stmt {
40799        Stmt::DropConversion(node)
40800    }
40801}
40802impl From<DropDatabase> for Stmt {
40803    #[inline]
40804    fn from(node: DropDatabase) -> Stmt {
40805        Stmt::DropDatabase(node)
40806    }
40807}
40808impl From<DropDomain> for Stmt {
40809    #[inline]
40810    fn from(node: DropDomain) -> Stmt {
40811        Stmt::DropDomain(node)
40812    }
40813}
40814impl From<DropEventTrigger> for Stmt {
40815    #[inline]
40816    fn from(node: DropEventTrigger) -> Stmt {
40817        Stmt::DropEventTrigger(node)
40818    }
40819}
40820impl From<DropExtension> for Stmt {
40821    #[inline]
40822    fn from(node: DropExtension) -> Stmt {
40823        Stmt::DropExtension(node)
40824    }
40825}
40826impl From<DropForeignDataWrapper> for Stmt {
40827    #[inline]
40828    fn from(node: DropForeignDataWrapper) -> Stmt {
40829        Stmt::DropForeignDataWrapper(node)
40830    }
40831}
40832impl From<DropForeignTable> for Stmt {
40833    #[inline]
40834    fn from(node: DropForeignTable) -> Stmt {
40835        Stmt::DropForeignTable(node)
40836    }
40837}
40838impl From<DropFunction> for Stmt {
40839    #[inline]
40840    fn from(node: DropFunction) -> Stmt {
40841        Stmt::DropFunction(node)
40842    }
40843}
40844impl From<DropGroup> for Stmt {
40845    #[inline]
40846    fn from(node: DropGroup) -> Stmt {
40847        Stmt::DropGroup(node)
40848    }
40849}
40850impl From<DropIndex> for Stmt {
40851    #[inline]
40852    fn from(node: DropIndex) -> Stmt {
40853        Stmt::DropIndex(node)
40854    }
40855}
40856impl From<DropLanguage> for Stmt {
40857    #[inline]
40858    fn from(node: DropLanguage) -> Stmt {
40859        Stmt::DropLanguage(node)
40860    }
40861}
40862impl From<DropMaterializedView> for Stmt {
40863    #[inline]
40864    fn from(node: DropMaterializedView) -> Stmt {
40865        Stmt::DropMaterializedView(node)
40866    }
40867}
40868impl From<DropOperator> for Stmt {
40869    #[inline]
40870    fn from(node: DropOperator) -> Stmt {
40871        Stmt::DropOperator(node)
40872    }
40873}
40874impl From<DropOperatorClass> for Stmt {
40875    #[inline]
40876    fn from(node: DropOperatorClass) -> Stmt {
40877        Stmt::DropOperatorClass(node)
40878    }
40879}
40880impl From<DropOperatorFamily> for Stmt {
40881    #[inline]
40882    fn from(node: DropOperatorFamily) -> Stmt {
40883        Stmt::DropOperatorFamily(node)
40884    }
40885}
40886impl From<DropOwned> for Stmt {
40887    #[inline]
40888    fn from(node: DropOwned) -> Stmt {
40889        Stmt::DropOwned(node)
40890    }
40891}
40892impl From<DropPolicy> for Stmt {
40893    #[inline]
40894    fn from(node: DropPolicy) -> Stmt {
40895        Stmt::DropPolicy(node)
40896    }
40897}
40898impl From<DropProcedure> for Stmt {
40899    #[inline]
40900    fn from(node: DropProcedure) -> Stmt {
40901        Stmt::DropProcedure(node)
40902    }
40903}
40904impl From<DropPropertyGraph> for Stmt {
40905    #[inline]
40906    fn from(node: DropPropertyGraph) -> Stmt {
40907        Stmt::DropPropertyGraph(node)
40908    }
40909}
40910impl From<DropPublication> for Stmt {
40911    #[inline]
40912    fn from(node: DropPublication) -> Stmt {
40913        Stmt::DropPublication(node)
40914    }
40915}
40916impl From<DropRole> for Stmt {
40917    #[inline]
40918    fn from(node: DropRole) -> Stmt {
40919        Stmt::DropRole(node)
40920    }
40921}
40922impl From<DropRoutine> for Stmt {
40923    #[inline]
40924    fn from(node: DropRoutine) -> Stmt {
40925        Stmt::DropRoutine(node)
40926    }
40927}
40928impl From<DropRule> for Stmt {
40929    #[inline]
40930    fn from(node: DropRule) -> Stmt {
40931        Stmt::DropRule(node)
40932    }
40933}
40934impl From<DropSchema> for Stmt {
40935    #[inline]
40936    fn from(node: DropSchema) -> Stmt {
40937        Stmt::DropSchema(node)
40938    }
40939}
40940impl From<DropSequence> for Stmt {
40941    #[inline]
40942    fn from(node: DropSequence) -> Stmt {
40943        Stmt::DropSequence(node)
40944    }
40945}
40946impl From<DropServer> for Stmt {
40947    #[inline]
40948    fn from(node: DropServer) -> Stmt {
40949        Stmt::DropServer(node)
40950    }
40951}
40952impl From<DropStatistics> for Stmt {
40953    #[inline]
40954    fn from(node: DropStatistics) -> Stmt {
40955        Stmt::DropStatistics(node)
40956    }
40957}
40958impl From<DropSubscription> for Stmt {
40959    #[inline]
40960    fn from(node: DropSubscription) -> Stmt {
40961        Stmt::DropSubscription(node)
40962    }
40963}
40964impl From<DropTable> for Stmt {
40965    #[inline]
40966    fn from(node: DropTable) -> Stmt {
40967        Stmt::DropTable(node)
40968    }
40969}
40970impl From<DropTablespace> for Stmt {
40971    #[inline]
40972    fn from(node: DropTablespace) -> Stmt {
40973        Stmt::DropTablespace(node)
40974    }
40975}
40976impl From<DropTextSearchConfig> for Stmt {
40977    #[inline]
40978    fn from(node: DropTextSearchConfig) -> Stmt {
40979        Stmt::DropTextSearchConfig(node)
40980    }
40981}
40982impl From<DropTextSearchDict> for Stmt {
40983    #[inline]
40984    fn from(node: DropTextSearchDict) -> Stmt {
40985        Stmt::DropTextSearchDict(node)
40986    }
40987}
40988impl From<DropTextSearchParser> for Stmt {
40989    #[inline]
40990    fn from(node: DropTextSearchParser) -> Stmt {
40991        Stmt::DropTextSearchParser(node)
40992    }
40993}
40994impl From<DropTextSearchTemplate> for Stmt {
40995    #[inline]
40996    fn from(node: DropTextSearchTemplate) -> Stmt {
40997        Stmt::DropTextSearchTemplate(node)
40998    }
40999}
41000impl From<DropTransform> for Stmt {
41001    #[inline]
41002    fn from(node: DropTransform) -> Stmt {
41003        Stmt::DropTransform(node)
41004    }
41005}
41006impl From<DropTrigger> for Stmt {
41007    #[inline]
41008    fn from(node: DropTrigger) -> Stmt {
41009        Stmt::DropTrigger(node)
41010    }
41011}
41012impl From<DropType> for Stmt {
41013    #[inline]
41014    fn from(node: DropType) -> Stmt {
41015        Stmt::DropType(node)
41016    }
41017}
41018impl From<DropUser> for Stmt {
41019    #[inline]
41020    fn from(node: DropUser) -> Stmt {
41021        Stmt::DropUser(node)
41022    }
41023}
41024impl From<DropUserMapping> for Stmt {
41025    #[inline]
41026    fn from(node: DropUserMapping) -> Stmt {
41027        Stmt::DropUserMapping(node)
41028    }
41029}
41030impl From<DropView> for Stmt {
41031    #[inline]
41032    fn from(node: DropView) -> Stmt {
41033        Stmt::DropView(node)
41034    }
41035}
41036impl From<EmptyStmt> for Stmt {
41037    #[inline]
41038    fn from(node: EmptyStmt) -> Stmt {
41039        Stmt::EmptyStmt(node)
41040    }
41041}
41042impl From<Execute> for Stmt {
41043    #[inline]
41044    fn from(node: Execute) -> Stmt {
41045        Stmt::Execute(node)
41046    }
41047}
41048impl From<Explain> for Stmt {
41049    #[inline]
41050    fn from(node: Explain) -> Stmt {
41051        Stmt::Explain(node)
41052    }
41053}
41054impl From<Fetch> for Stmt {
41055    #[inline]
41056    fn from(node: Fetch) -> Stmt {
41057        Stmt::Fetch(node)
41058    }
41059}
41060impl From<Grant> for Stmt {
41061    #[inline]
41062    fn from(node: Grant) -> Stmt {
41063        Stmt::Grant(node)
41064    }
41065}
41066impl From<ImportForeignSchema> for Stmt {
41067    #[inline]
41068    fn from(node: ImportForeignSchema) -> Stmt {
41069        Stmt::ImportForeignSchema(node)
41070    }
41071}
41072impl From<Insert> for Stmt {
41073    #[inline]
41074    fn from(node: Insert) -> Stmt {
41075        Stmt::Insert(node)
41076    }
41077}
41078impl From<Listen> for Stmt {
41079    #[inline]
41080    fn from(node: Listen) -> Stmt {
41081        Stmt::Listen(node)
41082    }
41083}
41084impl From<Load> for Stmt {
41085    #[inline]
41086    fn from(node: Load) -> Stmt {
41087        Stmt::Load(node)
41088    }
41089}
41090impl From<Lock> for Stmt {
41091    #[inline]
41092    fn from(node: Lock) -> Stmt {
41093        Stmt::Lock(node)
41094    }
41095}
41096impl From<Merge> for Stmt {
41097    #[inline]
41098    fn from(node: Merge) -> Stmt {
41099        Stmt::Merge(node)
41100    }
41101}
41102impl From<Move> for Stmt {
41103    #[inline]
41104    fn from(node: Move) -> Stmt {
41105        Stmt::Move(node)
41106    }
41107}
41108impl From<Notify> for Stmt {
41109    #[inline]
41110    fn from(node: Notify) -> Stmt {
41111        Stmt::Notify(node)
41112    }
41113}
41114impl From<ParenSelect> for Stmt {
41115    #[inline]
41116    fn from(node: ParenSelect) -> Stmt {
41117        Stmt::ParenSelect(node)
41118    }
41119}
41120impl From<Prepare> for Stmt {
41121    #[inline]
41122    fn from(node: Prepare) -> Stmt {
41123        Stmt::Prepare(node)
41124    }
41125}
41126impl From<PrepareTransaction> for Stmt {
41127    #[inline]
41128    fn from(node: PrepareTransaction) -> Stmt {
41129        Stmt::PrepareTransaction(node)
41130    }
41131}
41132impl From<Reassign> for Stmt {
41133    #[inline]
41134    fn from(node: Reassign) -> Stmt {
41135        Stmt::Reassign(node)
41136    }
41137}
41138impl From<Refresh> for Stmt {
41139    #[inline]
41140    fn from(node: Refresh) -> Stmt {
41141        Stmt::Refresh(node)
41142    }
41143}
41144impl From<Reindex> for Stmt {
41145    #[inline]
41146    fn from(node: Reindex) -> Stmt {
41147        Stmt::Reindex(node)
41148    }
41149}
41150impl From<ReleaseSavepoint> for Stmt {
41151    #[inline]
41152    fn from(node: ReleaseSavepoint) -> Stmt {
41153        Stmt::ReleaseSavepoint(node)
41154    }
41155}
41156impl From<Repack> for Stmt {
41157    #[inline]
41158    fn from(node: Repack) -> Stmt {
41159        Stmt::Repack(node)
41160    }
41161}
41162impl From<Reset> for Stmt {
41163    #[inline]
41164    fn from(node: Reset) -> Stmt {
41165        Stmt::Reset(node)
41166    }
41167}
41168impl From<ResetSessionAuth> for Stmt {
41169    #[inline]
41170    fn from(node: ResetSessionAuth) -> Stmt {
41171        Stmt::ResetSessionAuth(node)
41172    }
41173}
41174impl From<Revoke> for Stmt {
41175    #[inline]
41176    fn from(node: Revoke) -> Stmt {
41177        Stmt::Revoke(node)
41178    }
41179}
41180impl From<Rollback> for Stmt {
41181    #[inline]
41182    fn from(node: Rollback) -> Stmt {
41183        Stmt::Rollback(node)
41184    }
41185}
41186impl From<Savepoint> for Stmt {
41187    #[inline]
41188    fn from(node: Savepoint) -> Stmt {
41189        Stmt::Savepoint(node)
41190    }
41191}
41192impl From<SecurityLabel> for Stmt {
41193    #[inline]
41194    fn from(node: SecurityLabel) -> Stmt {
41195        Stmt::SecurityLabel(node)
41196    }
41197}
41198impl From<Select> for Stmt {
41199    #[inline]
41200    fn from(node: Select) -> Stmt {
41201        Stmt::Select(node)
41202    }
41203}
41204impl From<SelectInto> for Stmt {
41205    #[inline]
41206    fn from(node: SelectInto) -> Stmt {
41207        Stmt::SelectInto(node)
41208    }
41209}
41210impl From<Set> for Stmt {
41211    #[inline]
41212    fn from(node: Set) -> Stmt {
41213        Stmt::Set(node)
41214    }
41215}
41216impl From<SetConstraints> for Stmt {
41217    #[inline]
41218    fn from(node: SetConstraints) -> Stmt {
41219        Stmt::SetConstraints(node)
41220    }
41221}
41222impl From<SetRole> for Stmt {
41223    #[inline]
41224    fn from(node: SetRole) -> Stmt {
41225        Stmt::SetRole(node)
41226    }
41227}
41228impl From<SetSessionAuth> for Stmt {
41229    #[inline]
41230    fn from(node: SetSessionAuth) -> Stmt {
41231        Stmt::SetSessionAuth(node)
41232    }
41233}
41234impl From<SetTransaction> for Stmt {
41235    #[inline]
41236    fn from(node: SetTransaction) -> Stmt {
41237        Stmt::SetTransaction(node)
41238    }
41239}
41240impl From<Show> for Stmt {
41241    #[inline]
41242    fn from(node: Show) -> Stmt {
41243        Stmt::Show(node)
41244    }
41245}
41246impl From<Table> for Stmt {
41247    #[inline]
41248    fn from(node: Table) -> Stmt {
41249        Stmt::Table(node)
41250    }
41251}
41252impl From<Truncate> for Stmt {
41253    #[inline]
41254    fn from(node: Truncate) -> Stmt {
41255        Stmt::Truncate(node)
41256    }
41257}
41258impl From<Unlisten> for Stmt {
41259    #[inline]
41260    fn from(node: Unlisten) -> Stmt {
41261        Stmt::Unlisten(node)
41262    }
41263}
41264impl From<Update> for Stmt {
41265    #[inline]
41266    fn from(node: Update) -> Stmt {
41267        Stmt::Update(node)
41268    }
41269}
41270impl From<Vacuum> for Stmt {
41271    #[inline]
41272    fn from(node: Vacuum) -> Stmt {
41273        Stmt::Vacuum(node)
41274    }
41275}
41276impl From<Values> for Stmt {
41277    #[inline]
41278    fn from(node: Values) -> Stmt {
41279        Stmt::Values(node)
41280    }
41281}
41282impl AstNode for TableArg {
41283    #[inline]
41284    fn can_cast(kind: SyntaxKind) -> bool {
41285        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
41286    }
41287    #[inline]
41288    fn cast(syntax: SyntaxNode) -> Option<Self> {
41289        let res = match syntax.kind() {
41290            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
41291            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
41292            _ => {
41293                if let Some(result) = TableConstraint::cast(syntax) {
41294                    return Some(TableArg::TableConstraint(result));
41295                }
41296                return None;
41297            }
41298        };
41299        Some(res)
41300    }
41301    #[inline]
41302    fn syntax(&self) -> &SyntaxNode {
41303        match self {
41304            TableArg::Column(it) => &it.syntax,
41305            TableArg::LikeClause(it) => &it.syntax,
41306            TableArg::TableConstraint(it) => it.syntax(),
41307        }
41308    }
41309}
41310impl From<Column> for TableArg {
41311    #[inline]
41312    fn from(node: Column) -> TableArg {
41313        TableArg::Column(node)
41314    }
41315}
41316impl From<LikeClause> for TableArg {
41317    #[inline]
41318    fn from(node: LikeClause) -> TableArg {
41319        TableArg::LikeClause(node)
41320    }
41321}
41322impl AstNode for TableConstraint {
41323    #[inline]
41324    fn can_cast(kind: SyntaxKind) -> bool {
41325        matches!(
41326            kind,
41327            SyntaxKind::CHECK_CONSTRAINT
41328                | SyntaxKind::EXCLUDE_CONSTRAINT
41329                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
41330                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
41331                | SyntaxKind::UNIQUE_CONSTRAINT
41332        )
41333    }
41334    #[inline]
41335    fn cast(syntax: SyntaxNode) -> Option<Self> {
41336        let res = match syntax.kind() {
41337            SyntaxKind::CHECK_CONSTRAINT => {
41338                TableConstraint::CheckConstraint(CheckConstraint { syntax })
41339            }
41340            SyntaxKind::EXCLUDE_CONSTRAINT => {
41341                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
41342            }
41343            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
41344                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
41345            }
41346            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
41347                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
41348            }
41349            SyntaxKind::UNIQUE_CONSTRAINT => {
41350                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
41351            }
41352            _ => {
41353                return None;
41354            }
41355        };
41356        Some(res)
41357    }
41358    #[inline]
41359    fn syntax(&self) -> &SyntaxNode {
41360        match self {
41361            TableConstraint::CheckConstraint(it) => &it.syntax,
41362            TableConstraint::ExcludeConstraint(it) => &it.syntax,
41363            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
41364            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
41365            TableConstraint::UniqueConstraint(it) => &it.syntax,
41366        }
41367    }
41368}
41369impl From<CheckConstraint> for TableConstraint {
41370    #[inline]
41371    fn from(node: CheckConstraint) -> TableConstraint {
41372        TableConstraint::CheckConstraint(node)
41373    }
41374}
41375impl From<ExcludeConstraint> for TableConstraint {
41376    #[inline]
41377    fn from(node: ExcludeConstraint) -> TableConstraint {
41378        TableConstraint::ExcludeConstraint(node)
41379    }
41380}
41381impl From<ForeignKeyConstraint> for TableConstraint {
41382    #[inline]
41383    fn from(node: ForeignKeyConstraint) -> TableConstraint {
41384        TableConstraint::ForeignKeyConstraint(node)
41385    }
41386}
41387impl From<PrimaryKeyConstraint> for TableConstraint {
41388    #[inline]
41389    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
41390        TableConstraint::PrimaryKeyConstraint(node)
41391    }
41392}
41393impl From<UniqueConstraint> for TableConstraint {
41394    #[inline]
41395    fn from(node: UniqueConstraint) -> TableConstraint {
41396        TableConstraint::UniqueConstraint(node)
41397    }
41398}
41399impl AstNode for Timezone {
41400    #[inline]
41401    fn can_cast(kind: SyntaxKind) -> bool {
41402        matches!(
41403            kind,
41404            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
41405        )
41406    }
41407    #[inline]
41408    fn cast(syntax: SyntaxNode) -> Option<Self> {
41409        let res = match syntax.kind() {
41410            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
41411            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
41412            _ => {
41413                return None;
41414            }
41415        };
41416        Some(res)
41417    }
41418    #[inline]
41419    fn syntax(&self) -> &SyntaxNode {
41420        match self {
41421            Timezone::WithTimezone(it) => &it.syntax,
41422            Timezone::WithoutTimezone(it) => &it.syntax,
41423        }
41424    }
41425}
41426impl From<WithTimezone> for Timezone {
41427    #[inline]
41428    fn from(node: WithTimezone) -> Timezone {
41429        Timezone::WithTimezone(node)
41430    }
41431}
41432impl From<WithoutTimezone> for Timezone {
41433    #[inline]
41434    fn from(node: WithoutTimezone) -> Timezone {
41435        Timezone::WithoutTimezone(node)
41436    }
41437}
41438impl AstNode for TransactionMode {
41439    #[inline]
41440    fn can_cast(kind: SyntaxKind) -> bool {
41441        matches!(
41442            kind,
41443            SyntaxKind::DEFERRABLE
41444                | SyntaxKind::NOT_DEFERRABLE
41445                | SyntaxKind::READ_COMMITTED
41446                | SyntaxKind::READ_ONLY
41447                | SyntaxKind::READ_UNCOMMITTED
41448                | SyntaxKind::READ_WRITE
41449                | SyntaxKind::REPEATABLE_READ
41450                | SyntaxKind::SERIALIZABLE
41451        )
41452    }
41453    #[inline]
41454    fn cast(syntax: SyntaxNode) -> Option<Self> {
41455        let res = match syntax.kind() {
41456            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
41457            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
41458            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
41459            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
41460            SyntaxKind::READ_UNCOMMITTED => {
41461                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
41462            }
41463            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
41464            SyntaxKind::REPEATABLE_READ => {
41465                TransactionMode::RepeatableRead(RepeatableRead { syntax })
41466            }
41467            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
41468            _ => {
41469                return None;
41470            }
41471        };
41472        Some(res)
41473    }
41474    #[inline]
41475    fn syntax(&self) -> &SyntaxNode {
41476        match self {
41477            TransactionMode::Deferrable(it) => &it.syntax,
41478            TransactionMode::NotDeferrable(it) => &it.syntax,
41479            TransactionMode::ReadCommitted(it) => &it.syntax,
41480            TransactionMode::ReadOnly(it) => &it.syntax,
41481            TransactionMode::ReadUncommitted(it) => &it.syntax,
41482            TransactionMode::ReadWrite(it) => &it.syntax,
41483            TransactionMode::RepeatableRead(it) => &it.syntax,
41484            TransactionMode::Serializable(it) => &it.syntax,
41485        }
41486    }
41487}
41488impl From<Deferrable> for TransactionMode {
41489    #[inline]
41490    fn from(node: Deferrable) -> TransactionMode {
41491        TransactionMode::Deferrable(node)
41492    }
41493}
41494impl From<NotDeferrable> for TransactionMode {
41495    #[inline]
41496    fn from(node: NotDeferrable) -> TransactionMode {
41497        TransactionMode::NotDeferrable(node)
41498    }
41499}
41500impl From<ReadCommitted> for TransactionMode {
41501    #[inline]
41502    fn from(node: ReadCommitted) -> TransactionMode {
41503        TransactionMode::ReadCommitted(node)
41504    }
41505}
41506impl From<ReadOnly> for TransactionMode {
41507    #[inline]
41508    fn from(node: ReadOnly) -> TransactionMode {
41509        TransactionMode::ReadOnly(node)
41510    }
41511}
41512impl From<ReadUncommitted> for TransactionMode {
41513    #[inline]
41514    fn from(node: ReadUncommitted) -> TransactionMode {
41515        TransactionMode::ReadUncommitted(node)
41516    }
41517}
41518impl From<ReadWrite> for TransactionMode {
41519    #[inline]
41520    fn from(node: ReadWrite) -> TransactionMode {
41521        TransactionMode::ReadWrite(node)
41522    }
41523}
41524impl From<RepeatableRead> for TransactionMode {
41525    #[inline]
41526    fn from(node: RepeatableRead) -> TransactionMode {
41527        TransactionMode::RepeatableRead(node)
41528    }
41529}
41530impl From<Serializable> for TransactionMode {
41531    #[inline]
41532    fn from(node: Serializable) -> TransactionMode {
41533        TransactionMode::Serializable(node)
41534    }
41535}
41536impl AstNode for Type {
41537    #[inline]
41538    fn can_cast(kind: SyntaxKind) -> bool {
41539        matches!(
41540            kind,
41541            SyntaxKind::ARRAY_TYPE
41542                | SyntaxKind::BIT_TYPE
41543                | SyntaxKind::CHAR_TYPE
41544                | SyntaxKind::DOUBLE_TYPE
41545                | SyntaxKind::EXPR_TYPE
41546                | SyntaxKind::INTERVAL_TYPE
41547                | SyntaxKind::PATH_TYPE
41548                | SyntaxKind::PERCENT_TYPE
41549                | SyntaxKind::TIME_TYPE
41550        )
41551    }
41552    #[inline]
41553    fn cast(syntax: SyntaxNode) -> Option<Self> {
41554        let res = match syntax.kind() {
41555            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
41556            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
41557            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
41558            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
41559            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
41560            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
41561            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
41562            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
41563            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
41564            _ => {
41565                return None;
41566            }
41567        };
41568        Some(res)
41569    }
41570    #[inline]
41571    fn syntax(&self) -> &SyntaxNode {
41572        match self {
41573            Type::ArrayType(it) => &it.syntax,
41574            Type::BitType(it) => &it.syntax,
41575            Type::CharType(it) => &it.syntax,
41576            Type::DoubleType(it) => &it.syntax,
41577            Type::ExprType(it) => &it.syntax,
41578            Type::IntervalType(it) => &it.syntax,
41579            Type::PathType(it) => &it.syntax,
41580            Type::PercentType(it) => &it.syntax,
41581            Type::TimeType(it) => &it.syntax,
41582        }
41583    }
41584}
41585impl From<ArrayType> for Type {
41586    #[inline]
41587    fn from(node: ArrayType) -> Type {
41588        Type::ArrayType(node)
41589    }
41590}
41591impl From<BitType> for Type {
41592    #[inline]
41593    fn from(node: BitType) -> Type {
41594        Type::BitType(node)
41595    }
41596}
41597impl From<CharType> for Type {
41598    #[inline]
41599    fn from(node: CharType) -> Type {
41600        Type::CharType(node)
41601    }
41602}
41603impl From<DoubleType> for Type {
41604    #[inline]
41605    fn from(node: DoubleType) -> Type {
41606        Type::DoubleType(node)
41607    }
41608}
41609impl From<ExprType> for Type {
41610    #[inline]
41611    fn from(node: ExprType) -> Type {
41612        Type::ExprType(node)
41613    }
41614}
41615impl From<IntervalType> for Type {
41616    #[inline]
41617    fn from(node: IntervalType) -> Type {
41618        Type::IntervalType(node)
41619    }
41620}
41621impl From<PathType> for Type {
41622    #[inline]
41623    fn from(node: PathType) -> Type {
41624        Type::PathType(node)
41625    }
41626}
41627impl From<PercentType> for Type {
41628    #[inline]
41629    fn from(node: PercentType) -> Type {
41630        Type::PercentType(node)
41631    }
41632}
41633impl From<TimeType> for Type {
41634    #[inline]
41635    fn from(node: TimeType) -> Type {
41636        Type::TimeType(node)
41637    }
41638}
41639impl AstNode for ValuePosition {
41640    #[inline]
41641    fn can_cast(kind: SyntaxKind) -> bool {
41642        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
41643    }
41644    #[inline]
41645    fn cast(syntax: SyntaxNode) -> Option<Self> {
41646        let res = match syntax.kind() {
41647            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
41648            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
41649            _ => {
41650                return None;
41651            }
41652        };
41653        Some(res)
41654    }
41655    #[inline]
41656    fn syntax(&self) -> &SyntaxNode {
41657        match self {
41658            ValuePosition::AfterValue(it) => &it.syntax,
41659            ValuePosition::BeforeValue(it) => &it.syntax,
41660        }
41661    }
41662}
41663impl From<AfterValue> for ValuePosition {
41664    #[inline]
41665    fn from(node: AfterValue) -> ValuePosition {
41666        ValuePosition::AfterValue(node)
41667    }
41668}
41669impl From<BeforeValue> for ValuePosition {
41670    #[inline]
41671    fn from(node: BeforeValue) -> ValuePosition {
41672        ValuePosition::BeforeValue(node)
41673    }
41674}
41675impl AstNode for WithQuery {
41676    #[inline]
41677    fn can_cast(kind: SyntaxKind) -> bool {
41678        matches!(
41679            kind,
41680            SyntaxKind::COMPOUND_SELECT
41681                | SyntaxKind::DELETE
41682                | SyntaxKind::INSERT
41683                | SyntaxKind::MERGE
41684                | SyntaxKind::PAREN_SELECT
41685                | SyntaxKind::SELECT
41686                | SyntaxKind::TABLE
41687                | SyntaxKind::UPDATE
41688                | SyntaxKind::VALUES
41689        )
41690    }
41691    #[inline]
41692    fn cast(syntax: SyntaxNode) -> Option<Self> {
41693        let res = match syntax.kind() {
41694            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
41695            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
41696            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
41697            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
41698            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
41699            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
41700            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
41701            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
41702            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
41703            _ => {
41704                return None;
41705            }
41706        };
41707        Some(res)
41708    }
41709    #[inline]
41710    fn syntax(&self) -> &SyntaxNode {
41711        match self {
41712            WithQuery::CompoundSelect(it) => &it.syntax,
41713            WithQuery::Delete(it) => &it.syntax,
41714            WithQuery::Insert(it) => &it.syntax,
41715            WithQuery::Merge(it) => &it.syntax,
41716            WithQuery::ParenSelect(it) => &it.syntax,
41717            WithQuery::Select(it) => &it.syntax,
41718            WithQuery::Table(it) => &it.syntax,
41719            WithQuery::Update(it) => &it.syntax,
41720            WithQuery::Values(it) => &it.syntax,
41721        }
41722    }
41723}
41724impl From<CompoundSelect> for WithQuery {
41725    #[inline]
41726    fn from(node: CompoundSelect) -> WithQuery {
41727        WithQuery::CompoundSelect(node)
41728    }
41729}
41730impl From<Delete> for WithQuery {
41731    #[inline]
41732    fn from(node: Delete) -> WithQuery {
41733        WithQuery::Delete(node)
41734    }
41735}
41736impl From<Insert> for WithQuery {
41737    #[inline]
41738    fn from(node: Insert) -> WithQuery {
41739        WithQuery::Insert(node)
41740    }
41741}
41742impl From<Merge> for WithQuery {
41743    #[inline]
41744    fn from(node: Merge) -> WithQuery {
41745        WithQuery::Merge(node)
41746    }
41747}
41748impl From<ParenSelect> for WithQuery {
41749    #[inline]
41750    fn from(node: ParenSelect) -> WithQuery {
41751        WithQuery::ParenSelect(node)
41752    }
41753}
41754impl From<Select> for WithQuery {
41755    #[inline]
41756    fn from(node: Select) -> WithQuery {
41757        WithQuery::Select(node)
41758    }
41759}
41760impl From<Table> for WithQuery {
41761    #[inline]
41762    fn from(node: Table) -> WithQuery {
41763        WithQuery::Table(node)
41764    }
41765}
41766impl From<Update> for WithQuery {
41767    #[inline]
41768    fn from(node: Update) -> WithQuery {
41769        WithQuery::Update(node)
41770    }
41771}
41772impl From<Values> for WithQuery {
41773    #[inline]
41774    fn from(node: Values) -> WithQuery {
41775        WithQuery::Values(node)
41776    }
41777}