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 AddAttribute {
12    pub(crate) syntax: SyntaxNode,
13}
14impl AddAttribute {
15    #[inline]
16    pub fn cascade(&self) -> Option<Cascade> {
17        support::child(&self.syntax)
18    }
19    #[inline]
20    pub fn collate(&self) -> Option<Collate> {
21        support::child(&self.syntax)
22    }
23    #[inline]
24    pub fn name(&self) -> Option<Name> {
25        support::child(&self.syntax)
26    }
27    #[inline]
28    pub fn restrict(&self) -> Option<Restrict> {
29        support::child(&self.syntax)
30    }
31    #[inline]
32    pub fn ty(&self) -> Option<Type> {
33        support::child(&self.syntax)
34    }
35    #[inline]
36    pub fn add_token(&self) -> Option<SyntaxToken> {
37        support::token(&self.syntax, SyntaxKind::ADD_KW)
38    }
39    #[inline]
40    pub fn attribute_token(&self) -> Option<SyntaxToken> {
41        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
42    }
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Hash)]
46pub struct AddColumn {
47    pub(crate) syntax: SyntaxNode,
48}
49impl AddColumn {
50    #[inline]
51    pub fn collate(&self) -> Option<Collate> {
52        support::child(&self.syntax)
53    }
54    #[inline]
55    pub fn constraints(&self) -> AstChildren<Constraint> {
56        support::children(&self.syntax)
57    }
58    #[inline]
59    pub fn if_not_exists(&self) -> Option<IfNotExists> {
60        support::child(&self.syntax)
61    }
62    #[inline]
63    pub fn name(&self) -> Option<Name> {
64        support::child(&self.syntax)
65    }
66    #[inline]
67    pub fn ty(&self) -> Option<Type> {
68        support::child(&self.syntax)
69    }
70    #[inline]
71    pub fn add_token(&self) -> Option<SyntaxToken> {
72        support::token(&self.syntax, SyntaxKind::ADD_KW)
73    }
74    #[inline]
75    pub fn column_token(&self) -> Option<SyntaxToken> {
76        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
77    }
78}
79
80#[derive(Debug, Clone, PartialEq, Eq, Hash)]
81pub struct AddConstraint {
82    pub(crate) syntax: SyntaxNode,
83}
84impl AddConstraint {
85    #[inline]
86    pub fn constraint(&self) -> Option<Constraint> {
87        support::child(&self.syntax)
88    }
89    #[inline]
90    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
91        support::child(&self.syntax)
92    }
93    #[inline]
94    pub fn enforced(&self) -> Option<Enforced> {
95        support::child(&self.syntax)
96    }
97    #[inline]
98    pub fn initially_deferred_constraint_option(
99        &self,
100    ) -> Option<InitiallyDeferredConstraintOption> {
101        support::child(&self.syntax)
102    }
103    #[inline]
104    pub fn initially_immediate_constraint_option(
105        &self,
106    ) -> Option<InitiallyImmediateConstraintOption> {
107        support::child(&self.syntax)
108    }
109    #[inline]
110    pub fn no_inherit(&self) -> Option<NoInherit> {
111        support::child(&self.syntax)
112    }
113    #[inline]
114    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
115        support::child(&self.syntax)
116    }
117    #[inline]
118    pub fn not_enforced(&self) -> Option<NotEnforced> {
119        support::child(&self.syntax)
120    }
121    #[inline]
122    pub fn not_valid(&self) -> Option<NotValid> {
123        support::child(&self.syntax)
124    }
125    #[inline]
126    pub fn add_token(&self) -> Option<SyntaxToken> {
127        support::token(&self.syntax, SyntaxKind::ADD_KW)
128    }
129}
130
131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
132pub struct AddGenerated {
133    pub(crate) syntax: SyntaxNode,
134}
135impl AddGenerated {
136    #[inline]
137    pub fn add_token(&self) -> Option<SyntaxToken> {
138        support::token(&self.syntax, SyntaxKind::ADD_KW)
139    }
140}
141
142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
143pub struct AddLabel {
144    pub(crate) syntax: SyntaxNode,
145}
146impl AddLabel {
147    #[inline]
148    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
149        support::child(&self.syntax)
150    }
151    #[inline]
152    pub fn name(&self) -> Option<Name> {
153        support::child(&self.syntax)
154    }
155    #[inline]
156    pub fn add_token(&self) -> Option<SyntaxToken> {
157        support::token(&self.syntax, SyntaxKind::ADD_KW)
158    }
159    #[inline]
160    pub fn label_token(&self) -> Option<SyntaxToken> {
161        support::token(&self.syntax, SyntaxKind::LABEL_KW)
162    }
163}
164
165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
166pub struct AddOpClassOptions {
167    pub(crate) syntax: SyntaxNode,
168}
169impl AddOpClassOptions {
170    #[inline]
171    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
172        support::child(&self.syntax)
173    }
174    #[inline]
175    pub fn add_token(&self) -> Option<SyntaxToken> {
176        support::token(&self.syntax, SyntaxKind::ADD_KW)
177    }
178}
179
180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
181pub struct AddValue {
182    pub(crate) syntax: SyntaxNode,
183}
184impl AddValue {
185    #[inline]
186    pub fn if_not_exists(&self) -> Option<IfNotExists> {
187        support::child(&self.syntax)
188    }
189    #[inline]
190    pub fn literal(&self) -> Option<Literal> {
191        support::child(&self.syntax)
192    }
193    #[inline]
194    pub fn value_position(&self) -> Option<ValuePosition> {
195        support::child(&self.syntax)
196    }
197    #[inline]
198    pub fn add_token(&self) -> Option<SyntaxToken> {
199        support::token(&self.syntax, SyntaxKind::ADD_KW)
200    }
201    #[inline]
202    pub fn value_token(&self) -> Option<SyntaxToken> {
203        support::token(&self.syntax, SyntaxKind::VALUE_KW)
204    }
205}
206
207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
208pub struct AddVertexEdgeLabelProperties {
209    pub(crate) syntax: SyntaxNode,
210}
211impl AddVertexEdgeLabelProperties {
212    #[inline]
213    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
214        support::child(&self.syntax)
215    }
216    #[inline]
217    pub fn name_ref(&self) -> Option<NameRef> {
218        support::child(&self.syntax)
219    }
220    #[inline]
221    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
222        support::token(&self.syntax, SyntaxKind::L_PAREN)
223    }
224    #[inline]
225    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
226        support::token(&self.syntax, SyntaxKind::R_PAREN)
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 alter_token(&self) -> Option<SyntaxToken> {
234        support::token(&self.syntax, SyntaxKind::ALTER_KW)
235    }
236    #[inline]
237    pub fn edge_token(&self) -> Option<SyntaxToken> {
238        support::token(&self.syntax, SyntaxKind::EDGE_KW)
239    }
240    #[inline]
241    pub fn label_token(&self) -> Option<SyntaxToken> {
242        support::token(&self.syntax, SyntaxKind::LABEL_KW)
243    }
244    #[inline]
245    pub fn node_token(&self) -> Option<SyntaxToken> {
246        support::token(&self.syntax, SyntaxKind::NODE_KW)
247    }
248    #[inline]
249    pub fn properties_token(&self) -> Option<SyntaxToken> {
250        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
251    }
252    #[inline]
253    pub fn relationship_token(&self) -> Option<SyntaxToken> {
254        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
255    }
256    #[inline]
257    pub fn table_token(&self) -> Option<SyntaxToken> {
258        support::token(&self.syntax, SyntaxKind::TABLE_KW)
259    }
260    #[inline]
261    pub fn vertex_token(&self) -> Option<SyntaxToken> {
262        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
263    }
264}
265
266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
267pub struct AddVertexEdgeTables {
268    pub(crate) syntax: SyntaxNode,
269}
270impl AddVertexEdgeTables {
271    #[inline]
272    pub fn edge_tables(&self) -> Option<EdgeTables> {
273        support::child(&self.syntax)
274    }
275    #[inline]
276    pub fn vertex_tables(&self) -> Option<VertexTables> {
277        support::child(&self.syntax)
278    }
279    #[inline]
280    pub fn add_token(&self) -> Option<SyntaxToken> {
281        support::token(&self.syntax, SyntaxKind::ADD_KW)
282    }
283}
284
285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
286pub struct AfterValue {
287    pub(crate) syntax: SyntaxNode,
288}
289impl AfterValue {
290    #[inline]
291    pub fn literal(&self) -> Option<Literal> {
292        support::child(&self.syntax)
293    }
294    #[inline]
295    pub fn after_token(&self) -> Option<SyntaxToken> {
296        support::token(&self.syntax, SyntaxKind::AFTER_KW)
297    }
298}
299
300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
301pub struct Aggregate {
302    pub(crate) syntax: SyntaxNode,
303}
304impl Aggregate {
305    #[inline]
306    pub fn param_list(&self) -> Option<ParamList> {
307        support::child(&self.syntax)
308    }
309    #[inline]
310    pub fn path(&self) -> Option<Path> {
311        support::child(&self.syntax)
312    }
313}
314
315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
316pub struct Alias {
317    pub(crate) syntax: SyntaxNode,
318}
319impl Alias {
320    #[inline]
321    pub fn column_list(&self) -> Option<ColumnList> {
322        support::child(&self.syntax)
323    }
324    #[inline]
325    pub fn name(&self) -> Option<Name> {
326        support::child(&self.syntax)
327    }
328    #[inline]
329    pub fn as_token(&self) -> Option<SyntaxToken> {
330        support::token(&self.syntax, SyntaxKind::AS_KW)
331    }
332}
333
334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
335pub struct AllFn {
336    pub(crate) syntax: SyntaxNode,
337}
338impl AllFn {
339    #[inline]
340    pub fn expr(&self) -> Option<Expr> {
341        support::child(&self.syntax)
342    }
343    #[inline]
344    pub fn select_variant(&self) -> Option<SelectVariant> {
345        support::child(&self.syntax)
346    }
347    #[inline]
348    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
349        support::token(&self.syntax, SyntaxKind::L_PAREN)
350    }
351    #[inline]
352    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
353        support::token(&self.syntax, SyntaxKind::R_PAREN)
354    }
355    #[inline]
356    pub fn all_token(&self) -> Option<SyntaxToken> {
357        support::token(&self.syntax, SyntaxKind::ALL_KW)
358    }
359}
360
361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
362pub struct AllProperties {
363    pub(crate) syntax: SyntaxNode,
364}
365impl AllProperties {
366    #[inline]
367    pub fn all_token(&self) -> Option<SyntaxToken> {
368        support::token(&self.syntax, SyntaxKind::ALL_KW)
369    }
370    #[inline]
371    pub fn columns_token(&self) -> Option<SyntaxToken> {
372        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
373    }
374    #[inline]
375    pub fn properties_token(&self) -> Option<SyntaxToken> {
376        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
377    }
378}
379
380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
381pub struct AlterAggregate {
382    pub(crate) syntax: SyntaxNode,
383}
384impl AlterAggregate {
385    #[inline]
386    pub fn aggregate(&self) -> Option<Aggregate> {
387        support::child(&self.syntax)
388    }
389    #[inline]
390    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
391        support::token(&self.syntax, SyntaxKind::SEMICOLON)
392    }
393    #[inline]
394    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
395        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
396    }
397    #[inline]
398    pub fn alter_token(&self) -> Option<SyntaxToken> {
399        support::token(&self.syntax, SyntaxKind::ALTER_KW)
400    }
401}
402
403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
404pub struct AlterAttribute {
405    pub(crate) syntax: SyntaxNode,
406}
407impl AlterAttribute {
408    #[inline]
409    pub fn cascade(&self) -> Option<Cascade> {
410        support::child(&self.syntax)
411    }
412    #[inline]
413    pub fn restrict(&self) -> Option<Restrict> {
414        support::child(&self.syntax)
415    }
416    #[inline]
417    pub fn alter_token(&self) -> Option<SyntaxToken> {
418        support::token(&self.syntax, SyntaxKind::ALTER_KW)
419    }
420    #[inline]
421    pub fn attribute_token(&self) -> Option<SyntaxToken> {
422        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
423    }
424}
425
426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
427pub struct AlterCollation {
428    pub(crate) syntax: SyntaxNode,
429}
430impl AlterCollation {
431    #[inline]
432    pub fn owner_to(&self) -> Option<OwnerTo> {
433        support::child(&self.syntax)
434    }
435    #[inline]
436    pub fn path(&self) -> Option<Path> {
437        support::child(&self.syntax)
438    }
439    #[inline]
440    pub fn refresh_version(&self) -> Option<RefreshVersion> {
441        support::child(&self.syntax)
442    }
443    #[inline]
444    pub fn rename_to(&self) -> Option<RenameTo> {
445        support::child(&self.syntax)
446    }
447    #[inline]
448    pub fn set_schema(&self) -> Option<SetSchema> {
449        support::child(&self.syntax)
450    }
451    #[inline]
452    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
453        support::token(&self.syntax, SyntaxKind::SEMICOLON)
454    }
455    #[inline]
456    pub fn alter_token(&self) -> Option<SyntaxToken> {
457        support::token(&self.syntax, SyntaxKind::ALTER_KW)
458    }
459    #[inline]
460    pub fn collation_token(&self) -> Option<SyntaxToken> {
461        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
462    }
463}
464
465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
466pub struct AlterColumn {
467    pub(crate) syntax: SyntaxNode,
468}
469impl AlterColumn {
470    #[inline]
471    pub fn name_ref(&self) -> Option<NameRef> {
472        support::child(&self.syntax)
473    }
474    #[inline]
475    pub fn option(&self) -> Option<AlterColumnOption> {
476        support::child(&self.syntax)
477    }
478    #[inline]
479    pub fn alter_token(&self) -> Option<SyntaxToken> {
480        support::token(&self.syntax, SyntaxKind::ALTER_KW)
481    }
482    #[inline]
483    pub fn column_token(&self) -> Option<SyntaxToken> {
484        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
485    }
486}
487
488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
489pub struct AlterConstraint {
490    pub(crate) syntax: SyntaxNode,
491}
492impl AlterConstraint {
493    #[inline]
494    pub fn option(&self) -> Option<AlterColumnOption> {
495        support::child(&self.syntax)
496    }
497    #[inline]
498    pub fn alter_token(&self) -> Option<SyntaxToken> {
499        support::token(&self.syntax, SyntaxKind::ALTER_KW)
500    }
501    #[inline]
502    pub fn constraint_token(&self) -> Option<SyntaxToken> {
503        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
504    }
505}
506
507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
508pub struct AlterConversion {
509    pub(crate) syntax: SyntaxNode,
510}
511impl AlterConversion {
512    #[inline]
513    pub fn owner_to(&self) -> Option<OwnerTo> {
514        support::child(&self.syntax)
515    }
516    #[inline]
517    pub fn path(&self) -> Option<Path> {
518        support::child(&self.syntax)
519    }
520    #[inline]
521    pub fn rename_to(&self) -> Option<RenameTo> {
522        support::child(&self.syntax)
523    }
524    #[inline]
525    pub fn set_schema(&self) -> Option<SetSchema> {
526        support::child(&self.syntax)
527    }
528    #[inline]
529    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
530        support::token(&self.syntax, SyntaxKind::SEMICOLON)
531    }
532    #[inline]
533    pub fn alter_token(&self) -> Option<SyntaxToken> {
534        support::token(&self.syntax, SyntaxKind::ALTER_KW)
535    }
536    #[inline]
537    pub fn conversion_token(&self) -> Option<SyntaxToken> {
538        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
539    }
540}
541
542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
543pub struct AlterDatabase {
544    pub(crate) syntax: SyntaxNode,
545}
546impl AlterDatabase {
547    #[inline]
548    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
549        support::child(&self.syntax)
550    }
551    #[inline]
552    pub fn name_ref(&self) -> Option<NameRef> {
553        support::child(&self.syntax)
554    }
555    #[inline]
556    pub fn owner_to(&self) -> Option<OwnerTo> {
557        support::child(&self.syntax)
558    }
559    #[inline]
560    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
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 reset_config_param(&self) -> Option<ResetConfigParam> {
569        support::child(&self.syntax)
570    }
571    #[inline]
572    pub fn set_config_param(&self) -> Option<SetConfigParam> {
573        support::child(&self.syntax)
574    }
575    #[inline]
576    pub fn set_tablespace(&self) -> Option<SetTablespace> {
577        support::child(&self.syntax)
578    }
579    #[inline]
580    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
581        support::token(&self.syntax, SyntaxKind::SEMICOLON)
582    }
583    #[inline]
584    pub fn alter_token(&self) -> Option<SyntaxToken> {
585        support::token(&self.syntax, SyntaxKind::ALTER_KW)
586    }
587    #[inline]
588    pub fn database_token(&self) -> Option<SyntaxToken> {
589        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
590    }
591}
592
593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
594pub struct AlterDefaultPrivileges {
595    pub(crate) syntax: SyntaxNode,
596}
597impl AlterDefaultPrivileges {
598    #[inline]
599    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
600        support::child(&self.syntax)
601    }
602    #[inline]
603    pub fn name_refs(&self) -> AstChildren<NameRef> {
604        support::children(&self.syntax)
605    }
606    #[inline]
607    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
608        support::child(&self.syntax)
609    }
610    #[inline]
611    pub fn role_ref_list(&self) -> Option<RoleRefList> {
612        support::child(&self.syntax)
613    }
614    #[inline]
615    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
616        support::token(&self.syntax, SyntaxKind::SEMICOLON)
617    }
618    #[inline]
619    pub fn alter_token(&self) -> Option<SyntaxToken> {
620        support::token(&self.syntax, SyntaxKind::ALTER_KW)
621    }
622    #[inline]
623    pub fn default_token(&self) -> Option<SyntaxToken> {
624        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
625    }
626    #[inline]
627    pub fn for_token(&self) -> Option<SyntaxToken> {
628        support::token(&self.syntax, SyntaxKind::FOR_KW)
629    }
630    #[inline]
631    pub fn in_token(&self) -> Option<SyntaxToken> {
632        support::token(&self.syntax, SyntaxKind::IN_KW)
633    }
634    #[inline]
635    pub fn privileges_token(&self) -> Option<SyntaxToken> {
636        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
637    }
638    #[inline]
639    pub fn role_token(&self) -> Option<SyntaxToken> {
640        support::token(&self.syntax, SyntaxKind::ROLE_KW)
641    }
642    #[inline]
643    pub fn schema_token(&self) -> Option<SyntaxToken> {
644        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
645    }
646    #[inline]
647    pub fn user_token(&self) -> Option<SyntaxToken> {
648        support::token(&self.syntax, SyntaxKind::USER_KW)
649    }
650}
651
652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
653pub struct AlterDomain {
654    pub(crate) syntax: SyntaxNode,
655}
656impl AlterDomain {
657    #[inline]
658    pub fn action(&self) -> Option<AlterDomainAction> {
659        support::child(&self.syntax)
660    }
661    #[inline]
662    pub fn path(&self) -> Option<Path> {
663        support::child(&self.syntax)
664    }
665    #[inline]
666    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
667        support::token(&self.syntax, SyntaxKind::SEMICOLON)
668    }
669    #[inline]
670    pub fn alter_token(&self) -> Option<SyntaxToken> {
671        support::token(&self.syntax, SyntaxKind::ALTER_KW)
672    }
673    #[inline]
674    pub fn domain_token(&self) -> Option<SyntaxToken> {
675        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
676    }
677}
678
679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
680pub struct AlterEventTrigger {
681    pub(crate) syntax: SyntaxNode,
682}
683impl AlterEventTrigger {
684    #[inline]
685    pub fn name_ref(&self) -> Option<NameRef> {
686        support::child(&self.syntax)
687    }
688    #[inline]
689    pub fn owner_to(&self) -> Option<OwnerTo> {
690        support::child(&self.syntax)
691    }
692    #[inline]
693    pub fn rename_to(&self) -> Option<RenameTo> {
694        support::child(&self.syntax)
695    }
696    #[inline]
697    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
698        support::token(&self.syntax, SyntaxKind::SEMICOLON)
699    }
700    #[inline]
701    pub fn alter_token(&self) -> Option<SyntaxToken> {
702        support::token(&self.syntax, SyntaxKind::ALTER_KW)
703    }
704    #[inline]
705    pub fn always_token(&self) -> Option<SyntaxToken> {
706        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
707    }
708    #[inline]
709    pub fn disable_token(&self) -> Option<SyntaxToken> {
710        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
711    }
712    #[inline]
713    pub fn enable_token(&self) -> Option<SyntaxToken> {
714        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
715    }
716    #[inline]
717    pub fn event_token(&self) -> Option<SyntaxToken> {
718        support::token(&self.syntax, SyntaxKind::EVENT_KW)
719    }
720    #[inline]
721    pub fn replica_token(&self) -> Option<SyntaxToken> {
722        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
723    }
724    #[inline]
725    pub fn trigger_token(&self) -> Option<SyntaxToken> {
726        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
727    }
728}
729
730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
731pub struct AlterExtension {
732    pub(crate) syntax: SyntaxNode,
733}
734impl AlterExtension {
735    #[inline]
736    pub fn name_ref(&self) -> Option<NameRef> {
737        support::child(&self.syntax)
738    }
739    #[inline]
740    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
741        support::token(&self.syntax, SyntaxKind::SEMICOLON)
742    }
743    #[inline]
744    pub fn alter_token(&self) -> Option<SyntaxToken> {
745        support::token(&self.syntax, SyntaxKind::ALTER_KW)
746    }
747    #[inline]
748    pub fn extension_token(&self) -> Option<SyntaxToken> {
749        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
750    }
751}
752
753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
754pub struct AlterForeignDataWrapper {
755    pub(crate) syntax: SyntaxNode,
756}
757impl AlterForeignDataWrapper {
758    #[inline]
759    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
760        support::child(&self.syntax)
761    }
762    #[inline]
763    pub fn name_ref(&self) -> Option<NameRef> {
764        support::child(&self.syntax)
765    }
766    #[inline]
767    pub fn owner_to(&self) -> Option<OwnerTo> {
768        support::child(&self.syntax)
769    }
770    #[inline]
771    pub fn rename_to(&self) -> Option<RenameTo> {
772        support::child(&self.syntax)
773    }
774    #[inline]
775    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
776        support::token(&self.syntax, SyntaxKind::SEMICOLON)
777    }
778    #[inline]
779    pub fn alter_token(&self) -> Option<SyntaxToken> {
780        support::token(&self.syntax, SyntaxKind::ALTER_KW)
781    }
782    #[inline]
783    pub fn data_token(&self) -> Option<SyntaxToken> {
784        support::token(&self.syntax, SyntaxKind::DATA_KW)
785    }
786    #[inline]
787    pub fn foreign_token(&self) -> Option<SyntaxToken> {
788        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
789    }
790    #[inline]
791    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
792        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
793    }
794}
795
796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
797pub struct AlterForeignTable {
798    pub(crate) syntax: SyntaxNode,
799}
800impl AlterForeignTable {
801    #[inline]
802    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
803        support::children(&self.syntax)
804    }
805    #[inline]
806    pub fn if_exists(&self) -> Option<IfExists> {
807        support::child(&self.syntax)
808    }
809    #[inline]
810    pub fn relation_name(&self) -> Option<RelationName> {
811        support::child(&self.syntax)
812    }
813    #[inline]
814    pub fn rename_column(&self) -> Option<RenameColumn> {
815        support::child(&self.syntax)
816    }
817    #[inline]
818    pub fn rename_to(&self) -> Option<RenameTo> {
819        support::child(&self.syntax)
820    }
821    #[inline]
822    pub fn set_schema(&self) -> Option<SetSchema> {
823        support::child(&self.syntax)
824    }
825    #[inline]
826    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
827        support::token(&self.syntax, SyntaxKind::SEMICOLON)
828    }
829    #[inline]
830    pub fn alter_token(&self) -> Option<SyntaxToken> {
831        support::token(&self.syntax, SyntaxKind::ALTER_KW)
832    }
833    #[inline]
834    pub fn foreign_token(&self) -> Option<SyntaxToken> {
835        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
836    }
837    #[inline]
838    pub fn table_token(&self) -> Option<SyntaxToken> {
839        support::token(&self.syntax, SyntaxKind::TABLE_KW)
840    }
841}
842
843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
844pub struct AlterFunction {
845    pub(crate) syntax: SyntaxNode,
846}
847impl AlterFunction {
848    #[inline]
849    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
850        support::child(&self.syntax)
851    }
852    #[inline]
853    pub fn func_option_list(&self) -> Option<FuncOptionList> {
854        support::child(&self.syntax)
855    }
856    #[inline]
857    pub fn function_sig(&self) -> Option<FunctionSig> {
858        support::child(&self.syntax)
859    }
860    #[inline]
861    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
862        support::child(&self.syntax)
863    }
864    #[inline]
865    pub fn owner_to(&self) -> Option<OwnerTo> {
866        support::child(&self.syntax)
867    }
868    #[inline]
869    pub fn rename_to(&self) -> Option<RenameTo> {
870        support::child(&self.syntax)
871    }
872    #[inline]
873    pub fn set_schema(&self) -> Option<SetSchema> {
874        support::child(&self.syntax)
875    }
876    #[inline]
877    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
878        support::token(&self.syntax, SyntaxKind::SEMICOLON)
879    }
880    #[inline]
881    pub fn alter_token(&self) -> Option<SyntaxToken> {
882        support::token(&self.syntax, SyntaxKind::ALTER_KW)
883    }
884    #[inline]
885    pub fn function_token(&self) -> Option<SyntaxToken> {
886        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
887    }
888    #[inline]
889    pub fn restrict_token(&self) -> Option<SyntaxToken> {
890        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
891    }
892}
893
894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
895pub struct AlterGroup {
896    pub(crate) syntax: SyntaxNode,
897}
898impl AlterGroup {
899    #[inline]
900    pub fn name_refs(&self) -> AstChildren<NameRef> {
901        support::children(&self.syntax)
902    }
903    #[inline]
904    pub fn rename_to(&self) -> Option<RenameTo> {
905        support::child(&self.syntax)
906    }
907    #[inline]
908    pub fn role_ref(&self) -> Option<RoleRef> {
909        support::child(&self.syntax)
910    }
911    #[inline]
912    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
913        support::token(&self.syntax, SyntaxKind::SEMICOLON)
914    }
915    #[inline]
916    pub fn add_token(&self) -> Option<SyntaxToken> {
917        support::token(&self.syntax, SyntaxKind::ADD_KW)
918    }
919    #[inline]
920    pub fn alter_token(&self) -> Option<SyntaxToken> {
921        support::token(&self.syntax, SyntaxKind::ALTER_KW)
922    }
923    #[inline]
924    pub fn drop_token(&self) -> Option<SyntaxToken> {
925        support::token(&self.syntax, SyntaxKind::DROP_KW)
926    }
927    #[inline]
928    pub fn group_token(&self) -> Option<SyntaxToken> {
929        support::token(&self.syntax, SyntaxKind::GROUP_KW)
930    }
931    #[inline]
932    pub fn user_token(&self) -> Option<SyntaxToken> {
933        support::token(&self.syntax, SyntaxKind::USER_KW)
934    }
935}
936
937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
938pub struct AlterIndex {
939    pub(crate) syntax: SyntaxNode,
940}
941impl AlterIndex {
942    #[inline]
943    pub fn alter_index_action(&self) -> Option<AlterIndexAction> {
944        support::child(&self.syntax)
945    }
946    #[inline]
947    pub fn if_exists(&self) -> Option<IfExists> {
948        support::child(&self.syntax)
949    }
950    #[inline]
951    pub fn name_ref(&self) -> Option<NameRef> {
952        support::child(&self.syntax)
953    }
954    #[inline]
955    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
956        support::child(&self.syntax)
957    }
958    #[inline]
959    pub fn path(&self) -> Option<Path> {
960        support::child(&self.syntax)
961    }
962    #[inline]
963    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
964        support::token(&self.syntax, SyntaxKind::SEMICOLON)
965    }
966    #[inline]
967    pub fn all_token(&self) -> Option<SyntaxToken> {
968        support::token(&self.syntax, SyntaxKind::ALL_KW)
969    }
970    #[inline]
971    pub fn alter_token(&self) -> Option<SyntaxToken> {
972        support::token(&self.syntax, SyntaxKind::ALTER_KW)
973    }
974    #[inline]
975    pub fn in_token(&self) -> Option<SyntaxToken> {
976        support::token(&self.syntax, SyntaxKind::IN_KW)
977    }
978    #[inline]
979    pub fn index_token(&self) -> Option<SyntaxToken> {
980        support::token(&self.syntax, SyntaxKind::INDEX_KW)
981    }
982    #[inline]
983    pub fn nowait_token(&self) -> Option<SyntaxToken> {
984        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
985    }
986    #[inline]
987    pub fn set_token(&self) -> Option<SyntaxToken> {
988        support::token(&self.syntax, SyntaxKind::SET_KW)
989    }
990    #[inline]
991    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
992        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
993    }
994}
995
996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
997pub struct AlterLanguage {
998    pub(crate) syntax: SyntaxNode,
999}
1000impl AlterLanguage {
1001    #[inline]
1002    pub fn name_ref(&self) -> Option<NameRef> {
1003        support::child(&self.syntax)
1004    }
1005    #[inline]
1006    pub fn owner_to(&self) -> Option<OwnerTo> {
1007        support::child(&self.syntax)
1008    }
1009    #[inline]
1010    pub fn rename_to(&self) -> Option<RenameTo> {
1011        support::child(&self.syntax)
1012    }
1013    #[inline]
1014    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1015        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1016    }
1017    #[inline]
1018    pub fn alter_token(&self) -> Option<SyntaxToken> {
1019        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1020    }
1021    #[inline]
1022    pub fn language_token(&self) -> Option<SyntaxToken> {
1023        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
1024    }
1025}
1026
1027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1028pub struct AlterLargeObject {
1029    pub(crate) syntax: SyntaxNode,
1030}
1031impl AlterLargeObject {
1032    #[inline]
1033    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1034        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1035    }
1036    #[inline]
1037    pub fn alter_token(&self) -> Option<SyntaxToken> {
1038        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1039    }
1040    #[inline]
1041    pub fn large_token(&self) -> Option<SyntaxToken> {
1042        support::token(&self.syntax, SyntaxKind::LARGE_KW)
1043    }
1044    #[inline]
1045    pub fn object_token(&self) -> Option<SyntaxToken> {
1046        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
1047    }
1048}
1049
1050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1051pub struct AlterMaterializedView {
1052    pub(crate) syntax: SyntaxNode,
1053}
1054impl AlterMaterializedView {
1055    #[inline]
1056    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
1057        support::children(&self.syntax)
1058    }
1059    #[inline]
1060    pub fn if_exists(&self) -> Option<IfExists> {
1061        support::child(&self.syntax)
1062    }
1063    #[inline]
1064    pub fn name(&self) -> Option<Name> {
1065        support::child(&self.syntax)
1066    }
1067    #[inline]
1068    pub fn name_ref(&self) -> Option<NameRef> {
1069        support::child(&self.syntax)
1070    }
1071    #[inline]
1072    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
1073        support::child(&self.syntax)
1074    }
1075    #[inline]
1076    pub fn path(&self) -> Option<Path> {
1077        support::child(&self.syntax)
1078    }
1079    #[inline]
1080    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1081        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1082    }
1083    #[inline]
1084    pub fn all_token(&self) -> Option<SyntaxToken> {
1085        support::token(&self.syntax, SyntaxKind::ALL_KW)
1086    }
1087    #[inline]
1088    pub fn alter_token(&self) -> Option<SyntaxToken> {
1089        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1090    }
1091    #[inline]
1092    pub fn in_token(&self) -> Option<SyntaxToken> {
1093        support::token(&self.syntax, SyntaxKind::IN_KW)
1094    }
1095    #[inline]
1096    pub fn materialized_token(&self) -> Option<SyntaxToken> {
1097        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
1098    }
1099    #[inline]
1100    pub fn nowait_token(&self) -> Option<SyntaxToken> {
1101        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
1102    }
1103    #[inline]
1104    pub fn set_token(&self) -> Option<SyntaxToken> {
1105        support::token(&self.syntax, SyntaxKind::SET_KW)
1106    }
1107    #[inline]
1108    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1109        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1110    }
1111    #[inline]
1112    pub fn view_token(&self) -> Option<SyntaxToken> {
1113        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1114    }
1115}
1116
1117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1118pub struct AlterOperator {
1119    pub(crate) syntax: SyntaxNode,
1120}
1121impl AlterOperator {
1122    #[inline]
1123    pub fn op_sig(&self) -> Option<OpSig> {
1124        support::child(&self.syntax)
1125    }
1126    #[inline]
1127    pub fn owner_to(&self) -> Option<OwnerTo> {
1128        support::child(&self.syntax)
1129    }
1130    #[inline]
1131    pub fn set_options(&self) -> Option<SetOptions> {
1132        support::child(&self.syntax)
1133    }
1134    #[inline]
1135    pub fn set_schema(&self) -> Option<SetSchema> {
1136        support::child(&self.syntax)
1137    }
1138    #[inline]
1139    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1140        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1141    }
1142    #[inline]
1143    pub fn alter_token(&self) -> Option<SyntaxToken> {
1144        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1145    }
1146    #[inline]
1147    pub fn operator_token(&self) -> Option<SyntaxToken> {
1148        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1149    }
1150}
1151
1152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1153pub struct AlterOperatorClass {
1154    pub(crate) syntax: SyntaxNode,
1155}
1156impl AlterOperatorClass {
1157    #[inline]
1158    pub fn name_ref(&self) -> Option<NameRef> {
1159        support::child(&self.syntax)
1160    }
1161    #[inline]
1162    pub fn owner_to(&self) -> Option<OwnerTo> {
1163        support::child(&self.syntax)
1164    }
1165    #[inline]
1166    pub fn path(&self) -> Option<Path> {
1167        support::child(&self.syntax)
1168    }
1169    #[inline]
1170    pub fn rename_to(&self) -> Option<RenameTo> {
1171        support::child(&self.syntax)
1172    }
1173    #[inline]
1174    pub fn set_schema(&self) -> Option<SetSchema> {
1175        support::child(&self.syntax)
1176    }
1177    #[inline]
1178    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1179        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1180    }
1181    #[inline]
1182    pub fn alter_token(&self) -> Option<SyntaxToken> {
1183        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1184    }
1185    #[inline]
1186    pub fn class_token(&self) -> Option<SyntaxToken> {
1187        support::token(&self.syntax, SyntaxKind::CLASS_KW)
1188    }
1189    #[inline]
1190    pub fn operator_token(&self) -> Option<SyntaxToken> {
1191        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1192    }
1193    #[inline]
1194    pub fn using_token(&self) -> Option<SyntaxToken> {
1195        support::token(&self.syntax, SyntaxKind::USING_KW)
1196    }
1197}
1198
1199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1200pub struct AlterOperatorFamily {
1201    pub(crate) syntax: SyntaxNode,
1202}
1203impl AlterOperatorFamily {
1204    #[inline]
1205    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
1206        support::child(&self.syntax)
1207    }
1208    #[inline]
1209    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
1210        support::child(&self.syntax)
1211    }
1212    #[inline]
1213    pub fn name_ref(&self) -> Option<NameRef> {
1214        support::child(&self.syntax)
1215    }
1216    #[inline]
1217    pub fn owner_to(&self) -> Option<OwnerTo> {
1218        support::child(&self.syntax)
1219    }
1220    #[inline]
1221    pub fn path(&self) -> Option<Path> {
1222        support::child(&self.syntax)
1223    }
1224    #[inline]
1225    pub fn rename_to(&self) -> Option<RenameTo> {
1226        support::child(&self.syntax)
1227    }
1228    #[inline]
1229    pub fn set_schema(&self) -> Option<SetSchema> {
1230        support::child(&self.syntax)
1231    }
1232    #[inline]
1233    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1234        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1235    }
1236    #[inline]
1237    pub fn alter_token(&self) -> Option<SyntaxToken> {
1238        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1239    }
1240    #[inline]
1241    pub fn family_token(&self) -> Option<SyntaxToken> {
1242        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
1243    }
1244    #[inline]
1245    pub fn operator_token(&self) -> Option<SyntaxToken> {
1246        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1247    }
1248    #[inline]
1249    pub fn using_token(&self) -> Option<SyntaxToken> {
1250        support::token(&self.syntax, SyntaxKind::USING_KW)
1251    }
1252}
1253
1254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1255pub struct AlterOption {
1256    pub(crate) syntax: SyntaxNode,
1257}
1258impl AlterOption {
1259    #[inline]
1260    pub fn literal(&self) -> Option<Literal> {
1261        support::child(&self.syntax)
1262    }
1263    #[inline]
1264    pub fn name_ref(&self) -> Option<NameRef> {
1265        support::child(&self.syntax)
1266    }
1267    #[inline]
1268    pub fn add_token(&self) -> Option<SyntaxToken> {
1269        support::token(&self.syntax, SyntaxKind::ADD_KW)
1270    }
1271    #[inline]
1272    pub fn drop_token(&self) -> Option<SyntaxToken> {
1273        support::token(&self.syntax, SyntaxKind::DROP_KW)
1274    }
1275    #[inline]
1276    pub fn set_token(&self) -> Option<SyntaxToken> {
1277        support::token(&self.syntax, SyntaxKind::SET_KW)
1278    }
1279}
1280
1281#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1282pub struct AlterOptionList {
1283    pub(crate) syntax: SyntaxNode,
1284}
1285impl AlterOptionList {
1286    #[inline]
1287    pub fn alter_options(&self) -> AstChildren<AlterOption> {
1288        support::children(&self.syntax)
1289    }
1290}
1291
1292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1293pub struct AlterPolicy {
1294    pub(crate) syntax: SyntaxNode,
1295}
1296impl AlterPolicy {
1297    #[inline]
1298    pub fn name_ref(&self) -> Option<NameRef> {
1299        support::child(&self.syntax)
1300    }
1301    #[inline]
1302    pub fn on_table(&self) -> Option<OnTable> {
1303        support::child(&self.syntax)
1304    }
1305    #[inline]
1306    pub fn rename_to(&self) -> Option<RenameTo> {
1307        support::child(&self.syntax)
1308    }
1309    #[inline]
1310    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1311        support::child(&self.syntax)
1312    }
1313    #[inline]
1314    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
1315        support::child(&self.syntax)
1316    }
1317    #[inline]
1318    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
1319        support::child(&self.syntax)
1320    }
1321    #[inline]
1322    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1323        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1324    }
1325    #[inline]
1326    pub fn alter_token(&self) -> Option<SyntaxToken> {
1327        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1328    }
1329    #[inline]
1330    pub fn policy_token(&self) -> Option<SyntaxToken> {
1331        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1332    }
1333    #[inline]
1334    pub fn to_token(&self) -> Option<SyntaxToken> {
1335        support::token(&self.syntax, SyntaxKind::TO_KW)
1336    }
1337}
1338
1339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1340pub struct AlterProcedure {
1341    pub(crate) syntax: SyntaxNode,
1342}
1343impl AlterProcedure {
1344    #[inline]
1345    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1346        support::child(&self.syntax)
1347    }
1348    #[inline]
1349    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1350        support::child(&self.syntax)
1351    }
1352    #[inline]
1353    pub fn function_sig(&self) -> Option<FunctionSig> {
1354        support::child(&self.syntax)
1355    }
1356    #[inline]
1357    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1358        support::child(&self.syntax)
1359    }
1360    #[inline]
1361    pub fn owner_to(&self) -> Option<OwnerTo> {
1362        support::child(&self.syntax)
1363    }
1364    #[inline]
1365    pub fn rename_to(&self) -> Option<RenameTo> {
1366        support::child(&self.syntax)
1367    }
1368    #[inline]
1369    pub fn set_schema(&self) -> Option<SetSchema> {
1370        support::child(&self.syntax)
1371    }
1372    #[inline]
1373    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1374        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1375    }
1376    #[inline]
1377    pub fn alter_token(&self) -> Option<SyntaxToken> {
1378        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1379    }
1380    #[inline]
1381    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1382        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1383    }
1384    #[inline]
1385    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1386        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1387    }
1388}
1389
1390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1391pub struct AlterPropertyGraph {
1392    pub(crate) syntax: SyntaxNode,
1393}
1394impl AlterPropertyGraph {
1395    #[inline]
1396    pub fn alter_property_graph_action(&self) -> Option<AlterPropertyGraphAction> {
1397        support::child(&self.syntax)
1398    }
1399    #[inline]
1400    pub fn if_exists(&self) -> Option<IfExists> {
1401        support::child(&self.syntax)
1402    }
1403    #[inline]
1404    pub fn path(&self) -> Option<Path> {
1405        support::child(&self.syntax)
1406    }
1407    #[inline]
1408    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1409        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1410    }
1411    #[inline]
1412    pub fn alter_token(&self) -> Option<SyntaxToken> {
1413        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1414    }
1415    #[inline]
1416    pub fn graph_token(&self) -> Option<SyntaxToken> {
1417        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
1418    }
1419    #[inline]
1420    pub fn property_token(&self) -> Option<SyntaxToken> {
1421        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
1422    }
1423}
1424
1425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1426pub struct AlterPublication {
1427    pub(crate) syntax: SyntaxNode,
1428}
1429impl AlterPublication {
1430    #[inline]
1431    pub fn name_ref(&self) -> Option<NameRef> {
1432        support::child(&self.syntax)
1433    }
1434    #[inline]
1435    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1436        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1437    }
1438    #[inline]
1439    pub fn alter_token(&self) -> Option<SyntaxToken> {
1440        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1441    }
1442    #[inline]
1443    pub fn publication_token(&self) -> Option<SyntaxToken> {
1444        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1445    }
1446}
1447
1448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1449pub struct AlterRole {
1450    pub(crate) syntax: SyntaxNode,
1451}
1452impl AlterRole {
1453    #[inline]
1454    pub fn role_ref(&self) -> Option<RoleRef> {
1455        support::child(&self.syntax)
1456    }
1457    #[inline]
1458    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1459        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1460    }
1461    #[inline]
1462    pub fn alter_token(&self) -> Option<SyntaxToken> {
1463        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1464    }
1465    #[inline]
1466    pub fn role_token(&self) -> Option<SyntaxToken> {
1467        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1468    }
1469}
1470
1471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1472pub struct AlterRoutine {
1473    pub(crate) syntax: SyntaxNode,
1474}
1475impl AlterRoutine {
1476    #[inline]
1477    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1478        support::child(&self.syntax)
1479    }
1480    #[inline]
1481    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1482        support::child(&self.syntax)
1483    }
1484    #[inline]
1485    pub fn function_sig(&self) -> Option<FunctionSig> {
1486        support::child(&self.syntax)
1487    }
1488    #[inline]
1489    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1490        support::child(&self.syntax)
1491    }
1492    #[inline]
1493    pub fn owner_to(&self) -> Option<OwnerTo> {
1494        support::child(&self.syntax)
1495    }
1496    #[inline]
1497    pub fn rename_to(&self) -> Option<RenameTo> {
1498        support::child(&self.syntax)
1499    }
1500    #[inline]
1501    pub fn set_schema(&self) -> Option<SetSchema> {
1502        support::child(&self.syntax)
1503    }
1504    #[inline]
1505    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1506        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1507    }
1508    #[inline]
1509    pub fn alter_token(&self) -> Option<SyntaxToken> {
1510        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1511    }
1512    #[inline]
1513    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1514        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1515    }
1516    #[inline]
1517    pub fn routine_token(&self) -> Option<SyntaxToken> {
1518        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1519    }
1520}
1521
1522#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1523pub struct AlterRule {
1524    pub(crate) syntax: SyntaxNode,
1525}
1526impl AlterRule {
1527    #[inline]
1528    pub fn name_ref(&self) -> Option<NameRef> {
1529        support::child(&self.syntax)
1530    }
1531    #[inline]
1532    pub fn on_table(&self) -> Option<OnTable> {
1533        support::child(&self.syntax)
1534    }
1535    #[inline]
1536    pub fn rename_to(&self) -> Option<RenameTo> {
1537        support::child(&self.syntax)
1538    }
1539    #[inline]
1540    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1541        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1542    }
1543    #[inline]
1544    pub fn alter_token(&self) -> Option<SyntaxToken> {
1545        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1546    }
1547    #[inline]
1548    pub fn on_token(&self) -> Option<SyntaxToken> {
1549        support::token(&self.syntax, SyntaxKind::ON_KW)
1550    }
1551    #[inline]
1552    pub fn rule_token(&self) -> Option<SyntaxToken> {
1553        support::token(&self.syntax, SyntaxKind::RULE_KW)
1554    }
1555}
1556
1557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1558pub struct AlterSchema {
1559    pub(crate) syntax: SyntaxNode,
1560}
1561impl AlterSchema {
1562    #[inline]
1563    pub fn name_ref(&self) -> Option<NameRef> {
1564        support::child(&self.syntax)
1565    }
1566    #[inline]
1567    pub fn owner_to(&self) -> Option<OwnerTo> {
1568        support::child(&self.syntax)
1569    }
1570    #[inline]
1571    pub fn rename_to(&self) -> Option<RenameTo> {
1572        support::child(&self.syntax)
1573    }
1574    #[inline]
1575    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1576        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1577    }
1578    #[inline]
1579    pub fn alter_token(&self) -> Option<SyntaxToken> {
1580        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1581    }
1582    #[inline]
1583    pub fn schema_token(&self) -> Option<SyntaxToken> {
1584        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1585    }
1586}
1587
1588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1589pub struct AlterSequence {
1590    pub(crate) syntax: SyntaxNode,
1591}
1592impl AlterSequence {
1593    #[inline]
1594    pub fn if_exists(&self) -> Option<IfExists> {
1595        support::child(&self.syntax)
1596    }
1597    #[inline]
1598    pub fn path(&self) -> Option<Path> {
1599        support::child(&self.syntax)
1600    }
1601    #[inline]
1602    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1603        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1604    }
1605    #[inline]
1606    pub fn alter_token(&self) -> Option<SyntaxToken> {
1607        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1608    }
1609    #[inline]
1610    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1611        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1612    }
1613}
1614
1615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1616pub struct AlterServer {
1617    pub(crate) syntax: SyntaxNode,
1618}
1619impl AlterServer {
1620    #[inline]
1621    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1622        support::child(&self.syntax)
1623    }
1624    #[inline]
1625    pub fn name_ref(&self) -> Option<NameRef> {
1626        support::child(&self.syntax)
1627    }
1628    #[inline]
1629    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1630        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1631    }
1632    #[inline]
1633    pub fn alter_token(&self) -> Option<SyntaxToken> {
1634        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1635    }
1636    #[inline]
1637    pub fn server_token(&self) -> Option<SyntaxToken> {
1638        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1639    }
1640}
1641
1642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1643pub struct AlterSetStatistics {
1644    pub(crate) syntax: SyntaxNode,
1645}
1646impl AlterSetStatistics {
1647    #[inline]
1648    pub fn literal(&self) -> Option<Literal> {
1649        support::child(&self.syntax)
1650    }
1651    #[inline]
1652    pub fn name_ref(&self) -> Option<NameRef> {
1653        support::child(&self.syntax)
1654    }
1655    #[inline]
1656    pub fn column_token(&self) -> Option<SyntaxToken> {
1657        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1658    }
1659    #[inline]
1660    pub fn set_token(&self) -> Option<SyntaxToken> {
1661        support::token(&self.syntax, SyntaxKind::SET_KW)
1662    }
1663    #[inline]
1664    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1665        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1666    }
1667}
1668
1669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1670pub struct AlterStatistics {
1671    pub(crate) syntax: SyntaxNode,
1672}
1673impl AlterStatistics {
1674    #[inline]
1675    pub fn path(&self) -> Option<Path> {
1676        support::child(&self.syntax)
1677    }
1678    #[inline]
1679    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1680        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1681    }
1682    #[inline]
1683    pub fn alter_token(&self) -> Option<SyntaxToken> {
1684        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1685    }
1686    #[inline]
1687    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1688        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1689    }
1690}
1691
1692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1693pub struct AlterSubscription {
1694    pub(crate) syntax: SyntaxNode,
1695}
1696impl AlterSubscription {
1697    #[inline]
1698    pub fn name_ref(&self) -> Option<NameRef> {
1699        support::child(&self.syntax)
1700    }
1701    #[inline]
1702    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1703        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1704    }
1705    #[inline]
1706    pub fn alter_token(&self) -> Option<SyntaxToken> {
1707        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1708    }
1709    #[inline]
1710    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1711        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1712    }
1713}
1714
1715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1716pub struct AlterSystem {
1717    pub(crate) syntax: SyntaxNode,
1718}
1719impl AlterSystem {
1720    #[inline]
1721    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1722        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1723    }
1724    #[inline]
1725    pub fn alter_token(&self) -> Option<SyntaxToken> {
1726        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1727    }
1728    #[inline]
1729    pub fn set_token(&self) -> Option<SyntaxToken> {
1730        support::token(&self.syntax, SyntaxKind::SET_KW)
1731    }
1732    #[inline]
1733    pub fn system_token(&self) -> Option<SyntaxToken> {
1734        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1735    }
1736}
1737
1738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1739pub struct AlterTable {
1740    pub(crate) syntax: SyntaxNode,
1741}
1742impl AlterTable {
1743    #[inline]
1744    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1745        support::children(&self.syntax)
1746    }
1747    #[inline]
1748    pub fn relation_name(&self) -> Option<RelationName> {
1749        support::child(&self.syntax)
1750    }
1751    #[inline]
1752    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1753        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1754    }
1755    #[inline]
1756    pub fn alter_token(&self) -> Option<SyntaxToken> {
1757        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1758    }
1759    #[inline]
1760    pub fn table_token(&self) -> Option<SyntaxToken> {
1761        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1762    }
1763}
1764
1765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1766pub struct AlterTablespace {
1767    pub(crate) syntax: SyntaxNode,
1768}
1769impl AlterTablespace {
1770    #[inline]
1771    pub fn owner_to(&self) -> Option<OwnerTo> {
1772        support::child(&self.syntax)
1773    }
1774    #[inline]
1775    pub fn path(&self) -> Option<Path> {
1776        support::child(&self.syntax)
1777    }
1778    #[inline]
1779    pub fn rename_to(&self) -> Option<RenameTo> {
1780        support::child(&self.syntax)
1781    }
1782    #[inline]
1783    pub fn reset_options(&self) -> Option<ResetOptions> {
1784        support::child(&self.syntax)
1785    }
1786    #[inline]
1787    pub fn set_options(&self) -> Option<SetOptions> {
1788        support::child(&self.syntax)
1789    }
1790    #[inline]
1791    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1792        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1793    }
1794    #[inline]
1795    pub fn alter_token(&self) -> Option<SyntaxToken> {
1796        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1797    }
1798    #[inline]
1799    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1800        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1801    }
1802}
1803
1804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1805pub struct AlterTextSearchConfiguration {
1806    pub(crate) syntax: SyntaxNode,
1807}
1808impl AlterTextSearchConfiguration {
1809    #[inline]
1810    pub fn owner_to(&self) -> Option<OwnerTo> {
1811        support::child(&self.syntax)
1812    }
1813    #[inline]
1814    pub fn path(&self) -> Option<Path> {
1815        support::child(&self.syntax)
1816    }
1817    #[inline]
1818    pub fn rename_to(&self) -> Option<RenameTo> {
1819        support::child(&self.syntax)
1820    }
1821    #[inline]
1822    pub fn set_schema(&self) -> Option<SetSchema> {
1823        support::child(&self.syntax)
1824    }
1825    #[inline]
1826    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1827        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1828    }
1829    #[inline]
1830    pub fn alter_token(&self) -> Option<SyntaxToken> {
1831        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1832    }
1833    #[inline]
1834    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1835        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1836    }
1837    #[inline]
1838    pub fn search_token(&self) -> Option<SyntaxToken> {
1839        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1840    }
1841    #[inline]
1842    pub fn text_token(&self) -> Option<SyntaxToken> {
1843        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1844    }
1845}
1846
1847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1848pub struct AlterTextSearchDictionary {
1849    pub(crate) syntax: SyntaxNode,
1850}
1851impl AlterTextSearchDictionary {
1852    #[inline]
1853    pub fn attribute_list(&self) -> Option<AttributeList> {
1854        support::child(&self.syntax)
1855    }
1856    #[inline]
1857    pub fn owner_to(&self) -> Option<OwnerTo> {
1858        support::child(&self.syntax)
1859    }
1860    #[inline]
1861    pub fn path(&self) -> Option<Path> {
1862        support::child(&self.syntax)
1863    }
1864    #[inline]
1865    pub fn rename_to(&self) -> Option<RenameTo> {
1866        support::child(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn set_schema(&self) -> Option<SetSchema> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1874        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1875    }
1876    #[inline]
1877    pub fn alter_token(&self) -> Option<SyntaxToken> {
1878        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1879    }
1880    #[inline]
1881    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1882        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1883    }
1884    #[inline]
1885    pub fn search_token(&self) -> Option<SyntaxToken> {
1886        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1887    }
1888    #[inline]
1889    pub fn text_token(&self) -> Option<SyntaxToken> {
1890        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1891    }
1892}
1893
1894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1895pub struct AlterTextSearchParser {
1896    pub(crate) syntax: SyntaxNode,
1897}
1898impl AlterTextSearchParser {
1899    #[inline]
1900    pub fn path(&self) -> Option<Path> {
1901        support::child(&self.syntax)
1902    }
1903    #[inline]
1904    pub fn rename_to(&self) -> Option<RenameTo> {
1905        support::child(&self.syntax)
1906    }
1907    #[inline]
1908    pub fn set_schema(&self) -> Option<SetSchema> {
1909        support::child(&self.syntax)
1910    }
1911    #[inline]
1912    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1913        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1914    }
1915    #[inline]
1916    pub fn alter_token(&self) -> Option<SyntaxToken> {
1917        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1918    }
1919    #[inline]
1920    pub fn parser_token(&self) -> Option<SyntaxToken> {
1921        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1922    }
1923    #[inline]
1924    pub fn search_token(&self) -> Option<SyntaxToken> {
1925        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1926    }
1927    #[inline]
1928    pub fn text_token(&self) -> Option<SyntaxToken> {
1929        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1930    }
1931}
1932
1933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1934pub struct AlterTextSearchTemplate {
1935    pub(crate) syntax: SyntaxNode,
1936}
1937impl AlterTextSearchTemplate {
1938    #[inline]
1939    pub fn path(&self) -> Option<Path> {
1940        support::child(&self.syntax)
1941    }
1942    #[inline]
1943    pub fn rename_to(&self) -> Option<RenameTo> {
1944        support::child(&self.syntax)
1945    }
1946    #[inline]
1947    pub fn set_schema(&self) -> Option<SetSchema> {
1948        support::child(&self.syntax)
1949    }
1950    #[inline]
1951    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1952        support::token(&self.syntax, SyntaxKind::SEMICOLON)
1953    }
1954    #[inline]
1955    pub fn alter_token(&self) -> Option<SyntaxToken> {
1956        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1957    }
1958    #[inline]
1959    pub fn search_token(&self) -> Option<SyntaxToken> {
1960        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1961    }
1962    #[inline]
1963    pub fn template_token(&self) -> Option<SyntaxToken> {
1964        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1965    }
1966    #[inline]
1967    pub fn text_token(&self) -> Option<SyntaxToken> {
1968        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1969    }
1970}
1971
1972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1973pub struct AlterTrigger {
1974    pub(crate) syntax: SyntaxNode,
1975}
1976impl AlterTrigger {
1977    #[inline]
1978    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1979        support::child(&self.syntax)
1980    }
1981    #[inline]
1982    pub fn name_ref(&self) -> Option<NameRef> {
1983        support::child(&self.syntax)
1984    }
1985    #[inline]
1986    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1987        support::child(&self.syntax)
1988    }
1989    #[inline]
1990    pub fn on_table(&self) -> Option<OnTable> {
1991        support::child(&self.syntax)
1992    }
1993    #[inline]
1994    pub fn rename_to(&self) -> Option<RenameTo> {
1995        support::child(&self.syntax)
1996    }
1997    #[inline]
1998    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
1999        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2000    }
2001    #[inline]
2002    pub fn alter_token(&self) -> Option<SyntaxToken> {
2003        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2004    }
2005    #[inline]
2006    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2007        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2008    }
2009}
2010
2011#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2012pub struct AlterType {
2013    pub(crate) syntax: SyntaxNode,
2014}
2015impl AlterType {
2016    #[inline]
2017    pub fn add_value(&self) -> Option<AddValue> {
2018        support::child(&self.syntax)
2019    }
2020    #[inline]
2021    pub fn alter_type_actions(&self) -> AstChildren<AlterTypeAction> {
2022        support::children(&self.syntax)
2023    }
2024    #[inline]
2025    pub fn owner_to(&self) -> Option<OwnerTo> {
2026        support::child(&self.syntax)
2027    }
2028    #[inline]
2029    pub fn path(&self) -> Option<Path> {
2030        support::child(&self.syntax)
2031    }
2032    #[inline]
2033    pub fn rename_attribute(&self) -> Option<RenameAttribute> {
2034        support::child(&self.syntax)
2035    }
2036    #[inline]
2037    pub fn rename_to(&self) -> Option<RenameTo> {
2038        support::child(&self.syntax)
2039    }
2040    #[inline]
2041    pub fn rename_value(&self) -> Option<RenameValue> {
2042        support::child(&self.syntax)
2043    }
2044    #[inline]
2045    pub fn set_options(&self) -> Option<SetOptions> {
2046        support::child(&self.syntax)
2047    }
2048    #[inline]
2049    pub fn set_schema(&self) -> Option<SetSchema> {
2050        support::child(&self.syntax)
2051    }
2052    #[inline]
2053    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2054        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2055    }
2056    #[inline]
2057    pub fn alter_token(&self) -> Option<SyntaxToken> {
2058        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2059    }
2060    #[inline]
2061    pub fn type_token(&self) -> Option<SyntaxToken> {
2062        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2063    }
2064}
2065
2066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2067pub struct AlterUser {
2068    pub(crate) syntax: SyntaxNode,
2069}
2070impl AlterUser {
2071    #[inline]
2072    pub fn role_ref(&self) -> Option<RoleRef> {
2073        support::child(&self.syntax)
2074    }
2075    #[inline]
2076    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2077        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2078    }
2079    #[inline]
2080    pub fn alter_token(&self) -> Option<SyntaxToken> {
2081        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2082    }
2083    #[inline]
2084    pub fn user_token(&self) -> Option<SyntaxToken> {
2085        support::token(&self.syntax, SyntaxKind::USER_KW)
2086    }
2087}
2088
2089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2090pub struct AlterUserMapping {
2091    pub(crate) syntax: SyntaxNode,
2092}
2093impl AlterUserMapping {
2094    #[inline]
2095    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
2096        support::child(&self.syntax)
2097    }
2098    #[inline]
2099    pub fn role_ref(&self) -> Option<RoleRef> {
2100        support::child(&self.syntax)
2101    }
2102    #[inline]
2103    pub fn server_name(&self) -> Option<ServerName> {
2104        support::child(&self.syntax)
2105    }
2106    #[inline]
2107    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2108        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2109    }
2110    #[inline]
2111    pub fn alter_token(&self) -> Option<SyntaxToken> {
2112        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2113    }
2114    #[inline]
2115    pub fn for_token(&self) -> Option<SyntaxToken> {
2116        support::token(&self.syntax, SyntaxKind::FOR_KW)
2117    }
2118    #[inline]
2119    pub fn mapping_token(&self) -> Option<SyntaxToken> {
2120        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
2121    }
2122    #[inline]
2123    pub fn user_token(&self) -> Option<SyntaxToken> {
2124        support::token(&self.syntax, SyntaxKind::USER_KW)
2125    }
2126}
2127
2128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2129pub struct AlterVertexEdgeLabels {
2130    pub(crate) syntax: SyntaxNode,
2131}
2132impl AlterVertexEdgeLabels {
2133    #[inline]
2134    pub fn add_label(&self) -> Option<AddLabel> {
2135        support::child(&self.syntax)
2136    }
2137    #[inline]
2138    pub fn add_labels(&self) -> AstChildren<AddLabel> {
2139        support::children(&self.syntax)
2140    }
2141    #[inline]
2142    pub fn name(&self) -> Option<Name> {
2143        support::child(&self.syntax)
2144    }
2145    #[inline]
2146    pub fn alter_token(&self) -> Option<SyntaxToken> {
2147        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2148    }
2149    #[inline]
2150    pub fn edge_token(&self) -> Option<SyntaxToken> {
2151        support::token(&self.syntax, SyntaxKind::EDGE_KW)
2152    }
2153    #[inline]
2154    pub fn node_token(&self) -> Option<SyntaxToken> {
2155        support::token(&self.syntax, SyntaxKind::NODE_KW)
2156    }
2157    #[inline]
2158    pub fn relationship_token(&self) -> Option<SyntaxToken> {
2159        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
2160    }
2161    #[inline]
2162    pub fn table_token(&self) -> Option<SyntaxToken> {
2163        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2164    }
2165    #[inline]
2166    pub fn vertex_token(&self) -> Option<SyntaxToken> {
2167        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
2168    }
2169}
2170
2171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2172pub struct AlterView {
2173    pub(crate) syntax: SyntaxNode,
2174}
2175impl AlterView {
2176    #[inline]
2177    pub fn path(&self) -> Option<Path> {
2178        support::child(&self.syntax)
2179    }
2180    #[inline]
2181    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2182        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2183    }
2184    #[inline]
2185    pub fn alter_token(&self) -> Option<SyntaxToken> {
2186        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2187    }
2188    #[inline]
2189    pub fn view_token(&self) -> Option<SyntaxToken> {
2190        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2191    }
2192}
2193
2194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2195pub struct Analyze {
2196    pub(crate) syntax: SyntaxNode,
2197}
2198impl Analyze {
2199    #[inline]
2200    pub fn option_item_list(&self) -> Option<OptionItemList> {
2201        support::child(&self.syntax)
2202    }
2203    #[inline]
2204    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
2205        support::child(&self.syntax)
2206    }
2207    #[inline]
2208    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2209        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2210    }
2211    #[inline]
2212    pub fn analyse_token(&self) -> Option<SyntaxToken> {
2213        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
2214    }
2215    #[inline]
2216    pub fn analyze_token(&self) -> Option<SyntaxToken> {
2217        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
2218    }
2219    #[inline]
2220    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2221        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2222    }
2223}
2224
2225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2226pub struct AnyFn {
2227    pub(crate) syntax: SyntaxNode,
2228}
2229impl AnyFn {
2230    #[inline]
2231    pub fn expr(&self) -> Option<Expr> {
2232        support::child(&self.syntax)
2233    }
2234    #[inline]
2235    pub fn select_variant(&self) -> Option<SelectVariant> {
2236        support::child(&self.syntax)
2237    }
2238    #[inline]
2239    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2240        support::token(&self.syntax, SyntaxKind::L_PAREN)
2241    }
2242    #[inline]
2243    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2244        support::token(&self.syntax, SyntaxKind::R_PAREN)
2245    }
2246    #[inline]
2247    pub fn any_token(&self) -> Option<SyntaxToken> {
2248        support::token(&self.syntax, SyntaxKind::ANY_KW)
2249    }
2250}
2251
2252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2253pub struct Arg {
2254    pub(crate) syntax: SyntaxNode,
2255}
2256impl Arg {
2257    #[inline]
2258    pub fn expr(&self) -> Option<Expr> {
2259        support::child(&self.syntax)
2260    }
2261}
2262
2263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2264pub struct ArgList {
2265    pub(crate) syntax: SyntaxNode,
2266}
2267impl ArgList {
2268    #[inline]
2269    pub fn args(&self) -> AstChildren<Expr> {
2270        support::children(&self.syntax)
2271    }
2272    #[inline]
2273    pub fn args_(&self) -> AstChildren<Arg> {
2274        support::children(&self.syntax)
2275    }
2276    #[inline]
2277    pub fn expr(&self) -> Option<Expr> {
2278        support::child(&self.syntax)
2279    }
2280    #[inline]
2281    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2282        support::token(&self.syntax, SyntaxKind::L_PAREN)
2283    }
2284    #[inline]
2285    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2286        support::token(&self.syntax, SyntaxKind::R_PAREN)
2287    }
2288    #[inline]
2289    pub fn star_token(&self) -> Option<SyntaxToken> {
2290        support::token(&self.syntax, SyntaxKind::STAR)
2291    }
2292    #[inline]
2293    pub fn all_token(&self) -> Option<SyntaxToken> {
2294        support::token(&self.syntax, SyntaxKind::ALL_KW)
2295    }
2296    #[inline]
2297    pub fn distinct_token(&self) -> Option<SyntaxToken> {
2298        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
2299    }
2300    #[inline]
2301    pub fn variadic_token(&self) -> Option<SyntaxToken> {
2302        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
2303    }
2304}
2305
2306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2307pub struct ArrayExpr {
2308    pub(crate) syntax: SyntaxNode,
2309}
2310impl ArrayExpr {
2311    #[inline]
2312    pub fn exprs(&self) -> AstChildren<Expr> {
2313        support::children(&self.syntax)
2314    }
2315    #[inline]
2316    pub fn select(&self) -> Option<Select> {
2317        support::child(&self.syntax)
2318    }
2319    #[inline]
2320    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2321        support::token(&self.syntax, SyntaxKind::L_PAREN)
2322    }
2323    #[inline]
2324    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2325        support::token(&self.syntax, SyntaxKind::R_PAREN)
2326    }
2327    #[inline]
2328    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2329        support::token(&self.syntax, SyntaxKind::L_BRACK)
2330    }
2331    #[inline]
2332    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2333        support::token(&self.syntax, SyntaxKind::R_BRACK)
2334    }
2335    #[inline]
2336    pub fn array_token(&self) -> Option<SyntaxToken> {
2337        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2338    }
2339}
2340
2341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2342pub struct ArrayType {
2343    pub(crate) syntax: SyntaxNode,
2344}
2345impl ArrayType {
2346    #[inline]
2347    pub fn expr(&self) -> Option<Expr> {
2348        support::child(&self.syntax)
2349    }
2350    #[inline]
2351    pub fn name_ref(&self) -> Option<NameRef> {
2352        support::child(&self.syntax)
2353    }
2354    #[inline]
2355    pub fn ty(&self) -> Option<Type> {
2356        support::child(&self.syntax)
2357    }
2358    #[inline]
2359    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2360        support::token(&self.syntax, SyntaxKind::L_BRACK)
2361    }
2362    #[inline]
2363    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::R_BRACK)
2365    }
2366    #[inline]
2367    pub fn array_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2369    }
2370}
2371
2372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2373pub struct AsFuncOption {
2374    pub(crate) syntax: SyntaxNode,
2375}
2376impl AsFuncOption {
2377    #[inline]
2378    pub fn definition(&self) -> Option<Literal> {
2379        support::child(&self.syntax)
2380    }
2381    #[inline]
2382    pub fn link_symbol(&self) -> Option<Literal> {
2383        support::child(&self.syntax)
2384    }
2385    #[inline]
2386    pub fn obj_file(&self) -> Option<Literal> {
2387        support::child(&self.syntax)
2388    }
2389    #[inline]
2390    pub fn comma_token(&self) -> Option<SyntaxToken> {
2391        support::token(&self.syntax, SyntaxKind::COMMA)
2392    }
2393    #[inline]
2394    pub fn as_token(&self) -> Option<SyntaxToken> {
2395        support::token(&self.syntax, SyntaxKind::AS_KW)
2396    }
2397}
2398
2399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2400pub struct AsName {
2401    pub(crate) syntax: SyntaxNode,
2402}
2403impl AsName {
2404    #[inline]
2405    pub fn name(&self) -> Option<Name> {
2406        support::child(&self.syntax)
2407    }
2408    #[inline]
2409    pub fn as_token(&self) -> Option<SyntaxToken> {
2410        support::token(&self.syntax, SyntaxKind::AS_KW)
2411    }
2412}
2413
2414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2415pub struct AsPolicyType {
2416    pub(crate) syntax: SyntaxNode,
2417}
2418impl AsPolicyType {
2419    #[inline]
2420    pub fn as_token(&self) -> Option<SyntaxToken> {
2421        support::token(&self.syntax, SyntaxKind::AS_KW)
2422    }
2423    #[inline]
2424    pub fn ident_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::IDENT)
2426    }
2427}
2428
2429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2430pub struct AtTimeZone {
2431    pub(crate) syntax: SyntaxNode,
2432}
2433impl AtTimeZone {
2434    #[inline]
2435    pub fn at_token(&self) -> Option<SyntaxToken> {
2436        support::token(&self.syntax, SyntaxKind::AT_KW)
2437    }
2438    #[inline]
2439    pub fn time_token(&self) -> Option<SyntaxToken> {
2440        support::token(&self.syntax, SyntaxKind::TIME_KW)
2441    }
2442    #[inline]
2443    pub fn zone_token(&self) -> Option<SyntaxToken> {
2444        support::token(&self.syntax, SyntaxKind::ZONE_KW)
2445    }
2446}
2447
2448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2449pub struct AttachPartition {
2450    pub(crate) syntax: SyntaxNode,
2451}
2452impl AttachPartition {
2453    #[inline]
2454    pub fn partition_type(&self) -> Option<PartitionType> {
2455        support::child(&self.syntax)
2456    }
2457    #[inline]
2458    pub fn path(&self) -> Option<Path> {
2459        support::child(&self.syntax)
2460    }
2461    #[inline]
2462    pub fn attach_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
2464    }
2465    #[inline]
2466    pub fn partition_token(&self) -> Option<SyntaxToken> {
2467        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
2468    }
2469}
2470
2471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2472pub struct AttributeList {
2473    pub(crate) syntax: SyntaxNode,
2474}
2475impl AttributeList {
2476    #[inline]
2477    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
2478        support::children(&self.syntax)
2479    }
2480    #[inline]
2481    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2482        support::token(&self.syntax, SyntaxKind::L_PAREN)
2483    }
2484    #[inline]
2485    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2486        support::token(&self.syntax, SyntaxKind::R_PAREN)
2487    }
2488}
2489
2490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2491pub struct AttributeOption {
2492    pub(crate) syntax: SyntaxNode,
2493}
2494impl AttributeOption {
2495    #[inline]
2496    pub fn attribute_value(&self) -> Option<AttributeValue> {
2497        support::child(&self.syntax)
2498    }
2499    #[inline]
2500    pub fn name(&self) -> Option<Name> {
2501        support::child(&self.syntax)
2502    }
2503    #[inline]
2504    pub fn dot_token(&self) -> Option<SyntaxToken> {
2505        support::token(&self.syntax, SyntaxKind::DOT)
2506    }
2507    #[inline]
2508    pub fn eq_token(&self) -> Option<SyntaxToken> {
2509        support::token(&self.syntax, SyntaxKind::EQ)
2510    }
2511}
2512
2513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2514pub struct AttributeValue {
2515    pub(crate) syntax: SyntaxNode,
2516}
2517impl AttributeValue {
2518    #[inline]
2519    pub fn literal(&self) -> Option<Literal> {
2520        support::child(&self.syntax)
2521    }
2522    #[inline]
2523    pub fn op(&self) -> Option<Op> {
2524        support::child(&self.syntax)
2525    }
2526    #[inline]
2527    pub fn ty(&self) -> Option<Type> {
2528        support::child(&self.syntax)
2529    }
2530    #[inline]
2531    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2532        support::token(&self.syntax, SyntaxKind::L_PAREN)
2533    }
2534    #[inline]
2535    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2536        support::token(&self.syntax, SyntaxKind::R_PAREN)
2537    }
2538    #[inline]
2539    pub fn none_token(&self) -> Option<SyntaxToken> {
2540        support::token(&self.syntax, SyntaxKind::NONE_KW)
2541    }
2542    #[inline]
2543    pub fn operator_token(&self) -> Option<SyntaxToken> {
2544        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2545    }
2546}
2547
2548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2549pub struct BeforeValue {
2550    pub(crate) syntax: SyntaxNode,
2551}
2552impl BeforeValue {
2553    #[inline]
2554    pub fn literal(&self) -> Option<Literal> {
2555        support::child(&self.syntax)
2556    }
2557    #[inline]
2558    pub fn before_token(&self) -> Option<SyntaxToken> {
2559        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
2560    }
2561}
2562
2563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2564pub struct Begin {
2565    pub(crate) syntax: SyntaxNode,
2566}
2567impl Begin {
2568    #[inline]
2569    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2574        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2575    }
2576    #[inline]
2577    pub fn begin_token(&self) -> Option<SyntaxToken> {
2578        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2579    }
2580    #[inline]
2581    pub fn start_token(&self) -> Option<SyntaxToken> {
2582        support::token(&self.syntax, SyntaxKind::START_KW)
2583    }
2584    #[inline]
2585    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2586        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2587    }
2588    #[inline]
2589    pub fn work_token(&self) -> Option<SyntaxToken> {
2590        support::token(&self.syntax, SyntaxKind::WORK_KW)
2591    }
2592}
2593
2594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2595pub struct BeginFuncOptionList {
2596    pub(crate) syntax: SyntaxNode,
2597}
2598impl BeginFuncOptionList {
2599    #[inline]
2600    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2601        support::children(&self.syntax)
2602    }
2603    #[inline]
2604    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2605        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2606    }
2607    #[inline]
2608    pub fn begin_token(&self) -> Option<SyntaxToken> {
2609        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2610    }
2611    #[inline]
2612    pub fn end_token(&self) -> Option<SyntaxToken> {
2613        support::token(&self.syntax, SyntaxKind::END_KW)
2614    }
2615}
2616
2617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2618pub struct BetweenExpr {
2619    pub(crate) syntax: SyntaxNode,
2620}
2621impl BetweenExpr {
2622    #[inline]
2623    pub fn and_token(&self) -> Option<SyntaxToken> {
2624        support::token(&self.syntax, SyntaxKind::AND_KW)
2625    }
2626    #[inline]
2627    pub fn between_token(&self) -> Option<SyntaxToken> {
2628        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2629    }
2630    #[inline]
2631    pub fn not_token(&self) -> Option<SyntaxToken> {
2632        support::token(&self.syntax, SyntaxKind::NOT_KW)
2633    }
2634    #[inline]
2635    pub fn symmetric_token(&self) -> Option<SyntaxToken> {
2636        support::token(&self.syntax, SyntaxKind::SYMMETRIC_KW)
2637    }
2638}
2639
2640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2641pub struct BinExpr {
2642    pub(crate) syntax: SyntaxNode,
2643}
2644impl BinExpr {}
2645
2646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2647pub struct BitType {
2648    pub(crate) syntax: SyntaxNode,
2649}
2650impl BitType {
2651    #[inline]
2652    pub fn arg_list(&self) -> Option<ArgList> {
2653        support::child(&self.syntax)
2654    }
2655    #[inline]
2656    pub fn bit_token(&self) -> Option<SyntaxToken> {
2657        support::token(&self.syntax, SyntaxKind::BIT_KW)
2658    }
2659    #[inline]
2660    pub fn setof_token(&self) -> Option<SyntaxToken> {
2661        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2662    }
2663    #[inline]
2664    pub fn varying_token(&self) -> Option<SyntaxToken> {
2665        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2666    }
2667}
2668
2669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2670pub struct Call {
2671    pub(crate) syntax: SyntaxNode,
2672}
2673impl Call {
2674    #[inline]
2675    pub fn arg_list(&self) -> Option<ArgList> {
2676        support::child(&self.syntax)
2677    }
2678    #[inline]
2679    pub fn path(&self) -> Option<Path> {
2680        support::child(&self.syntax)
2681    }
2682    #[inline]
2683    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2684        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2685    }
2686    #[inline]
2687    pub fn call_token(&self) -> Option<SyntaxToken> {
2688        support::token(&self.syntax, SyntaxKind::CALL_KW)
2689    }
2690}
2691
2692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2693pub struct CallExpr {
2694    pub(crate) syntax: SyntaxNode,
2695}
2696impl CallExpr {
2697    #[inline]
2698    pub fn all_fn(&self) -> Option<AllFn> {
2699        support::child(&self.syntax)
2700    }
2701    #[inline]
2702    pub fn any_fn(&self) -> Option<AnyFn> {
2703        support::child(&self.syntax)
2704    }
2705    #[inline]
2706    pub fn arg_list(&self) -> Option<ArgList> {
2707        support::child(&self.syntax)
2708    }
2709    #[inline]
2710    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
2711        support::child(&self.syntax)
2712    }
2713    #[inline]
2714    pub fn exists_fn(&self) -> Option<ExistsFn> {
2715        support::child(&self.syntax)
2716    }
2717    #[inline]
2718    pub fn expr(&self) -> Option<Expr> {
2719        support::child(&self.syntax)
2720    }
2721    #[inline]
2722    pub fn extract_fn(&self) -> Option<ExtractFn> {
2723        support::child(&self.syntax)
2724    }
2725    #[inline]
2726    pub fn filter_clause(&self) -> Option<FilterClause> {
2727        support::child(&self.syntax)
2728    }
2729    #[inline]
2730    pub fn graph_table_fn(&self) -> Option<GraphTableFn> {
2731        support::child(&self.syntax)
2732    }
2733    #[inline]
2734    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2735        support::child(&self.syntax)
2736    }
2737    #[inline]
2738    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2739        support::child(&self.syntax)
2740    }
2741    #[inline]
2742    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2743        support::child(&self.syntax)
2744    }
2745    #[inline]
2746    pub fn json_fn(&self) -> Option<JsonFn> {
2747        support::child(&self.syntax)
2748    }
2749    #[inline]
2750    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2751        support::child(&self.syntax)
2752    }
2753    #[inline]
2754    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2755        support::child(&self.syntax)
2756    }
2757    #[inline]
2758    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2759        support::child(&self.syntax)
2760    }
2761    #[inline]
2762    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2763        support::child(&self.syntax)
2764    }
2765    #[inline]
2766    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2767        support::child(&self.syntax)
2768    }
2769    #[inline]
2770    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2771        support::child(&self.syntax)
2772    }
2773    #[inline]
2774    pub fn over_clause(&self) -> Option<OverClause> {
2775        support::child(&self.syntax)
2776    }
2777    #[inline]
2778    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2779        support::child(&self.syntax)
2780    }
2781    #[inline]
2782    pub fn position_fn(&self) -> Option<PositionFn> {
2783        support::child(&self.syntax)
2784    }
2785    #[inline]
2786    pub fn some_fn(&self) -> Option<SomeFn> {
2787        support::child(&self.syntax)
2788    }
2789    #[inline]
2790    pub fn substring_fn(&self) -> Option<SubstringFn> {
2791        support::child(&self.syntax)
2792    }
2793    #[inline]
2794    pub fn trim_fn(&self) -> Option<TrimFn> {
2795        support::child(&self.syntax)
2796    }
2797    #[inline]
2798    pub fn within_clause(&self) -> Option<WithinClause> {
2799        support::child(&self.syntax)
2800    }
2801    #[inline]
2802    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2803        support::child(&self.syntax)
2804    }
2805    #[inline]
2806    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2807        support::child(&self.syntax)
2808    }
2809    #[inline]
2810    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2811        support::child(&self.syntax)
2812    }
2813    #[inline]
2814    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2815        support::child(&self.syntax)
2816    }
2817    #[inline]
2818    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2819        support::child(&self.syntax)
2820    }
2821    #[inline]
2822    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2823        support::child(&self.syntax)
2824    }
2825    #[inline]
2826    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2827        support::child(&self.syntax)
2828    }
2829}
2830
2831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2832pub struct Cascade {
2833    pub(crate) syntax: SyntaxNode,
2834}
2835impl Cascade {
2836    #[inline]
2837    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2838        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2839    }
2840}
2841
2842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2843pub struct CaseExpr {
2844    pub(crate) syntax: SyntaxNode,
2845}
2846impl CaseExpr {
2847    #[inline]
2848    pub fn else_clause(&self) -> Option<ElseClause> {
2849        support::child(&self.syntax)
2850    }
2851    #[inline]
2852    pub fn expr(&self) -> Option<Expr> {
2853        support::child(&self.syntax)
2854    }
2855    #[inline]
2856    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2857        support::child(&self.syntax)
2858    }
2859    #[inline]
2860    pub fn case_token(&self) -> Option<SyntaxToken> {
2861        support::token(&self.syntax, SyntaxKind::CASE_KW)
2862    }
2863}
2864
2865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2866pub struct CastExpr {
2867    pub(crate) syntax: SyntaxNode,
2868}
2869impl CastExpr {
2870    #[inline]
2871    pub fn colon_colon(&self) -> Option<ColonColon> {
2872        support::child(&self.syntax)
2873    }
2874    #[inline]
2875    pub fn expr(&self) -> Option<Expr> {
2876        support::child(&self.syntax)
2877    }
2878    #[inline]
2879    pub fn literal(&self) -> Option<Literal> {
2880        support::child(&self.syntax)
2881    }
2882    #[inline]
2883    pub fn ty(&self) -> Option<Type> {
2884        support::child(&self.syntax)
2885    }
2886    #[inline]
2887    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2888        support::token(&self.syntax, SyntaxKind::L_PAREN)
2889    }
2890    #[inline]
2891    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2892        support::token(&self.syntax, SyntaxKind::R_PAREN)
2893    }
2894    #[inline]
2895    pub fn as_token(&self) -> Option<SyntaxToken> {
2896        support::token(&self.syntax, SyntaxKind::AS_KW)
2897    }
2898    #[inline]
2899    pub fn cast_token(&self) -> Option<SyntaxToken> {
2900        support::token(&self.syntax, SyntaxKind::CAST_KW)
2901    }
2902    #[inline]
2903    pub fn treat_token(&self) -> Option<SyntaxToken> {
2904        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2905    }
2906}
2907
2908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2909pub struct CastSig {
2910    pub(crate) syntax: SyntaxNode,
2911}
2912impl CastSig {
2913    #[inline]
2914    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2915        support::token(&self.syntax, SyntaxKind::L_PAREN)
2916    }
2917    #[inline]
2918    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2919        support::token(&self.syntax, SyntaxKind::R_PAREN)
2920    }
2921    #[inline]
2922    pub fn as_token(&self) -> Option<SyntaxToken> {
2923        support::token(&self.syntax, SyntaxKind::AS_KW)
2924    }
2925}
2926
2927#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2928pub struct CharType {
2929    pub(crate) syntax: SyntaxNode,
2930}
2931impl CharType {
2932    #[inline]
2933    pub fn arg_list(&self) -> Option<ArgList> {
2934        support::child(&self.syntax)
2935    }
2936    #[inline]
2937    pub fn char_token(&self) -> Option<SyntaxToken> {
2938        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2939    }
2940    #[inline]
2941    pub fn character_token(&self) -> Option<SyntaxToken> {
2942        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2943    }
2944    #[inline]
2945    pub fn national_token(&self) -> Option<SyntaxToken> {
2946        support::token(&self.syntax, SyntaxKind::NATIONAL_KW)
2947    }
2948    #[inline]
2949    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2950        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2951    }
2952    #[inline]
2953    pub fn setof_token(&self) -> Option<SyntaxToken> {
2954        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2955    }
2956    #[inline]
2957    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2958        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2959    }
2960    #[inline]
2961    pub fn varying_token(&self) -> Option<SyntaxToken> {
2962        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2963    }
2964}
2965
2966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2967pub struct CheckConstraint {
2968    pub(crate) syntax: SyntaxNode,
2969}
2970impl CheckConstraint {
2971    #[inline]
2972    pub fn constraint_name(&self) -> Option<ConstraintName> {
2973        support::child(&self.syntax)
2974    }
2975    #[inline]
2976    pub fn expr(&self) -> Option<Expr> {
2977        support::child(&self.syntax)
2978    }
2979    #[inline]
2980    pub fn no_inherit(&self) -> Option<NoInherit> {
2981        support::child(&self.syntax)
2982    }
2983    #[inline]
2984    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2985        support::token(&self.syntax, SyntaxKind::L_PAREN)
2986    }
2987    #[inline]
2988    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2989        support::token(&self.syntax, SyntaxKind::R_PAREN)
2990    }
2991    #[inline]
2992    pub fn check_token(&self) -> Option<SyntaxToken> {
2993        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2994    }
2995}
2996
2997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2998pub struct Checkpoint {
2999    pub(crate) syntax: SyntaxNode,
3000}
3001impl Checkpoint {
3002    #[inline]
3003    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3004        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3005    }
3006    #[inline]
3007    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
3008        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
3009    }
3010}
3011
3012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3013pub struct Close {
3014    pub(crate) syntax: SyntaxNode,
3015}
3016impl Close {
3017    #[inline]
3018    pub fn name_ref(&self) -> Option<NameRef> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3023        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3024    }
3025    #[inline]
3026    pub fn close_token(&self) -> Option<SyntaxToken> {
3027        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
3028    }
3029}
3030
3031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3032pub struct Cluster {
3033    pub(crate) syntax: SyntaxNode,
3034}
3035impl Cluster {
3036    #[inline]
3037    pub fn on_path(&self) -> Option<OnPath> {
3038        support::child(&self.syntax)
3039    }
3040    #[inline]
3041    pub fn option_item_list(&self) -> Option<OptionItemList> {
3042        support::child(&self.syntax)
3043    }
3044    #[inline]
3045    pub fn path(&self) -> Option<Path> {
3046        support::child(&self.syntax)
3047    }
3048    #[inline]
3049    pub fn using_method(&self) -> Option<UsingMethod> {
3050        support::child(&self.syntax)
3051    }
3052    #[inline]
3053    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3054        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3055    }
3056    #[inline]
3057    pub fn cluster_token(&self) -> Option<SyntaxToken> {
3058        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
3059    }
3060    #[inline]
3061    pub fn verbose_token(&self) -> Option<SyntaxToken> {
3062        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
3063    }
3064}
3065
3066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3067pub struct ClusterOn {
3068    pub(crate) syntax: SyntaxNode,
3069}
3070impl ClusterOn {
3071    #[inline]
3072    pub fn cluster_token(&self) -> Option<SyntaxToken> {
3073        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
3074    }
3075    #[inline]
3076    pub fn on_token(&self) -> Option<SyntaxToken> {
3077        support::token(&self.syntax, SyntaxKind::ON_KW)
3078    }
3079}
3080
3081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3082pub struct Collate {
3083    pub(crate) syntax: SyntaxNode,
3084}
3085impl Collate {
3086    #[inline]
3087    pub fn path(&self) -> Option<Path> {
3088        support::child(&self.syntax)
3089    }
3090    #[inline]
3091    pub fn collate_token(&self) -> Option<SyntaxToken> {
3092        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
3093    }
3094}
3095
3096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3097pub struct CollationForFn {
3098    pub(crate) syntax: SyntaxNode,
3099}
3100impl CollationForFn {
3101    #[inline]
3102    pub fn expr(&self) -> Option<Expr> {
3103        support::child(&self.syntax)
3104    }
3105    #[inline]
3106    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3107        support::token(&self.syntax, SyntaxKind::L_PAREN)
3108    }
3109    #[inline]
3110    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3111        support::token(&self.syntax, SyntaxKind::R_PAREN)
3112    }
3113    #[inline]
3114    pub fn collation_token(&self) -> Option<SyntaxToken> {
3115        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3116    }
3117    #[inline]
3118    pub fn for_token(&self) -> Option<SyntaxToken> {
3119        support::token(&self.syntax, SyntaxKind::FOR_KW)
3120    }
3121}
3122
3123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3124pub struct ColonColon {
3125    pub(crate) syntax: SyntaxNode,
3126}
3127impl ColonColon {
3128    #[inline]
3129    pub fn colon_token(&self) -> Option<SyntaxToken> {
3130        support::token(&self.syntax, SyntaxKind::COLON)
3131    }
3132}
3133
3134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3135pub struct ColonEq {
3136    pub(crate) syntax: SyntaxNode,
3137}
3138impl ColonEq {
3139    #[inline]
3140    pub fn colon_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::COLON)
3142    }
3143    #[inline]
3144    pub fn eq_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::EQ)
3146    }
3147}
3148
3149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3150pub struct Column {
3151    pub(crate) syntax: SyntaxNode,
3152}
3153impl Column {
3154    #[inline]
3155    pub fn collate(&self) -> Option<Collate> {
3156        support::child(&self.syntax)
3157    }
3158    #[inline]
3159    pub fn compression_method(&self) -> Option<CompressionMethod> {
3160        support::child(&self.syntax)
3161    }
3162    #[inline]
3163    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
3164        support::children(&self.syntax)
3165    }
3166    #[inline]
3167    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
3168        support::child(&self.syntax)
3169    }
3170    #[inline]
3171    pub fn enforced(&self) -> Option<Enforced> {
3172        support::child(&self.syntax)
3173    }
3174    #[inline]
3175    pub fn index_expr(&self) -> Option<IndexExpr> {
3176        support::child(&self.syntax)
3177    }
3178    #[inline]
3179    pub fn initially_deferred_constraint_option(
3180        &self,
3181    ) -> Option<InitiallyDeferredConstraintOption> {
3182        support::child(&self.syntax)
3183    }
3184    #[inline]
3185    pub fn initially_immediate_constraint_option(
3186        &self,
3187    ) -> Option<InitiallyImmediateConstraintOption> {
3188        support::child(&self.syntax)
3189    }
3190    #[inline]
3191    pub fn name(&self) -> Option<Name> {
3192        support::child(&self.syntax)
3193    }
3194    #[inline]
3195    pub fn name_ref(&self) -> Option<NameRef> {
3196        support::child(&self.syntax)
3197    }
3198    #[inline]
3199    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3200        support::child(&self.syntax)
3201    }
3202    #[inline]
3203    pub fn not_enforced(&self) -> Option<NotEnforced> {
3204        support::child(&self.syntax)
3205    }
3206    #[inline]
3207    pub fn storage(&self) -> Option<Storage> {
3208        support::child(&self.syntax)
3209    }
3210    #[inline]
3211    pub fn ty(&self) -> Option<Type> {
3212        support::child(&self.syntax)
3213    }
3214    #[inline]
3215    pub fn with_options(&self) -> Option<WithOptions> {
3216        support::child(&self.syntax)
3217    }
3218    #[inline]
3219    pub fn period_token(&self) -> Option<SyntaxToken> {
3220        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3221    }
3222}
3223
3224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3225pub struct ColumnList {
3226    pub(crate) syntax: SyntaxNode,
3227}
3228impl ColumnList {
3229    #[inline]
3230    pub fn columns(&self) -> AstChildren<Column> {
3231        support::children(&self.syntax)
3232    }
3233    #[inline]
3234    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3235        support::token(&self.syntax, SyntaxKind::L_PAREN)
3236    }
3237    #[inline]
3238    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3239        support::token(&self.syntax, SyntaxKind::R_PAREN)
3240    }
3241}
3242
3243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3244pub struct CommentOn {
3245    pub(crate) syntax: SyntaxNode,
3246}
3247impl CommentOn {
3248    #[inline]
3249    pub fn aggregate(&self) -> Option<Aggregate> {
3250        support::child(&self.syntax)
3251    }
3252    #[inline]
3253    pub fn cast_sig(&self) -> Option<CastSig> {
3254        support::child(&self.syntax)
3255    }
3256    #[inline]
3257    pub fn function_sig(&self) -> Option<FunctionSig> {
3258        support::child(&self.syntax)
3259    }
3260    #[inline]
3261    pub fn literal(&self) -> Option<Literal> {
3262        support::child(&self.syntax)
3263    }
3264    #[inline]
3265    pub fn name_ref(&self) -> Option<NameRef> {
3266        support::child(&self.syntax)
3267    }
3268    #[inline]
3269    pub fn op(&self) -> Option<Op> {
3270        support::child(&self.syntax)
3271    }
3272    #[inline]
3273    pub fn path(&self) -> Option<Path> {
3274        support::child(&self.syntax)
3275    }
3276    #[inline]
3277    pub fn ty(&self) -> Option<Type> {
3278        support::child(&self.syntax)
3279    }
3280    #[inline]
3281    pub fn using_method(&self) -> Option<UsingMethod> {
3282        support::child(&self.syntax)
3283    }
3284    #[inline]
3285    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3286        support::token(&self.syntax, SyntaxKind::L_PAREN)
3287    }
3288    #[inline]
3289    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3290        support::token(&self.syntax, SyntaxKind::R_PAREN)
3291    }
3292    #[inline]
3293    pub fn comma_token(&self) -> Option<SyntaxToken> {
3294        support::token(&self.syntax, SyntaxKind::COMMA)
3295    }
3296    #[inline]
3297    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3298        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3299    }
3300    #[inline]
3301    pub fn access_token(&self) -> Option<SyntaxToken> {
3302        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3303    }
3304    #[inline]
3305    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3306        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3307    }
3308    #[inline]
3309    pub fn cast_token(&self) -> Option<SyntaxToken> {
3310        support::token(&self.syntax, SyntaxKind::CAST_KW)
3311    }
3312    #[inline]
3313    pub fn class_token(&self) -> Option<SyntaxToken> {
3314        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3315    }
3316    #[inline]
3317    pub fn collation_token(&self) -> Option<SyntaxToken> {
3318        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3319    }
3320    #[inline]
3321    pub fn column_token(&self) -> Option<SyntaxToken> {
3322        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3323    }
3324    #[inline]
3325    pub fn comment_token(&self) -> Option<SyntaxToken> {
3326        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3327    }
3328    #[inline]
3329    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3330        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3331    }
3332    #[inline]
3333    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3334        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3335    }
3336    #[inline]
3337    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3338        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3339    }
3340    #[inline]
3341    pub fn data_token(&self) -> Option<SyntaxToken> {
3342        support::token(&self.syntax, SyntaxKind::DATA_KW)
3343    }
3344    #[inline]
3345    pub fn database_token(&self) -> Option<SyntaxToken> {
3346        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3347    }
3348    #[inline]
3349    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3350        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3351    }
3352    #[inline]
3353    pub fn domain_token(&self) -> Option<SyntaxToken> {
3354        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3355    }
3356    #[inline]
3357    pub fn event_token(&self) -> Option<SyntaxToken> {
3358        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3359    }
3360    #[inline]
3361    pub fn extension_token(&self) -> Option<SyntaxToken> {
3362        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3363    }
3364    #[inline]
3365    pub fn family_token(&self) -> Option<SyntaxToken> {
3366        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3367    }
3368    #[inline]
3369    pub fn for_token(&self) -> Option<SyntaxToken> {
3370        support::token(&self.syntax, SyntaxKind::FOR_KW)
3371    }
3372    #[inline]
3373    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3374        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3375    }
3376    #[inline]
3377    pub fn function_token(&self) -> Option<SyntaxToken> {
3378        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3379    }
3380    #[inline]
3381    pub fn graph_token(&self) -> Option<SyntaxToken> {
3382        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3383    }
3384    #[inline]
3385    pub fn index_token(&self) -> Option<SyntaxToken> {
3386        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3387    }
3388    #[inline]
3389    pub fn is_token(&self) -> Option<SyntaxToken> {
3390        support::token(&self.syntax, SyntaxKind::IS_KW)
3391    }
3392    #[inline]
3393    pub fn language_token(&self) -> Option<SyntaxToken> {
3394        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3395    }
3396    #[inline]
3397    pub fn large_token(&self) -> Option<SyntaxToken> {
3398        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3399    }
3400    #[inline]
3401    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3402        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3403    }
3404    #[inline]
3405    pub fn method_token(&self) -> Option<SyntaxToken> {
3406        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3407    }
3408    #[inline]
3409    pub fn null_token(&self) -> Option<SyntaxToken> {
3410        support::token(&self.syntax, SyntaxKind::NULL_KW)
3411    }
3412    #[inline]
3413    pub fn object_token(&self) -> Option<SyntaxToken> {
3414        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3415    }
3416    #[inline]
3417    pub fn on_token(&self) -> Option<SyntaxToken> {
3418        support::token(&self.syntax, SyntaxKind::ON_KW)
3419    }
3420    #[inline]
3421    pub fn operator_token(&self) -> Option<SyntaxToken> {
3422        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3423    }
3424    #[inline]
3425    pub fn parser_token(&self) -> Option<SyntaxToken> {
3426        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3427    }
3428    #[inline]
3429    pub fn policy_token(&self) -> Option<SyntaxToken> {
3430        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3431    }
3432    #[inline]
3433    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3434        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3435    }
3436    #[inline]
3437    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3438        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3439    }
3440    #[inline]
3441    pub fn property_token(&self) -> Option<SyntaxToken> {
3442        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3443    }
3444    #[inline]
3445    pub fn publication_token(&self) -> Option<SyntaxToken> {
3446        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3447    }
3448    #[inline]
3449    pub fn role_token(&self) -> Option<SyntaxToken> {
3450        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3451    }
3452    #[inline]
3453    pub fn routine_token(&self) -> Option<SyntaxToken> {
3454        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3455    }
3456    #[inline]
3457    pub fn rule_token(&self) -> Option<SyntaxToken> {
3458        support::token(&self.syntax, SyntaxKind::RULE_KW)
3459    }
3460    #[inline]
3461    pub fn schema_token(&self) -> Option<SyntaxToken> {
3462        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3463    }
3464    #[inline]
3465    pub fn search_token(&self) -> Option<SyntaxToken> {
3466        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3467    }
3468    #[inline]
3469    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3470        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3471    }
3472    #[inline]
3473    pub fn server_token(&self) -> Option<SyntaxToken> {
3474        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3475    }
3476    #[inline]
3477    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3478        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3479    }
3480    #[inline]
3481    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3482        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3483    }
3484    #[inline]
3485    pub fn table_token(&self) -> Option<SyntaxToken> {
3486        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3487    }
3488    #[inline]
3489    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3490        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3491    }
3492    #[inline]
3493    pub fn template_token(&self) -> Option<SyntaxToken> {
3494        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3495    }
3496    #[inline]
3497    pub fn text_token(&self) -> Option<SyntaxToken> {
3498        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3499    }
3500    #[inline]
3501    pub fn transform_token(&self) -> Option<SyntaxToken> {
3502        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3503    }
3504    #[inline]
3505    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3506        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3507    }
3508    #[inline]
3509    pub fn type_token(&self) -> Option<SyntaxToken> {
3510        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3511    }
3512    #[inline]
3513    pub fn view_token(&self) -> Option<SyntaxToken> {
3514        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3515    }
3516    #[inline]
3517    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3518        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3519    }
3520}
3521
3522#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3523pub struct Commit {
3524    pub(crate) syntax: SyntaxNode,
3525}
3526impl Commit {
3527    #[inline]
3528    pub fn literal(&self) -> Option<Literal> {
3529        support::child(&self.syntax)
3530    }
3531    #[inline]
3532    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3533        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3534    }
3535    #[inline]
3536    pub fn and_token(&self) -> Option<SyntaxToken> {
3537        support::token(&self.syntax, SyntaxKind::AND_KW)
3538    }
3539    #[inline]
3540    pub fn chain_token(&self) -> Option<SyntaxToken> {
3541        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3542    }
3543    #[inline]
3544    pub fn commit_token(&self) -> Option<SyntaxToken> {
3545        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3546    }
3547    #[inline]
3548    pub fn no_token(&self) -> Option<SyntaxToken> {
3549        support::token(&self.syntax, SyntaxKind::NO_KW)
3550    }
3551    #[inline]
3552    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3553        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3554    }
3555    #[inline]
3556    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3557        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3558    }
3559    #[inline]
3560    pub fn work_token(&self) -> Option<SyntaxToken> {
3561        support::token(&self.syntax, SyntaxKind::WORK_KW)
3562    }
3563}
3564
3565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3566pub struct CompoundSelect {
3567    pub(crate) syntax: SyntaxNode,
3568}
3569impl CompoundSelect {
3570    #[inline]
3571    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3572        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3573    }
3574    #[inline]
3575    pub fn all_token(&self) -> Option<SyntaxToken> {
3576        support::token(&self.syntax, SyntaxKind::ALL_KW)
3577    }
3578    #[inline]
3579    pub fn except_token(&self) -> Option<SyntaxToken> {
3580        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3581    }
3582    #[inline]
3583    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3584        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3585    }
3586    #[inline]
3587    pub fn union_token(&self) -> Option<SyntaxToken> {
3588        support::token(&self.syntax, SyntaxKind::UNION_KW)
3589    }
3590}
3591
3592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3593pub struct CompressionMethod {
3594    pub(crate) syntax: SyntaxNode,
3595}
3596impl CompressionMethod {
3597    #[inline]
3598    pub fn compression_token(&self) -> Option<SyntaxToken> {
3599        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3600    }
3601    #[inline]
3602    pub fn default_token(&self) -> Option<SyntaxToken> {
3603        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3604    }
3605    #[inline]
3606    pub fn ident_token(&self) -> Option<SyntaxToken> {
3607        support::token(&self.syntax, SyntaxKind::IDENT)
3608    }
3609}
3610
3611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3612pub struct ConflictDoNothing {
3613    pub(crate) syntax: SyntaxNode,
3614}
3615impl ConflictDoNothing {
3616    #[inline]
3617    pub fn do_token(&self) -> Option<SyntaxToken> {
3618        support::token(&self.syntax, SyntaxKind::DO_KW)
3619    }
3620    #[inline]
3621    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3622        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3623    }
3624}
3625
3626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3627pub struct ConflictDoSelect {
3628    pub(crate) syntax: SyntaxNode,
3629}
3630impl ConflictDoSelect {
3631    #[inline]
3632    pub fn locking_clause(&self) -> Option<LockingClause> {
3633        support::child(&self.syntax)
3634    }
3635    #[inline]
3636    pub fn where_clause(&self) -> Option<WhereClause> {
3637        support::child(&self.syntax)
3638    }
3639    #[inline]
3640    pub fn do_token(&self) -> Option<SyntaxToken> {
3641        support::token(&self.syntax, SyntaxKind::DO_KW)
3642    }
3643    #[inline]
3644    pub fn select_token(&self) -> Option<SyntaxToken> {
3645        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3646    }
3647}
3648
3649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3650pub struct ConflictDoUpdateSet {
3651    pub(crate) syntax: SyntaxNode,
3652}
3653impl ConflictDoUpdateSet {
3654    #[inline]
3655    pub fn set_clause(&self) -> Option<SetClause> {
3656        support::child(&self.syntax)
3657    }
3658    #[inline]
3659    pub fn where_clause(&self) -> Option<WhereClause> {
3660        support::child(&self.syntax)
3661    }
3662    #[inline]
3663    pub fn do_token(&self) -> Option<SyntaxToken> {
3664        support::token(&self.syntax, SyntaxKind::DO_KW)
3665    }
3666    #[inline]
3667    pub fn update_token(&self) -> Option<SyntaxToken> {
3668        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3669    }
3670}
3671
3672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3673pub struct ConflictIndexItem {
3674    pub(crate) syntax: SyntaxNode,
3675}
3676impl ConflictIndexItem {
3677    #[inline]
3678    pub fn collate(&self) -> Option<Collate> {
3679        support::child(&self.syntax)
3680    }
3681    #[inline]
3682    pub fn expr(&self) -> Option<Expr> {
3683        support::child(&self.syntax)
3684    }
3685    #[inline]
3686    pub fn ident_token(&self) -> Option<SyntaxToken> {
3687        support::token(&self.syntax, SyntaxKind::IDENT)
3688    }
3689}
3690
3691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3692pub struct ConflictIndexItemList {
3693    pub(crate) syntax: SyntaxNode,
3694}
3695impl ConflictIndexItemList {
3696    #[inline]
3697    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3698        support::children(&self.syntax)
3699    }
3700    #[inline]
3701    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3702        support::token(&self.syntax, SyntaxKind::L_PAREN)
3703    }
3704    #[inline]
3705    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3706        support::token(&self.syntax, SyntaxKind::R_PAREN)
3707    }
3708}
3709
3710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3711pub struct ConflictOnConstraint {
3712    pub(crate) syntax: SyntaxNode,
3713}
3714impl ConflictOnConstraint {
3715    #[inline]
3716    pub fn name_ref(&self) -> Option<NameRef> {
3717        support::child(&self.syntax)
3718    }
3719    #[inline]
3720    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3721        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3722    }
3723    #[inline]
3724    pub fn on_token(&self) -> Option<SyntaxToken> {
3725        support::token(&self.syntax, SyntaxKind::ON_KW)
3726    }
3727}
3728
3729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3730pub struct ConflictOnIndex {
3731    pub(crate) syntax: SyntaxNode,
3732}
3733impl ConflictOnIndex {
3734    #[inline]
3735    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3736        support::child(&self.syntax)
3737    }
3738    #[inline]
3739    pub fn where_clause(&self) -> Option<WhereClause> {
3740        support::child(&self.syntax)
3741    }
3742}
3743
3744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3745pub struct ConstraintExclusion {
3746    pub(crate) syntax: SyntaxNode,
3747}
3748impl ConstraintExclusion {
3749    #[inline]
3750    pub fn expr(&self) -> Option<Expr> {
3751        support::child(&self.syntax)
3752    }
3753    #[inline]
3754    pub fn op(&self) -> Option<Op> {
3755        support::child(&self.syntax)
3756    }
3757    #[inline]
3758    pub fn with_token(&self) -> Option<SyntaxToken> {
3759        support::token(&self.syntax, SyntaxKind::WITH_KW)
3760    }
3761}
3762
3763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3764pub struct ConstraintExclusionList {
3765    pub(crate) syntax: SyntaxNode,
3766}
3767impl ConstraintExclusionList {
3768    #[inline]
3769    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3770        support::children(&self.syntax)
3771    }
3772    #[inline]
3773    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3774        support::token(&self.syntax, SyntaxKind::L_PAREN)
3775    }
3776    #[inline]
3777    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3778        support::token(&self.syntax, SyntaxKind::R_PAREN)
3779    }
3780}
3781
3782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3783pub struct ConstraintIncludeClause {
3784    pub(crate) syntax: SyntaxNode,
3785}
3786impl ConstraintIncludeClause {
3787    #[inline]
3788    pub fn include_token(&self) -> Option<SyntaxToken> {
3789        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3790    }
3791}
3792
3793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3794pub struct ConstraintIndexMethod {
3795    pub(crate) syntax: SyntaxNode,
3796}
3797impl ConstraintIndexMethod {
3798    #[inline]
3799    pub fn using_token(&self) -> Option<SyntaxToken> {
3800        support::token(&self.syntax, SyntaxKind::USING_KW)
3801    }
3802}
3803
3804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3805pub struct ConstraintIndexTablespace {
3806    pub(crate) syntax: SyntaxNode,
3807}
3808impl ConstraintIndexTablespace {
3809    #[inline]
3810    pub fn name_ref(&self) -> Option<NameRef> {
3811        support::child(&self.syntax)
3812    }
3813    #[inline]
3814    pub fn index_token(&self) -> Option<SyntaxToken> {
3815        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3816    }
3817    #[inline]
3818    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3819        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3820    }
3821    #[inline]
3822    pub fn using_token(&self) -> Option<SyntaxToken> {
3823        support::token(&self.syntax, SyntaxKind::USING_KW)
3824    }
3825}
3826
3827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3828pub struct ConstraintName {
3829    pub(crate) syntax: SyntaxNode,
3830}
3831impl ConstraintName {
3832    #[inline]
3833    pub fn name(&self) -> Option<Name> {
3834        support::child(&self.syntax)
3835    }
3836    #[inline]
3837    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3839    }
3840}
3841
3842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3843pub struct Copy {
3844    pub(crate) syntax: SyntaxNode,
3845}
3846impl Copy {
3847    #[inline]
3848    pub fn column_list(&self) -> Option<ColumnList> {
3849        support::child(&self.syntax)
3850    }
3851    #[inline]
3852    pub fn literal(&self) -> Option<Literal> {
3853        support::child(&self.syntax)
3854    }
3855    #[inline]
3856    pub fn path(&self) -> Option<Path> {
3857        support::child(&self.syntax)
3858    }
3859    #[inline]
3860    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3861        support::child(&self.syntax)
3862    }
3863    #[inline]
3864    pub fn where_clause(&self) -> Option<WhereClause> {
3865        support::child(&self.syntax)
3866    }
3867    #[inline]
3868    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3869        support::token(&self.syntax, SyntaxKind::L_PAREN)
3870    }
3871    #[inline]
3872    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3873        support::token(&self.syntax, SyntaxKind::R_PAREN)
3874    }
3875    #[inline]
3876    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3877        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3878    }
3879    #[inline]
3880    pub fn binary_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3882    }
3883    #[inline]
3884    pub fn copy_token(&self) -> Option<SyntaxToken> {
3885        support::token(&self.syntax, SyntaxKind::COPY_KW)
3886    }
3887    #[inline]
3888    pub fn from_token(&self) -> Option<SyntaxToken> {
3889        support::token(&self.syntax, SyntaxKind::FROM_KW)
3890    }
3891    #[inline]
3892    pub fn program_token(&self) -> Option<SyntaxToken> {
3893        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3894    }
3895    #[inline]
3896    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3897        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3898    }
3899    #[inline]
3900    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3901        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3902    }
3903    #[inline]
3904    pub fn to_token(&self) -> Option<SyntaxToken> {
3905        support::token(&self.syntax, SyntaxKind::TO_KW)
3906    }
3907    #[inline]
3908    pub fn with_token(&self) -> Option<SyntaxToken> {
3909        support::token(&self.syntax, SyntaxKind::WITH_KW)
3910    }
3911}
3912
3913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3914pub struct CopyOption {
3915    pub(crate) syntax: SyntaxNode,
3916}
3917impl CopyOption {
3918    #[inline]
3919    pub fn name(&self) -> Option<Name> {
3920        support::child(&self.syntax)
3921    }
3922}
3923
3924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3925pub struct CopyOptionList {
3926    pub(crate) syntax: SyntaxNode,
3927}
3928impl CopyOptionList {
3929    #[inline]
3930    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3931        support::children(&self.syntax)
3932    }
3933    #[inline]
3934    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3935        support::token(&self.syntax, SyntaxKind::L_PAREN)
3936    }
3937    #[inline]
3938    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3939        support::token(&self.syntax, SyntaxKind::R_PAREN)
3940    }
3941}
3942
3943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3944pub struct CostFuncOption {
3945    pub(crate) syntax: SyntaxNode,
3946}
3947impl CostFuncOption {
3948    #[inline]
3949    pub fn cost_token(&self) -> Option<SyntaxToken> {
3950        support::token(&self.syntax, SyntaxKind::COST_KW)
3951    }
3952}
3953
3954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3955pub struct CreateAccessMethod {
3956    pub(crate) syntax: SyntaxNode,
3957}
3958impl CreateAccessMethod {
3959    #[inline]
3960    pub fn handler_clause(&self) -> Option<HandlerClause> {
3961        support::child(&self.syntax)
3962    }
3963    #[inline]
3964    pub fn name(&self) -> Option<Path> {
3965        support::child(&self.syntax)
3966    }
3967    #[inline]
3968    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
3969        support::token(&self.syntax, SyntaxKind::SEMICOLON)
3970    }
3971    #[inline]
3972    pub fn access_token(&self) -> Option<SyntaxToken> {
3973        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3974    }
3975    #[inline]
3976    pub fn create_token(&self) -> Option<SyntaxToken> {
3977        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3978    }
3979    #[inline]
3980    pub fn index_token(&self) -> Option<SyntaxToken> {
3981        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3982    }
3983    #[inline]
3984    pub fn method_token(&self) -> Option<SyntaxToken> {
3985        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3986    }
3987    #[inline]
3988    pub fn table_token(&self) -> Option<SyntaxToken> {
3989        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3990    }
3991    #[inline]
3992    pub fn type_token(&self) -> Option<SyntaxToken> {
3993        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3994    }
3995}
3996
3997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3998pub struct CreateAggregate {
3999    pub(crate) syntax: SyntaxNode,
4000}
4001impl CreateAggregate {
4002    #[inline]
4003    pub fn or_replace(&self) -> Option<OrReplace> {
4004        support::child(&self.syntax)
4005    }
4006    #[inline]
4007    pub fn param_list(&self) -> Option<ParamList> {
4008        support::child(&self.syntax)
4009    }
4010    #[inline]
4011    pub fn path(&self) -> Option<Path> {
4012        support::child(&self.syntax)
4013    }
4014    #[inline]
4015    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4016        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4017    }
4018    #[inline]
4019    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
4020        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
4021    }
4022    #[inline]
4023    pub fn create_token(&self) -> Option<SyntaxToken> {
4024        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4025    }
4026}
4027
4028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4029pub struct CreateCast {
4030    pub(crate) syntax: SyntaxNode,
4031}
4032impl CreateCast {
4033    #[inline]
4034    pub fn cast_sig(&self) -> Option<CastSig> {
4035        support::child(&self.syntax)
4036    }
4037    #[inline]
4038    pub fn function_sig(&self) -> Option<FunctionSig> {
4039        support::child(&self.syntax)
4040    }
4041    #[inline]
4042    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4043        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4044    }
4045    #[inline]
4046    pub fn as_token(&self) -> Option<SyntaxToken> {
4047        support::token(&self.syntax, SyntaxKind::AS_KW)
4048    }
4049    #[inline]
4050    pub fn assignment_token(&self) -> Option<SyntaxToken> {
4051        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
4052    }
4053    #[inline]
4054    pub fn cast_token(&self) -> Option<SyntaxToken> {
4055        support::token(&self.syntax, SyntaxKind::CAST_KW)
4056    }
4057    #[inline]
4058    pub fn create_token(&self) -> Option<SyntaxToken> {
4059        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4060    }
4061    #[inline]
4062    pub fn function_token(&self) -> Option<SyntaxToken> {
4063        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4064    }
4065    #[inline]
4066    pub fn implicit_token(&self) -> Option<SyntaxToken> {
4067        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
4068    }
4069    #[inline]
4070    pub fn inout_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::INOUT_KW)
4072    }
4073    #[inline]
4074    pub fn with_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::WITH_KW)
4076    }
4077    #[inline]
4078    pub fn without_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
4080    }
4081}
4082
4083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4084pub struct CreateCollation {
4085    pub(crate) syntax: SyntaxNode,
4086}
4087impl CreateCollation {
4088    #[inline]
4089    pub fn path(&self) -> Option<Path> {
4090        support::child(&self.syntax)
4091    }
4092    #[inline]
4093    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4094        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4095    }
4096    #[inline]
4097    pub fn collation_token(&self) -> Option<SyntaxToken> {
4098        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
4099    }
4100    #[inline]
4101    pub fn create_token(&self) -> Option<SyntaxToken> {
4102        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4103    }
4104}
4105
4106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4107pub struct CreateConversion {
4108    pub(crate) syntax: SyntaxNode,
4109}
4110impl CreateConversion {
4111    #[inline]
4112    pub fn literal(&self) -> Option<Literal> {
4113        support::child(&self.syntax)
4114    }
4115    #[inline]
4116    pub fn path(&self) -> Option<Path> {
4117        support::child(&self.syntax)
4118    }
4119    #[inline]
4120    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4121        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4122    }
4123    #[inline]
4124    pub fn conversion_token(&self) -> Option<SyntaxToken> {
4125        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
4126    }
4127    #[inline]
4128    pub fn create_token(&self) -> Option<SyntaxToken> {
4129        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4130    }
4131    #[inline]
4132    pub fn default_token(&self) -> Option<SyntaxToken> {
4133        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4134    }
4135    #[inline]
4136    pub fn for_token(&self) -> Option<SyntaxToken> {
4137        support::token(&self.syntax, SyntaxKind::FOR_KW)
4138    }
4139    #[inline]
4140    pub fn from_token(&self) -> Option<SyntaxToken> {
4141        support::token(&self.syntax, SyntaxKind::FROM_KW)
4142    }
4143    #[inline]
4144    pub fn to_token(&self) -> Option<SyntaxToken> {
4145        support::token(&self.syntax, SyntaxKind::TO_KW)
4146    }
4147}
4148
4149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4150pub struct CreateDatabase {
4151    pub(crate) syntax: SyntaxNode,
4152}
4153impl CreateDatabase {
4154    #[inline]
4155    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
4156        support::child(&self.syntax)
4157    }
4158    #[inline]
4159    pub fn name(&self) -> Option<Name> {
4160        support::child(&self.syntax)
4161    }
4162    #[inline]
4163    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4164        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4165    }
4166    #[inline]
4167    pub fn create_token(&self) -> Option<SyntaxToken> {
4168        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4169    }
4170    #[inline]
4171    pub fn database_token(&self) -> Option<SyntaxToken> {
4172        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
4173    }
4174}
4175
4176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4177pub struct CreateDatabaseOption {
4178    pub(crate) syntax: SyntaxNode,
4179}
4180impl CreateDatabaseOption {
4181    #[inline]
4182    pub fn literal(&self) -> Option<Literal> {
4183        support::child(&self.syntax)
4184    }
4185    #[inline]
4186    pub fn eq_token(&self) -> Option<SyntaxToken> {
4187        support::token(&self.syntax, SyntaxKind::EQ)
4188    }
4189    #[inline]
4190    pub fn connection_token(&self) -> Option<SyntaxToken> {
4191        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4192    }
4193    #[inline]
4194    pub fn default_token(&self) -> Option<SyntaxToken> {
4195        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4196    }
4197    #[inline]
4198    pub fn encoding_token(&self) -> Option<SyntaxToken> {
4199        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
4200    }
4201    #[inline]
4202    pub fn ident_token(&self) -> Option<SyntaxToken> {
4203        support::token(&self.syntax, SyntaxKind::IDENT)
4204    }
4205    #[inline]
4206    pub fn limit_token(&self) -> Option<SyntaxToken> {
4207        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
4208    }
4209    #[inline]
4210    pub fn owner_token(&self) -> Option<SyntaxToken> {
4211        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4212    }
4213    #[inline]
4214    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4215        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4216    }
4217    #[inline]
4218    pub fn template_token(&self) -> Option<SyntaxToken> {
4219        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4220    }
4221}
4222
4223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4224pub struct CreateDatabaseOptionList {
4225    pub(crate) syntax: SyntaxNode,
4226}
4227impl CreateDatabaseOptionList {
4228    #[inline]
4229    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
4230        support::children(&self.syntax)
4231    }
4232    #[inline]
4233    pub fn with_token(&self) -> Option<SyntaxToken> {
4234        support::token(&self.syntax, SyntaxKind::WITH_KW)
4235    }
4236}
4237
4238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4239pub struct CreateDomain {
4240    pub(crate) syntax: SyntaxNode,
4241}
4242impl CreateDomain {
4243    #[inline]
4244    pub fn collate(&self) -> Option<Collate> {
4245        support::child(&self.syntax)
4246    }
4247    #[inline]
4248    pub fn constraints(&self) -> AstChildren<Constraint> {
4249        support::children(&self.syntax)
4250    }
4251    #[inline]
4252    pub fn path(&self) -> Option<Path> {
4253        support::child(&self.syntax)
4254    }
4255    #[inline]
4256    pub fn ty(&self) -> Option<Type> {
4257        support::child(&self.syntax)
4258    }
4259    #[inline]
4260    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4261        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4262    }
4263    #[inline]
4264    pub fn as_token(&self) -> Option<SyntaxToken> {
4265        support::token(&self.syntax, SyntaxKind::AS_KW)
4266    }
4267    #[inline]
4268    pub fn create_token(&self) -> Option<SyntaxToken> {
4269        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4270    }
4271    #[inline]
4272    pub fn domain_token(&self) -> Option<SyntaxToken> {
4273        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4274    }
4275}
4276
4277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4278pub struct CreateEventTrigger {
4279    pub(crate) syntax: SyntaxNode,
4280}
4281impl CreateEventTrigger {
4282    #[inline]
4283    pub fn call_expr(&self) -> Option<CallExpr> {
4284        support::child(&self.syntax)
4285    }
4286    #[inline]
4287    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4288        support::child(&self.syntax)
4289    }
4290    #[inline]
4291    pub fn name(&self) -> Option<Name> {
4292        support::child(&self.syntax)
4293    }
4294    #[inline]
4295    pub fn name_ref(&self) -> Option<NameRef> {
4296        support::child(&self.syntax)
4297    }
4298    #[inline]
4299    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4300        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4301    }
4302    #[inline]
4303    pub fn create_token(&self) -> Option<SyntaxToken> {
4304        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4305    }
4306    #[inline]
4307    pub fn event_token(&self) -> Option<SyntaxToken> {
4308        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4309    }
4310    #[inline]
4311    pub fn execute_token(&self) -> Option<SyntaxToken> {
4312        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4313    }
4314    #[inline]
4315    pub fn function_token(&self) -> Option<SyntaxToken> {
4316        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4317    }
4318    #[inline]
4319    pub fn on_token(&self) -> Option<SyntaxToken> {
4320        support::token(&self.syntax, SyntaxKind::ON_KW)
4321    }
4322    #[inline]
4323    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4324        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4325    }
4326    #[inline]
4327    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4328        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4329    }
4330}
4331
4332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4333pub struct CreateExtension {
4334    pub(crate) syntax: SyntaxNode,
4335}
4336impl CreateExtension {
4337    #[inline]
4338    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4339        support::child(&self.syntax)
4340    }
4341    #[inline]
4342    pub fn name(&self) -> Option<Name> {
4343        support::child(&self.syntax)
4344    }
4345    #[inline]
4346    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4347        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4348    }
4349    #[inline]
4350    pub fn create_token(&self) -> Option<SyntaxToken> {
4351        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4352    }
4353    #[inline]
4354    pub fn extension_token(&self) -> Option<SyntaxToken> {
4355        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4356    }
4357}
4358
4359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4360pub struct CreateForeignDataWrapper {
4361    pub(crate) syntax: SyntaxNode,
4362}
4363impl CreateForeignDataWrapper {
4364    #[inline]
4365    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4366        support::child(&self.syntax)
4367    }
4368    #[inline]
4369    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4370        support::child(&self.syntax)
4371    }
4372    #[inline]
4373    pub fn name(&self) -> Option<Name> {
4374        support::child(&self.syntax)
4375    }
4376    #[inline]
4377    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4378        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4379    }
4380    #[inline]
4381    pub fn create_token(&self) -> Option<SyntaxToken> {
4382        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4383    }
4384    #[inline]
4385    pub fn data_token(&self) -> Option<SyntaxToken> {
4386        support::token(&self.syntax, SyntaxKind::DATA_KW)
4387    }
4388    #[inline]
4389    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4390        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4391    }
4392    #[inline]
4393    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4394        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4395    }
4396}
4397
4398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4399pub struct CreateForeignTable {
4400    pub(crate) syntax: SyntaxNode,
4401}
4402impl CreateForeignTable {
4403    #[inline]
4404    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4405        support::child(&self.syntax)
4406    }
4407    #[inline]
4408    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4409        support::child(&self.syntax)
4410    }
4411    #[inline]
4412    pub fn inherits(&self) -> Option<Inherits> {
4413        support::child(&self.syntax)
4414    }
4415    #[inline]
4416    pub fn partition_of(&self) -> Option<PartitionOf> {
4417        support::child(&self.syntax)
4418    }
4419    #[inline]
4420    pub fn partition_type(&self) -> Option<PartitionType> {
4421        support::child(&self.syntax)
4422    }
4423    #[inline]
4424    pub fn path(&self) -> Option<Path> {
4425        support::child(&self.syntax)
4426    }
4427    #[inline]
4428    pub fn server_name(&self) -> Option<ServerName> {
4429        support::child(&self.syntax)
4430    }
4431    #[inline]
4432    pub fn table_arg_list(&self) -> Option<TableArgList> {
4433        support::child(&self.syntax)
4434    }
4435    #[inline]
4436    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4437        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4438    }
4439    #[inline]
4440    pub fn create_token(&self) -> Option<SyntaxToken> {
4441        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4442    }
4443    #[inline]
4444    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4445        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4446    }
4447    #[inline]
4448    pub fn table_token(&self) -> Option<SyntaxToken> {
4449        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4450    }
4451}
4452
4453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4454pub struct CreateFunction {
4455    pub(crate) syntax: SyntaxNode,
4456}
4457impl CreateFunction {
4458    #[inline]
4459    pub fn option_list(&self) -> Option<FuncOptionList> {
4460        support::child(&self.syntax)
4461    }
4462    #[inline]
4463    pub fn or_replace(&self) -> Option<OrReplace> {
4464        support::child(&self.syntax)
4465    }
4466    #[inline]
4467    pub fn param_list(&self) -> Option<ParamList> {
4468        support::child(&self.syntax)
4469    }
4470    #[inline]
4471    pub fn path(&self) -> Option<Path> {
4472        support::child(&self.syntax)
4473    }
4474    #[inline]
4475    pub fn ret_type(&self) -> Option<RetType> {
4476        support::child(&self.syntax)
4477    }
4478    #[inline]
4479    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4480        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4481    }
4482    #[inline]
4483    pub fn create_token(&self) -> Option<SyntaxToken> {
4484        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4485    }
4486    #[inline]
4487    pub fn function_token(&self) -> Option<SyntaxToken> {
4488        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4489    }
4490}
4491
4492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4493pub struct CreateGroup {
4494    pub(crate) syntax: SyntaxNode,
4495}
4496impl CreateGroup {
4497    #[inline]
4498    pub fn name(&self) -> Option<Name> {
4499        support::child(&self.syntax)
4500    }
4501    #[inline]
4502    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4503        support::child(&self.syntax)
4504    }
4505    #[inline]
4506    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4507        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4508    }
4509    #[inline]
4510    pub fn create_token(&self) -> Option<SyntaxToken> {
4511        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4512    }
4513    #[inline]
4514    pub fn group_token(&self) -> Option<SyntaxToken> {
4515        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4516    }
4517}
4518
4519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4520pub struct CreateIndex {
4521    pub(crate) syntax: SyntaxNode,
4522}
4523impl CreateIndex {
4524    #[inline]
4525    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4526        support::child(&self.syntax)
4527    }
4528    #[inline]
4529    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4530        support::child(&self.syntax)
4531    }
4532    #[inline]
4533    pub fn name(&self) -> Option<Name> {
4534        support::child(&self.syntax)
4535    }
4536    #[inline]
4537    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4538        support::child(&self.syntax)
4539    }
4540    #[inline]
4541    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4542        support::child(&self.syntax)
4543    }
4544    #[inline]
4545    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4546        support::child(&self.syntax)
4547    }
4548    #[inline]
4549    pub fn relation_name(&self) -> Option<RelationName> {
4550        support::child(&self.syntax)
4551    }
4552    #[inline]
4553    pub fn tablespace(&self) -> Option<Tablespace> {
4554        support::child(&self.syntax)
4555    }
4556    #[inline]
4557    pub fn using_method(&self) -> Option<UsingMethod> {
4558        support::child(&self.syntax)
4559    }
4560    #[inline]
4561    pub fn where_clause(&self) -> Option<WhereClause> {
4562        support::child(&self.syntax)
4563    }
4564    #[inline]
4565    pub fn with_params(&self) -> Option<WithParams> {
4566        support::child(&self.syntax)
4567    }
4568    #[inline]
4569    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4570        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4571    }
4572    #[inline]
4573    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4574        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4575    }
4576    #[inline]
4577    pub fn create_token(&self) -> Option<SyntaxToken> {
4578        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4579    }
4580    #[inline]
4581    pub fn index_token(&self) -> Option<SyntaxToken> {
4582        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4583    }
4584    #[inline]
4585    pub fn on_token(&self) -> Option<SyntaxToken> {
4586        support::token(&self.syntax, SyntaxKind::ON_KW)
4587    }
4588    #[inline]
4589    pub fn unique_token(&self) -> Option<SyntaxToken> {
4590        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4591    }
4592}
4593
4594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4595pub struct CreateLanguage {
4596    pub(crate) syntax: SyntaxNode,
4597}
4598impl CreateLanguage {
4599    #[inline]
4600    pub fn name(&self) -> Option<Name> {
4601        support::child(&self.syntax)
4602    }
4603    #[inline]
4604    pub fn or_replace(&self) -> Option<OrReplace> {
4605        support::child(&self.syntax)
4606    }
4607    #[inline]
4608    pub fn path(&self) -> Option<Path> {
4609        support::child(&self.syntax)
4610    }
4611    #[inline]
4612    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4613        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4614    }
4615    #[inline]
4616    pub fn create_token(&self) -> Option<SyntaxToken> {
4617        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4618    }
4619    #[inline]
4620    pub fn handler_token(&self) -> Option<SyntaxToken> {
4621        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4622    }
4623    #[inline]
4624    pub fn inline_token(&self) -> Option<SyntaxToken> {
4625        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4626    }
4627    #[inline]
4628    pub fn language_token(&self) -> Option<SyntaxToken> {
4629        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4630    }
4631    #[inline]
4632    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4633        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4634    }
4635    #[inline]
4636    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4637        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4638    }
4639    #[inline]
4640    pub fn validator_token(&self) -> Option<SyntaxToken> {
4641        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4642    }
4643}
4644
4645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4646pub struct CreateMaterializedView {
4647    pub(crate) syntax: SyntaxNode,
4648}
4649impl CreateMaterializedView {
4650    #[inline]
4651    pub fn column_list(&self) -> Option<ColumnList> {
4652        support::child(&self.syntax)
4653    }
4654    #[inline]
4655    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4656        support::child(&self.syntax)
4657    }
4658    #[inline]
4659    pub fn path(&self) -> Option<Path> {
4660        support::child(&self.syntax)
4661    }
4662    #[inline]
4663    pub fn query(&self) -> Option<SelectVariant> {
4664        support::child(&self.syntax)
4665    }
4666    #[inline]
4667    pub fn tablespace(&self) -> Option<Tablespace> {
4668        support::child(&self.syntax)
4669    }
4670    #[inline]
4671    pub fn using_method(&self) -> Option<UsingMethod> {
4672        support::child(&self.syntax)
4673    }
4674    #[inline]
4675    pub fn with_data(&self) -> Option<WithData> {
4676        support::child(&self.syntax)
4677    }
4678    #[inline]
4679    pub fn with_no_data(&self) -> Option<WithNoData> {
4680        support::child(&self.syntax)
4681    }
4682    #[inline]
4683    pub fn with_params(&self) -> Option<WithParams> {
4684        support::child(&self.syntax)
4685    }
4686    #[inline]
4687    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4688        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4689    }
4690    #[inline]
4691    pub fn as_token(&self) -> Option<SyntaxToken> {
4692        support::token(&self.syntax, SyntaxKind::AS_KW)
4693    }
4694    #[inline]
4695    pub fn create_token(&self) -> Option<SyntaxToken> {
4696        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4697    }
4698    #[inline]
4699    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4700        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4701    }
4702    #[inline]
4703    pub fn view_token(&self) -> Option<SyntaxToken> {
4704        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4705    }
4706}
4707
4708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4709pub struct CreateOperator {
4710    pub(crate) syntax: SyntaxNode,
4711}
4712impl CreateOperator {
4713    #[inline]
4714    pub fn attribute_list(&self) -> Option<AttributeList> {
4715        support::child(&self.syntax)
4716    }
4717    #[inline]
4718    pub fn op(&self) -> Option<Op> {
4719        support::child(&self.syntax)
4720    }
4721    #[inline]
4722    pub fn path(&self) -> Option<Path> {
4723        support::child(&self.syntax)
4724    }
4725    #[inline]
4726    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4727        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4728    }
4729    #[inline]
4730    pub fn create_token(&self) -> Option<SyntaxToken> {
4731        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4732    }
4733    #[inline]
4734    pub fn operator_token(&self) -> Option<SyntaxToken> {
4735        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4736    }
4737}
4738
4739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4740pub struct CreateOperatorClass {
4741    pub(crate) syntax: SyntaxNode,
4742}
4743impl CreateOperatorClass {
4744    #[inline]
4745    pub fn name_ref(&self) -> Option<NameRef> {
4746        support::child(&self.syntax)
4747    }
4748    #[inline]
4749    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4750        support::child(&self.syntax)
4751    }
4752    #[inline]
4753    pub fn path(&self) -> Option<Path> {
4754        support::child(&self.syntax)
4755    }
4756    #[inline]
4757    pub fn ty(&self) -> Option<Type> {
4758        support::child(&self.syntax)
4759    }
4760    #[inline]
4761    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4762        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4763    }
4764    #[inline]
4765    pub fn as_token(&self) -> Option<SyntaxToken> {
4766        support::token(&self.syntax, SyntaxKind::AS_KW)
4767    }
4768    #[inline]
4769    pub fn class_token(&self) -> Option<SyntaxToken> {
4770        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4771    }
4772    #[inline]
4773    pub fn create_token(&self) -> Option<SyntaxToken> {
4774        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4775    }
4776    #[inline]
4777    pub fn default_token(&self) -> Option<SyntaxToken> {
4778        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4779    }
4780    #[inline]
4781    pub fn family_token(&self) -> Option<SyntaxToken> {
4782        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4783    }
4784    #[inline]
4785    pub fn for_token(&self) -> Option<SyntaxToken> {
4786        support::token(&self.syntax, SyntaxKind::FOR_KW)
4787    }
4788    #[inline]
4789    pub fn operator_token(&self) -> Option<SyntaxToken> {
4790        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4791    }
4792    #[inline]
4793    pub fn type_token(&self) -> Option<SyntaxToken> {
4794        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4795    }
4796    #[inline]
4797    pub fn using_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::USING_KW)
4799    }
4800}
4801
4802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4803pub struct CreateOperatorFamily {
4804    pub(crate) syntax: SyntaxNode,
4805}
4806impl CreateOperatorFamily {
4807    #[inline]
4808    pub fn name_ref(&self) -> Option<NameRef> {
4809        support::child(&self.syntax)
4810    }
4811    #[inline]
4812    pub fn path(&self) -> Option<Path> {
4813        support::child(&self.syntax)
4814    }
4815    #[inline]
4816    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4817        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4818    }
4819    #[inline]
4820    pub fn create_token(&self) -> Option<SyntaxToken> {
4821        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4822    }
4823    #[inline]
4824    pub fn family_token(&self) -> Option<SyntaxToken> {
4825        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4826    }
4827    #[inline]
4828    pub fn operator_token(&self) -> Option<SyntaxToken> {
4829        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4830    }
4831    #[inline]
4832    pub fn using_token(&self) -> Option<SyntaxToken> {
4833        support::token(&self.syntax, SyntaxKind::USING_KW)
4834    }
4835}
4836
4837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4838pub struct CreatePolicy {
4839    pub(crate) syntax: SyntaxNode,
4840}
4841impl CreatePolicy {
4842    #[inline]
4843    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4844        support::child(&self.syntax)
4845    }
4846    #[inline]
4847    pub fn name(&self) -> Option<Name> {
4848        support::child(&self.syntax)
4849    }
4850    #[inline]
4851    pub fn on_table(&self) -> Option<OnTable> {
4852        support::child(&self.syntax)
4853    }
4854    #[inline]
4855    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4856        support::child(&self.syntax)
4857    }
4858    #[inline]
4859    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4860        support::child(&self.syntax)
4861    }
4862    #[inline]
4863    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4864        support::child(&self.syntax)
4865    }
4866    #[inline]
4867    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4868        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4869    }
4870    #[inline]
4871    pub fn all_token(&self) -> Option<SyntaxToken> {
4872        support::token(&self.syntax, SyntaxKind::ALL_KW)
4873    }
4874    #[inline]
4875    pub fn create_token(&self) -> Option<SyntaxToken> {
4876        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4877    }
4878    #[inline]
4879    pub fn delete_token(&self) -> Option<SyntaxToken> {
4880        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4881    }
4882    #[inline]
4883    pub fn for_token(&self) -> Option<SyntaxToken> {
4884        support::token(&self.syntax, SyntaxKind::FOR_KW)
4885    }
4886    #[inline]
4887    pub fn insert_token(&self) -> Option<SyntaxToken> {
4888        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4889    }
4890    #[inline]
4891    pub fn policy_token(&self) -> Option<SyntaxToken> {
4892        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4893    }
4894    #[inline]
4895    pub fn select_token(&self) -> Option<SyntaxToken> {
4896        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4897    }
4898    #[inline]
4899    pub fn to_token(&self) -> Option<SyntaxToken> {
4900        support::token(&self.syntax, SyntaxKind::TO_KW)
4901    }
4902    #[inline]
4903    pub fn update_token(&self) -> Option<SyntaxToken> {
4904        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4905    }
4906}
4907
4908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4909pub struct CreateProcedure {
4910    pub(crate) syntax: SyntaxNode,
4911}
4912impl CreateProcedure {
4913    #[inline]
4914    pub fn option_list(&self) -> Option<FuncOptionList> {
4915        support::child(&self.syntax)
4916    }
4917    #[inline]
4918    pub fn or_replace(&self) -> Option<OrReplace> {
4919        support::child(&self.syntax)
4920    }
4921    #[inline]
4922    pub fn param_list(&self) -> Option<ParamList> {
4923        support::child(&self.syntax)
4924    }
4925    #[inline]
4926    pub fn path(&self) -> Option<Path> {
4927        support::child(&self.syntax)
4928    }
4929    #[inline]
4930    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4931        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4932    }
4933    #[inline]
4934    pub fn create_token(&self) -> Option<SyntaxToken> {
4935        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4936    }
4937    #[inline]
4938    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4939        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4940    }
4941}
4942
4943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4944pub struct CreatePropertyGraph {
4945    pub(crate) syntax: SyntaxNode,
4946}
4947impl CreatePropertyGraph {
4948    #[inline]
4949    pub fn edge_tables(&self) -> Option<EdgeTables> {
4950        support::child(&self.syntax)
4951    }
4952    #[inline]
4953    pub fn path(&self) -> Option<Path> {
4954        support::child(&self.syntax)
4955    }
4956    #[inline]
4957    pub fn persistence(&self) -> Option<Persistence> {
4958        support::child(&self.syntax)
4959    }
4960    #[inline]
4961    pub fn vertex_tables(&self) -> Option<VertexTables> {
4962        support::child(&self.syntax)
4963    }
4964    #[inline]
4965    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
4966        support::token(&self.syntax, SyntaxKind::SEMICOLON)
4967    }
4968    #[inline]
4969    pub fn create_token(&self) -> Option<SyntaxToken> {
4970        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4971    }
4972    #[inline]
4973    pub fn graph_token(&self) -> Option<SyntaxToken> {
4974        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4975    }
4976    #[inline]
4977    pub fn property_token(&self) -> Option<SyntaxToken> {
4978        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4979    }
4980}
4981
4982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4983pub struct CreatePublication {
4984    pub(crate) syntax: SyntaxNode,
4985}
4986impl CreatePublication {
4987    #[inline]
4988    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4989        support::child(&self.syntax)
4990    }
4991    #[inline]
4992    pub fn name(&self) -> Option<Name> {
4993        support::child(&self.syntax)
4994    }
4995    #[inline]
4996    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4997        support::children(&self.syntax)
4998    }
4999    #[inline]
5000    pub fn with_params(&self) -> Option<WithParams> {
5001        support::child(&self.syntax)
5002    }
5003    #[inline]
5004    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5005        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5006    }
5007    #[inline]
5008    pub fn all_token(&self) -> Option<SyntaxToken> {
5009        support::token(&self.syntax, SyntaxKind::ALL_KW)
5010    }
5011    #[inline]
5012    pub fn create_token(&self) -> Option<SyntaxToken> {
5013        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5014    }
5015    #[inline]
5016    pub fn for_token(&self) -> Option<SyntaxToken> {
5017        support::token(&self.syntax, SyntaxKind::FOR_KW)
5018    }
5019    #[inline]
5020    pub fn publication_token(&self) -> Option<SyntaxToken> {
5021        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5022    }
5023    #[inline]
5024    pub fn tables_token(&self) -> Option<SyntaxToken> {
5025        support::token(&self.syntax, SyntaxKind::TABLES_KW)
5026    }
5027}
5028
5029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5030pub struct CreateRole {
5031    pub(crate) syntax: SyntaxNode,
5032}
5033impl CreateRole {
5034    #[inline]
5035    pub fn name(&self) -> Option<Name> {
5036        support::child(&self.syntax)
5037    }
5038    #[inline]
5039    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5040        support::child(&self.syntax)
5041    }
5042    #[inline]
5043    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5044        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5045    }
5046    #[inline]
5047    pub fn create_token(&self) -> Option<SyntaxToken> {
5048        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5049    }
5050    #[inline]
5051    pub fn role_token(&self) -> Option<SyntaxToken> {
5052        support::token(&self.syntax, SyntaxKind::ROLE_KW)
5053    }
5054}
5055
5056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5057pub struct CreateRule {
5058    pub(crate) syntax: SyntaxNode,
5059}
5060impl CreateRule {
5061    #[inline]
5062    pub fn name(&self) -> Option<Name> {
5063        support::child(&self.syntax)
5064    }
5065    #[inline]
5066    pub fn or_replace(&self) -> Option<OrReplace> {
5067        support::child(&self.syntax)
5068    }
5069    #[inline]
5070    pub fn rule_do(&self) -> Option<RuleDo> {
5071        support::child(&self.syntax)
5072    }
5073    #[inline]
5074    pub fn rule_on(&self) -> Option<RuleOn> {
5075        support::child(&self.syntax)
5076    }
5077    #[inline]
5078    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5079        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5080    }
5081    #[inline]
5082    pub fn as_token(&self) -> Option<SyntaxToken> {
5083        support::token(&self.syntax, SyntaxKind::AS_KW)
5084    }
5085    #[inline]
5086    pub fn create_token(&self) -> Option<SyntaxToken> {
5087        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5088    }
5089    #[inline]
5090    pub fn rule_token(&self) -> Option<SyntaxToken> {
5091        support::token(&self.syntax, SyntaxKind::RULE_KW)
5092    }
5093}
5094
5095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5096pub struct CreateSchema {
5097    pub(crate) syntax: SyntaxNode,
5098}
5099impl CreateSchema {
5100    #[inline]
5101    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5102        support::child(&self.syntax)
5103    }
5104    #[inline]
5105    pub fn name(&self) -> Option<Name> {
5106        support::child(&self.syntax)
5107    }
5108    #[inline]
5109    pub fn role(&self) -> Option<Role> {
5110        support::child(&self.syntax)
5111    }
5112    #[inline]
5113    pub fn role_ref(&self) -> Option<RoleRef> {
5114        support::child(&self.syntax)
5115    }
5116    #[inline]
5117    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
5118        support::children(&self.syntax)
5119    }
5120    #[inline]
5121    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5122        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5123    }
5124    #[inline]
5125    pub fn authorization_token(&self) -> Option<SyntaxToken> {
5126        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
5127    }
5128    #[inline]
5129    pub fn create_token(&self) -> Option<SyntaxToken> {
5130        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5131    }
5132    #[inline]
5133    pub fn schema_token(&self) -> Option<SyntaxToken> {
5134        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
5135    }
5136}
5137
5138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5139pub struct CreateSequence {
5140    pub(crate) syntax: SyntaxNode,
5141}
5142impl CreateSequence {
5143    #[inline]
5144    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5145        support::child(&self.syntax)
5146    }
5147    #[inline]
5148    pub fn path(&self) -> Option<Path> {
5149        support::child(&self.syntax)
5150    }
5151    #[inline]
5152    pub fn persistence(&self) -> Option<Persistence> {
5153        support::child(&self.syntax)
5154    }
5155    #[inline]
5156    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
5157        support::children(&self.syntax)
5158    }
5159    #[inline]
5160    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5161        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5162    }
5163    #[inline]
5164    pub fn create_token(&self) -> Option<SyntaxToken> {
5165        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5166    }
5167    #[inline]
5168    pub fn sequence_token(&self) -> Option<SyntaxToken> {
5169        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
5170    }
5171}
5172
5173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5174pub struct CreateServer {
5175    pub(crate) syntax: SyntaxNode,
5176}
5177impl CreateServer {
5178    #[inline]
5179    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5180        support::child(&self.syntax)
5181    }
5182    #[inline]
5183    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5184        support::child(&self.syntax)
5185    }
5186    #[inline]
5187    pub fn literal(&self) -> Option<Literal> {
5188        support::child(&self.syntax)
5189    }
5190    #[inline]
5191    pub fn name(&self) -> Option<Name> {
5192        support::child(&self.syntax)
5193    }
5194    #[inline]
5195    pub fn name_ref(&self) -> Option<NameRef> {
5196        support::child(&self.syntax)
5197    }
5198    #[inline]
5199    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5200        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5201    }
5202    #[inline]
5203    pub fn create_token(&self) -> Option<SyntaxToken> {
5204        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5205    }
5206    #[inline]
5207    pub fn data_token(&self) -> Option<SyntaxToken> {
5208        support::token(&self.syntax, SyntaxKind::DATA_KW)
5209    }
5210    #[inline]
5211    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5212        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5213    }
5214    #[inline]
5215    pub fn server_token(&self) -> Option<SyntaxToken> {
5216        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5217    }
5218    #[inline]
5219    pub fn type_token(&self) -> Option<SyntaxToken> {
5220        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5221    }
5222    #[inline]
5223    pub fn version_token(&self) -> Option<SyntaxToken> {
5224        support::token(&self.syntax, SyntaxKind::VERSION_KW)
5225    }
5226    #[inline]
5227    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5228        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5229    }
5230}
5231
5232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5233pub struct CreateStatistics {
5234    pub(crate) syntax: SyntaxNode,
5235}
5236impl CreateStatistics {
5237    #[inline]
5238    pub fn from_table(&self) -> Option<FromTable> {
5239        support::child(&self.syntax)
5240    }
5241    #[inline]
5242    pub fn name_refs(&self) -> AstChildren<NameRef> {
5243        support::children(&self.syntax)
5244    }
5245    #[inline]
5246    pub fn path(&self) -> Option<Path> {
5247        support::child(&self.syntax)
5248    }
5249    #[inline]
5250    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5251        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5252    }
5253    #[inline]
5254    pub fn create_token(&self) -> Option<SyntaxToken> {
5255        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5256    }
5257    #[inline]
5258    pub fn on_token(&self) -> Option<SyntaxToken> {
5259        support::token(&self.syntax, SyntaxKind::ON_KW)
5260    }
5261    #[inline]
5262    pub fn statistics_token(&self) -> Option<SyntaxToken> {
5263        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
5264    }
5265}
5266
5267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5268pub struct CreateSubscription {
5269    pub(crate) syntax: SyntaxNode,
5270}
5271impl CreateSubscription {
5272    #[inline]
5273    pub fn literal(&self) -> Option<Literal> {
5274        support::child(&self.syntax)
5275    }
5276    #[inline]
5277    pub fn name(&self) -> Option<Name> {
5278        support::child(&self.syntax)
5279    }
5280    #[inline]
5281    pub fn name_ref(&self) -> Option<NameRef> {
5282        support::child(&self.syntax)
5283    }
5284    #[inline]
5285    pub fn name_refs(&self) -> AstChildren<NameRef> {
5286        support::children(&self.syntax)
5287    }
5288    #[inline]
5289    pub fn with_params(&self) -> Option<WithParams> {
5290        support::child(&self.syntax)
5291    }
5292    #[inline]
5293    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5294        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5295    }
5296    #[inline]
5297    pub fn connection_token(&self) -> Option<SyntaxToken> {
5298        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
5299    }
5300    #[inline]
5301    pub fn create_token(&self) -> Option<SyntaxToken> {
5302        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5303    }
5304    #[inline]
5305    pub fn publication_token(&self) -> Option<SyntaxToken> {
5306        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5307    }
5308    #[inline]
5309    pub fn server_token(&self) -> Option<SyntaxToken> {
5310        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5311    }
5312    #[inline]
5313    pub fn subscription_token(&self) -> Option<SyntaxToken> {
5314        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
5315    }
5316}
5317
5318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5319pub struct CreateTable {
5320    pub(crate) syntax: SyntaxNode,
5321}
5322impl CreateTable {
5323    #[inline]
5324    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5325        support::child(&self.syntax)
5326    }
5327    #[inline]
5328    pub fn inherits(&self) -> Option<Inherits> {
5329        support::child(&self.syntax)
5330    }
5331    #[inline]
5332    pub fn of_type(&self) -> Option<OfType> {
5333        support::child(&self.syntax)
5334    }
5335    #[inline]
5336    pub fn on_commit(&self) -> Option<OnCommit> {
5337        support::child(&self.syntax)
5338    }
5339    #[inline]
5340    pub fn partition_by(&self) -> Option<PartitionBy> {
5341        support::child(&self.syntax)
5342    }
5343    #[inline]
5344    pub fn partition_of(&self) -> Option<PartitionOf> {
5345        support::child(&self.syntax)
5346    }
5347    #[inline]
5348    pub fn path(&self) -> Option<Path> {
5349        support::child(&self.syntax)
5350    }
5351    #[inline]
5352    pub fn persistence(&self) -> Option<Persistence> {
5353        support::child(&self.syntax)
5354    }
5355    #[inline]
5356    pub fn table_arg_list(&self) -> Option<TableArgList> {
5357        support::child(&self.syntax)
5358    }
5359    #[inline]
5360    pub fn tablespace(&self) -> Option<Tablespace> {
5361        support::child(&self.syntax)
5362    }
5363    #[inline]
5364    pub fn using_method(&self) -> Option<UsingMethod> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn with_params(&self) -> Option<WithParams> {
5369        support::child(&self.syntax)
5370    }
5371    #[inline]
5372    pub fn without_oids(&self) -> Option<WithoutOids> {
5373        support::child(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5378    }
5379    #[inline]
5380    pub fn create_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5382    }
5383    #[inline]
5384    pub fn table_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5386    }
5387}
5388
5389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5390pub struct CreateTableAs {
5391    pub(crate) syntax: SyntaxNode,
5392}
5393impl CreateTableAs {
5394    #[inline]
5395    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5396        support::child(&self.syntax)
5397    }
5398    #[inline]
5399    pub fn on_commit(&self) -> Option<OnCommit> {
5400        support::child(&self.syntax)
5401    }
5402    #[inline]
5403    pub fn path(&self) -> Option<Path> {
5404        support::child(&self.syntax)
5405    }
5406    #[inline]
5407    pub fn persistence(&self) -> Option<Persistence> {
5408        support::child(&self.syntax)
5409    }
5410    #[inline]
5411    pub fn query(&self) -> Option<SelectVariant> {
5412        support::child(&self.syntax)
5413    }
5414    #[inline]
5415    pub fn tablespace(&self) -> Option<Tablespace> {
5416        support::child(&self.syntax)
5417    }
5418    #[inline]
5419    pub fn using_method(&self) -> Option<UsingMethod> {
5420        support::child(&self.syntax)
5421    }
5422    #[inline]
5423    pub fn with_data(&self) -> Option<WithData> {
5424        support::child(&self.syntax)
5425    }
5426    #[inline]
5427    pub fn with_no_data(&self) -> Option<WithNoData> {
5428        support::child(&self.syntax)
5429    }
5430    #[inline]
5431    pub fn with_params(&self) -> Option<WithParams> {
5432        support::child(&self.syntax)
5433    }
5434    #[inline]
5435    pub fn without_oids(&self) -> Option<WithoutOids> {
5436        support::child(&self.syntax)
5437    }
5438    #[inline]
5439    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5440        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5441    }
5442    #[inline]
5443    pub fn as_token(&self) -> Option<SyntaxToken> {
5444        support::token(&self.syntax, SyntaxKind::AS_KW)
5445    }
5446    #[inline]
5447    pub fn create_token(&self) -> Option<SyntaxToken> {
5448        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5449    }
5450    #[inline]
5451    pub fn table_token(&self) -> Option<SyntaxToken> {
5452        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5453    }
5454}
5455
5456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5457pub struct CreateTablespace {
5458    pub(crate) syntax: SyntaxNode,
5459}
5460impl CreateTablespace {
5461    #[inline]
5462    pub fn literal(&self) -> Option<Literal> {
5463        support::child(&self.syntax)
5464    }
5465    #[inline]
5466    pub fn name(&self) -> Option<Name> {
5467        support::child(&self.syntax)
5468    }
5469    #[inline]
5470    pub fn role_ref(&self) -> Option<RoleRef> {
5471        support::child(&self.syntax)
5472    }
5473    #[inline]
5474    pub fn with_params(&self) -> Option<WithParams> {
5475        support::child(&self.syntax)
5476    }
5477    #[inline]
5478    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5479        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5480    }
5481    #[inline]
5482    pub fn create_token(&self) -> Option<SyntaxToken> {
5483        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5484    }
5485    #[inline]
5486    pub fn location_token(&self) -> Option<SyntaxToken> {
5487        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5488    }
5489    #[inline]
5490    pub fn owner_token(&self) -> Option<SyntaxToken> {
5491        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5492    }
5493    #[inline]
5494    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5495        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5496    }
5497}
5498
5499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5500pub struct CreateTextSearchConfiguration {
5501    pub(crate) syntax: SyntaxNode,
5502}
5503impl CreateTextSearchConfiguration {
5504    #[inline]
5505    pub fn attribute_list(&self) -> Option<AttributeList> {
5506        support::child(&self.syntax)
5507    }
5508    #[inline]
5509    pub fn path(&self) -> Option<Path> {
5510        support::child(&self.syntax)
5511    }
5512    #[inline]
5513    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5514        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5515    }
5516    #[inline]
5517    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5518        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5519    }
5520    #[inline]
5521    pub fn create_token(&self) -> Option<SyntaxToken> {
5522        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5523    }
5524    #[inline]
5525    pub fn search_token(&self) -> Option<SyntaxToken> {
5526        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5527    }
5528    #[inline]
5529    pub fn text_token(&self) -> Option<SyntaxToken> {
5530        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5531    }
5532}
5533
5534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5535pub struct CreateTextSearchDictionary {
5536    pub(crate) syntax: SyntaxNode,
5537}
5538impl CreateTextSearchDictionary {
5539    #[inline]
5540    pub fn attribute_list(&self) -> Option<AttributeList> {
5541        support::child(&self.syntax)
5542    }
5543    #[inline]
5544    pub fn path(&self) -> Option<Path> {
5545        support::child(&self.syntax)
5546    }
5547    #[inline]
5548    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5549        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5550    }
5551    #[inline]
5552    pub fn create_token(&self) -> Option<SyntaxToken> {
5553        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5554    }
5555    #[inline]
5556    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5557        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5558    }
5559    #[inline]
5560    pub fn search_token(&self) -> Option<SyntaxToken> {
5561        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5562    }
5563    #[inline]
5564    pub fn text_token(&self) -> Option<SyntaxToken> {
5565        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5566    }
5567}
5568
5569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5570pub struct CreateTextSearchParser {
5571    pub(crate) syntax: SyntaxNode,
5572}
5573impl CreateTextSearchParser {
5574    #[inline]
5575    pub fn attribute_list(&self) -> Option<AttributeList> {
5576        support::child(&self.syntax)
5577    }
5578    #[inline]
5579    pub fn path(&self) -> Option<Path> {
5580        support::child(&self.syntax)
5581    }
5582    #[inline]
5583    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5584        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5585    }
5586    #[inline]
5587    pub fn create_token(&self) -> Option<SyntaxToken> {
5588        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5589    }
5590    #[inline]
5591    pub fn parser_token(&self) -> Option<SyntaxToken> {
5592        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5593    }
5594    #[inline]
5595    pub fn search_token(&self) -> Option<SyntaxToken> {
5596        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5597    }
5598    #[inline]
5599    pub fn text_token(&self) -> Option<SyntaxToken> {
5600        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5601    }
5602}
5603
5604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5605pub struct CreateTextSearchTemplate {
5606    pub(crate) syntax: SyntaxNode,
5607}
5608impl CreateTextSearchTemplate {
5609    #[inline]
5610    pub fn attribute_list(&self) -> Option<AttributeList> {
5611        support::child(&self.syntax)
5612    }
5613    #[inline]
5614    pub fn path(&self) -> Option<Path> {
5615        support::child(&self.syntax)
5616    }
5617    #[inline]
5618    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5619        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5620    }
5621    #[inline]
5622    pub fn create_token(&self) -> Option<SyntaxToken> {
5623        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5624    }
5625    #[inline]
5626    pub fn search_token(&self) -> Option<SyntaxToken> {
5627        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5628    }
5629    #[inline]
5630    pub fn template_token(&self) -> Option<SyntaxToken> {
5631        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5632    }
5633    #[inline]
5634    pub fn text_token(&self) -> Option<SyntaxToken> {
5635        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5636    }
5637}
5638
5639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5640pub struct CreateTransform {
5641    pub(crate) syntax: SyntaxNode,
5642}
5643impl CreateTransform {
5644    #[inline]
5645    pub fn from_func(&self) -> Option<TransformFromFunc> {
5646        support::child(&self.syntax)
5647    }
5648    #[inline]
5649    pub fn language(&self) -> Option<NameRef> {
5650        support::child(&self.syntax)
5651    }
5652    #[inline]
5653    pub fn or_replace(&self) -> Option<OrReplace> {
5654        support::child(&self.syntax)
5655    }
5656    #[inline]
5657    pub fn to_func(&self) -> Option<TransformToFunc> {
5658        support::child(&self.syntax)
5659    }
5660    #[inline]
5661    pub fn ty(&self) -> Option<Type> {
5662        support::child(&self.syntax)
5663    }
5664    #[inline]
5665    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5666        support::token(&self.syntax, SyntaxKind::L_PAREN)
5667    }
5668    #[inline]
5669    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5670        support::token(&self.syntax, SyntaxKind::R_PAREN)
5671    }
5672    #[inline]
5673    pub fn comma_token(&self) -> Option<SyntaxToken> {
5674        support::token(&self.syntax, SyntaxKind::COMMA)
5675    }
5676    #[inline]
5677    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5678        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5679    }
5680    #[inline]
5681    pub fn create_token(&self) -> Option<SyntaxToken> {
5682        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5683    }
5684    #[inline]
5685    pub fn for_token(&self) -> Option<SyntaxToken> {
5686        support::token(&self.syntax, SyntaxKind::FOR_KW)
5687    }
5688    #[inline]
5689    pub fn language_token(&self) -> Option<SyntaxToken> {
5690        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5691    }
5692    #[inline]
5693    pub fn transform_token(&self) -> Option<SyntaxToken> {
5694        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5695    }
5696}
5697
5698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5699pub struct CreateTrigger {
5700    pub(crate) syntax: SyntaxNode,
5701}
5702impl CreateTrigger {
5703    #[inline]
5704    pub fn call_expr(&self) -> Option<CallExpr> {
5705        support::child(&self.syntax)
5706    }
5707    #[inline]
5708    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5709        support::child(&self.syntax)
5710    }
5711    #[inline]
5712    pub fn from_table(&self) -> Option<FromTable> {
5713        support::child(&self.syntax)
5714    }
5715    #[inline]
5716    pub fn initially_deferred_constraint_option(
5717        &self,
5718    ) -> Option<InitiallyDeferredConstraintOption> {
5719        support::child(&self.syntax)
5720    }
5721    #[inline]
5722    pub fn initially_immediate_constraint_option(
5723        &self,
5724    ) -> Option<InitiallyImmediateConstraintOption> {
5725        support::child(&self.syntax)
5726    }
5727    #[inline]
5728    pub fn name(&self) -> Option<Name> {
5729        support::child(&self.syntax)
5730    }
5731    #[inline]
5732    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5733        support::child(&self.syntax)
5734    }
5735    #[inline]
5736    pub fn on_table(&self) -> Option<OnTable> {
5737        support::child(&self.syntax)
5738    }
5739    #[inline]
5740    pub fn or_replace(&self) -> Option<OrReplace> {
5741        support::child(&self.syntax)
5742    }
5743    #[inline]
5744    pub fn referencing(&self) -> Option<Referencing> {
5745        support::child(&self.syntax)
5746    }
5747    #[inline]
5748    pub fn timing(&self) -> Option<Timing> {
5749        support::child(&self.syntax)
5750    }
5751    #[inline]
5752    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5753        support::child(&self.syntax)
5754    }
5755    #[inline]
5756    pub fn when_condition(&self) -> Option<WhenCondition> {
5757        support::child(&self.syntax)
5758    }
5759    #[inline]
5760    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5761        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5762    }
5763    #[inline]
5764    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5765        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5766    }
5767    #[inline]
5768    pub fn create_token(&self) -> Option<SyntaxToken> {
5769        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5770    }
5771    #[inline]
5772    pub fn each_token(&self) -> Option<SyntaxToken> {
5773        support::token(&self.syntax, SyntaxKind::EACH_KW)
5774    }
5775    #[inline]
5776    pub fn execute_token(&self) -> Option<SyntaxToken> {
5777        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5778    }
5779    #[inline]
5780    pub fn for_token(&self) -> Option<SyntaxToken> {
5781        support::token(&self.syntax, SyntaxKind::FOR_KW)
5782    }
5783    #[inline]
5784    pub fn function_token(&self) -> Option<SyntaxToken> {
5785        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5786    }
5787    #[inline]
5788    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5789        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5790    }
5791    #[inline]
5792    pub fn row_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::ROW_KW)
5794    }
5795    #[inline]
5796    pub fn statement_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5798    }
5799    #[inline]
5800    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5802    }
5803}
5804
5805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5806pub struct CreateType {
5807    pub(crate) syntax: SyntaxNode,
5808}
5809impl CreateType {
5810    #[inline]
5811    pub fn attribute_list(&self) -> Option<AttributeList> {
5812        support::child(&self.syntax)
5813    }
5814    #[inline]
5815    pub fn column_list(&self) -> Option<ColumnList> {
5816        support::child(&self.syntax)
5817    }
5818    #[inline]
5819    pub fn path(&self) -> Option<Path> {
5820        support::child(&self.syntax)
5821    }
5822    #[inline]
5823    pub fn variant_list(&self) -> Option<VariantList> {
5824        support::child(&self.syntax)
5825    }
5826    #[inline]
5827    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5828        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5829    }
5830    #[inline]
5831    pub fn as_token(&self) -> Option<SyntaxToken> {
5832        support::token(&self.syntax, SyntaxKind::AS_KW)
5833    }
5834    #[inline]
5835    pub fn create_token(&self) -> Option<SyntaxToken> {
5836        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5837    }
5838    #[inline]
5839    pub fn enum_token(&self) -> Option<SyntaxToken> {
5840        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5841    }
5842    #[inline]
5843    pub fn range_token(&self) -> Option<SyntaxToken> {
5844        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5845    }
5846    #[inline]
5847    pub fn type_token(&self) -> Option<SyntaxToken> {
5848        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5849    }
5850}
5851
5852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5853pub struct CreateUser {
5854    pub(crate) syntax: SyntaxNode,
5855}
5856impl CreateUser {
5857    #[inline]
5858    pub fn name(&self) -> Option<Name> {
5859        support::child(&self.syntax)
5860    }
5861    #[inline]
5862    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5863        support::child(&self.syntax)
5864    }
5865    #[inline]
5866    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5867        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5868    }
5869    #[inline]
5870    pub fn create_token(&self) -> Option<SyntaxToken> {
5871        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5872    }
5873    #[inline]
5874    pub fn user_token(&self) -> Option<SyntaxToken> {
5875        support::token(&self.syntax, SyntaxKind::USER_KW)
5876    }
5877}
5878
5879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5880pub struct CreateUserMapping {
5881    pub(crate) syntax: SyntaxNode,
5882}
5883impl CreateUserMapping {
5884    #[inline]
5885    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5886        support::child(&self.syntax)
5887    }
5888    #[inline]
5889    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5890        support::child(&self.syntax)
5891    }
5892    #[inline]
5893    pub fn role_ref(&self) -> Option<RoleRef> {
5894        support::child(&self.syntax)
5895    }
5896    #[inline]
5897    pub fn server_name(&self) -> Option<ServerName> {
5898        support::child(&self.syntax)
5899    }
5900    #[inline]
5901    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5902        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5903    }
5904    #[inline]
5905    pub fn create_token(&self) -> Option<SyntaxToken> {
5906        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5907    }
5908    #[inline]
5909    pub fn for_token(&self) -> Option<SyntaxToken> {
5910        support::token(&self.syntax, SyntaxKind::FOR_KW)
5911    }
5912    #[inline]
5913    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5914        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5915    }
5916    #[inline]
5917    pub fn user_token(&self) -> Option<SyntaxToken> {
5918        support::token(&self.syntax, SyntaxKind::USER_KW)
5919    }
5920}
5921
5922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5923pub struct CreateView {
5924    pub(crate) syntax: SyntaxNode,
5925}
5926impl CreateView {
5927    #[inline]
5928    pub fn column_list(&self) -> Option<ColumnList> {
5929        support::child(&self.syntax)
5930    }
5931    #[inline]
5932    pub fn or_replace(&self) -> Option<OrReplace> {
5933        support::child(&self.syntax)
5934    }
5935    #[inline]
5936    pub fn path(&self) -> Option<Path> {
5937        support::child(&self.syntax)
5938    }
5939    #[inline]
5940    pub fn persistence(&self) -> Option<Persistence> {
5941        support::child(&self.syntax)
5942    }
5943    #[inline]
5944    pub fn query(&self) -> Option<SelectVariant> {
5945        support::child(&self.syntax)
5946    }
5947    #[inline]
5948    pub fn with_params(&self) -> Option<WithParams> {
5949        support::child(&self.syntax)
5950    }
5951    #[inline]
5952    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
5953        support::token(&self.syntax, SyntaxKind::SEMICOLON)
5954    }
5955    #[inline]
5956    pub fn as_token(&self) -> Option<SyntaxToken> {
5957        support::token(&self.syntax, SyntaxKind::AS_KW)
5958    }
5959    #[inline]
5960    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5961        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5962    }
5963    #[inline]
5964    pub fn check_token(&self) -> Option<SyntaxToken> {
5965        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5966    }
5967    #[inline]
5968    pub fn create_token(&self) -> Option<SyntaxToken> {
5969        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5970    }
5971    #[inline]
5972    pub fn local_token(&self) -> Option<SyntaxToken> {
5973        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5974    }
5975    #[inline]
5976    pub fn option_token(&self) -> Option<SyntaxToken> {
5977        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5978    }
5979    #[inline]
5980    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5981        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5982    }
5983    #[inline]
5984    pub fn view_token(&self) -> Option<SyntaxToken> {
5985        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5986    }
5987    #[inline]
5988    pub fn with_token(&self) -> Option<SyntaxToken> {
5989        support::token(&self.syntax, SyntaxKind::WITH_KW)
5990    }
5991}
5992
5993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5994pub struct CustomOp {
5995    pub(crate) syntax: SyntaxNode,
5996}
5997impl CustomOp {
5998    #[inline]
5999    pub fn bang_token(&self) -> Option<SyntaxToken> {
6000        support::token(&self.syntax, SyntaxKind::BANG)
6001    }
6002    #[inline]
6003    pub fn pound_token(&self) -> Option<SyntaxToken> {
6004        support::token(&self.syntax, SyntaxKind::POUND)
6005    }
6006    #[inline]
6007    pub fn percent_token(&self) -> Option<SyntaxToken> {
6008        support::token(&self.syntax, SyntaxKind::PERCENT)
6009    }
6010    #[inline]
6011    pub fn amp_token(&self) -> Option<SyntaxToken> {
6012        support::token(&self.syntax, SyntaxKind::AMP)
6013    }
6014    #[inline]
6015    pub fn star_token(&self) -> Option<SyntaxToken> {
6016        support::token(&self.syntax, SyntaxKind::STAR)
6017    }
6018    #[inline]
6019    pub fn plus_token(&self) -> Option<SyntaxToken> {
6020        support::token(&self.syntax, SyntaxKind::PLUS)
6021    }
6022    #[inline]
6023    pub fn minus_token(&self) -> Option<SyntaxToken> {
6024        support::token(&self.syntax, SyntaxKind::MINUS)
6025    }
6026    #[inline]
6027    pub fn slash_token(&self) -> Option<SyntaxToken> {
6028        support::token(&self.syntax, SyntaxKind::SLASH)
6029    }
6030    #[inline]
6031    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6032        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6033    }
6034    #[inline]
6035    pub fn eq_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::EQ)
6037    }
6038    #[inline]
6039    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::R_ANGLE)
6041    }
6042    #[inline]
6043    pub fn question_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::QUESTION)
6045    }
6046    #[inline]
6047    pub fn at_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::AT)
6049    }
6050    #[inline]
6051    pub fn caret_token(&self) -> Option<SyntaxToken> {
6052        support::token(&self.syntax, SyntaxKind::CARET)
6053    }
6054    #[inline]
6055    pub fn backtick_token(&self) -> Option<SyntaxToken> {
6056        support::token(&self.syntax, SyntaxKind::BACKTICK)
6057    }
6058    #[inline]
6059    pub fn pipe_token(&self) -> Option<SyntaxToken> {
6060        support::token(&self.syntax, SyntaxKind::PIPE)
6061    }
6062    #[inline]
6063    pub fn tilde_token(&self) -> Option<SyntaxToken> {
6064        support::token(&self.syntax, SyntaxKind::TILDE)
6065    }
6066}
6067
6068#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6069pub struct Deallocate {
6070    pub(crate) syntax: SyntaxNode,
6071}
6072impl Deallocate {
6073    #[inline]
6074    pub fn name_ref(&self) -> Option<NameRef> {
6075        support::child(&self.syntax)
6076    }
6077    #[inline]
6078    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6079        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6080    }
6081    #[inline]
6082    pub fn all_token(&self) -> Option<SyntaxToken> {
6083        support::token(&self.syntax, SyntaxKind::ALL_KW)
6084    }
6085    #[inline]
6086    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
6087        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
6088    }
6089    #[inline]
6090    pub fn prepare_token(&self) -> Option<SyntaxToken> {
6091        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
6092    }
6093}
6094
6095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6096pub struct Declare {
6097    pub(crate) syntax: SyntaxNode,
6098}
6099impl Declare {
6100    #[inline]
6101    pub fn name(&self) -> Option<Name> {
6102        support::child(&self.syntax)
6103    }
6104    #[inline]
6105    pub fn query(&self) -> Option<SelectVariant> {
6106        support::child(&self.syntax)
6107    }
6108    #[inline]
6109    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6110        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6111    }
6112    #[inline]
6113    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
6114        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
6115    }
6116    #[inline]
6117    pub fn binary_token(&self) -> Option<SyntaxToken> {
6118        support::token(&self.syntax, SyntaxKind::BINARY_KW)
6119    }
6120    #[inline]
6121    pub fn cursor_token(&self) -> Option<SyntaxToken> {
6122        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
6123    }
6124    #[inline]
6125    pub fn declare_token(&self) -> Option<SyntaxToken> {
6126        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
6127    }
6128    #[inline]
6129    pub fn for_token(&self) -> Option<SyntaxToken> {
6130        support::token(&self.syntax, SyntaxKind::FOR_KW)
6131    }
6132    #[inline]
6133    pub fn hold_token(&self) -> Option<SyntaxToken> {
6134        support::token(&self.syntax, SyntaxKind::HOLD_KW)
6135    }
6136    #[inline]
6137    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
6138        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
6139    }
6140    #[inline]
6141    pub fn no_token(&self) -> Option<SyntaxToken> {
6142        support::token(&self.syntax, SyntaxKind::NO_KW)
6143    }
6144    #[inline]
6145    pub fn scroll_token(&self) -> Option<SyntaxToken> {
6146        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
6147    }
6148    #[inline]
6149    pub fn with_token(&self) -> Option<SyntaxToken> {
6150        support::token(&self.syntax, SyntaxKind::WITH_KW)
6151    }
6152    #[inline]
6153    pub fn without_token(&self) -> Option<SyntaxToken> {
6154        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6155    }
6156}
6157
6158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6159pub struct DefaultConstraint {
6160    pub(crate) syntax: SyntaxNode,
6161}
6162impl DefaultConstraint {
6163    #[inline]
6164    pub fn expr(&self) -> Option<Expr> {
6165        support::child(&self.syntax)
6166    }
6167    #[inline]
6168    pub fn name_ref(&self) -> Option<NameRef> {
6169        support::child(&self.syntax)
6170    }
6171    #[inline]
6172    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6173        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6174    }
6175    #[inline]
6176    pub fn default_token(&self) -> Option<SyntaxToken> {
6177        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6178    }
6179}
6180
6181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6182pub struct Deferrable {
6183    pub(crate) syntax: SyntaxNode,
6184}
6185impl Deferrable {
6186    #[inline]
6187    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6188        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6189    }
6190}
6191
6192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6193pub struct DeferrableConstraintOption {
6194    pub(crate) syntax: SyntaxNode,
6195}
6196impl DeferrableConstraintOption {
6197    #[inline]
6198    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6199        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6200    }
6201}
6202
6203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6204pub struct Delete {
6205    pub(crate) syntax: SyntaxNode,
6206}
6207impl Delete {
6208    #[inline]
6209    pub fn alias(&self) -> Option<Alias> {
6210        support::child(&self.syntax)
6211    }
6212    #[inline]
6213    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
6214        support::child(&self.syntax)
6215    }
6216    #[inline]
6217    pub fn relation_name(&self) -> Option<RelationName> {
6218        support::child(&self.syntax)
6219    }
6220    #[inline]
6221    pub fn returning_clause(&self) -> Option<ReturningClause> {
6222        support::child(&self.syntax)
6223    }
6224    #[inline]
6225    pub fn using_clause(&self) -> Option<UsingClause> {
6226        support::child(&self.syntax)
6227    }
6228    #[inline]
6229    pub fn where_clause(&self) -> Option<WhereClause> {
6230        support::child(&self.syntax)
6231    }
6232    #[inline]
6233    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
6234        support::child(&self.syntax)
6235    }
6236    #[inline]
6237    pub fn with_clause(&self) -> Option<WithClause> {
6238        support::child(&self.syntax)
6239    }
6240    #[inline]
6241    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6242        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6243    }
6244    #[inline]
6245    pub fn delete_token(&self) -> Option<SyntaxToken> {
6246        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6247    }
6248    #[inline]
6249    pub fn from_token(&self) -> Option<SyntaxToken> {
6250        support::token(&self.syntax, SyntaxKind::FROM_KW)
6251    }
6252}
6253
6254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6255pub struct DeleteRows {
6256    pub(crate) syntax: SyntaxNode,
6257}
6258impl DeleteRows {
6259    #[inline]
6260    pub fn delete_token(&self) -> Option<SyntaxToken> {
6261        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6262    }
6263    #[inline]
6264    pub fn rows_token(&self) -> Option<SyntaxToken> {
6265        support::token(&self.syntax, SyntaxKind::ROWS_KW)
6266    }
6267}
6268
6269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6270pub struct DependsOnExtension {
6271    pub(crate) syntax: SyntaxNode,
6272}
6273impl DependsOnExtension {
6274    #[inline]
6275    pub fn name_ref(&self) -> Option<NameRef> {
6276        support::child(&self.syntax)
6277    }
6278    #[inline]
6279    pub fn depends_token(&self) -> Option<SyntaxToken> {
6280        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
6281    }
6282    #[inline]
6283    pub fn extension_token(&self) -> Option<SyntaxToken> {
6284        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6285    }
6286    #[inline]
6287    pub fn on_token(&self) -> Option<SyntaxToken> {
6288        support::token(&self.syntax, SyntaxKind::ON_KW)
6289    }
6290}
6291
6292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6293pub struct DestVertexTable {
6294    pub(crate) syntax: SyntaxNode,
6295}
6296impl DestVertexTable {
6297    #[inline]
6298    pub fn column_list(&self) -> Option<ColumnList> {
6299        support::child(&self.syntax)
6300    }
6301    #[inline]
6302    pub fn name_ref(&self) -> Option<NameRef> {
6303        support::child(&self.syntax)
6304    }
6305    #[inline]
6306    pub fn references_table(&self) -> Option<ReferencesTable> {
6307        support::child(&self.syntax)
6308    }
6309    #[inline]
6310    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6311        support::token(&self.syntax, SyntaxKind::L_PAREN)
6312    }
6313    #[inline]
6314    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6315        support::token(&self.syntax, SyntaxKind::R_PAREN)
6316    }
6317    #[inline]
6318    pub fn destination_token(&self) -> Option<SyntaxToken> {
6319        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
6320    }
6321    #[inline]
6322    pub fn key_token(&self) -> Option<SyntaxToken> {
6323        support::token(&self.syntax, SyntaxKind::KEY_KW)
6324    }
6325}
6326
6327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6328pub struct DetachPartition {
6329    pub(crate) syntax: SyntaxNode,
6330}
6331impl DetachPartition {
6332    #[inline]
6333    pub fn path(&self) -> Option<Path> {
6334        support::child(&self.syntax)
6335    }
6336    #[inline]
6337    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6338        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6339    }
6340    #[inline]
6341    pub fn detach_token(&self) -> Option<SyntaxToken> {
6342        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6343    }
6344    #[inline]
6345    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6346        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6347    }
6348    #[inline]
6349    pub fn partition_token(&self) -> Option<SyntaxToken> {
6350        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6351    }
6352}
6353
6354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6355pub struct DisableRls {
6356    pub(crate) syntax: SyntaxNode,
6357}
6358impl DisableRls {
6359    #[inline]
6360    pub fn disable_token(&self) -> Option<SyntaxToken> {
6361        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6362    }
6363    #[inline]
6364    pub fn level_token(&self) -> Option<SyntaxToken> {
6365        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6366    }
6367    #[inline]
6368    pub fn row_token(&self) -> Option<SyntaxToken> {
6369        support::token(&self.syntax, SyntaxKind::ROW_KW)
6370    }
6371    #[inline]
6372    pub fn security_token(&self) -> Option<SyntaxToken> {
6373        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6374    }
6375}
6376
6377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6378pub struct DisableRule {
6379    pub(crate) syntax: SyntaxNode,
6380}
6381impl DisableRule {
6382    #[inline]
6383    pub fn disable_token(&self) -> Option<SyntaxToken> {
6384        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6385    }
6386    #[inline]
6387    pub fn rule_token(&self) -> Option<SyntaxToken> {
6388        support::token(&self.syntax, SyntaxKind::RULE_KW)
6389    }
6390}
6391
6392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6393pub struct DisableTrigger {
6394    pub(crate) syntax: SyntaxNode,
6395}
6396impl DisableTrigger {
6397    #[inline]
6398    pub fn disable_token(&self) -> Option<SyntaxToken> {
6399        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6400    }
6401    #[inline]
6402    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6403        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6404    }
6405}
6406
6407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6408pub struct Discard {
6409    pub(crate) syntax: SyntaxNode,
6410}
6411impl Discard {
6412    #[inline]
6413    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6414        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6415    }
6416    #[inline]
6417    pub fn all_token(&self) -> Option<SyntaxToken> {
6418        support::token(&self.syntax, SyntaxKind::ALL_KW)
6419    }
6420    #[inline]
6421    pub fn discard_token(&self) -> Option<SyntaxToken> {
6422        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6423    }
6424    #[inline]
6425    pub fn plans_token(&self) -> Option<SyntaxToken> {
6426        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6427    }
6428    #[inline]
6429    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6430        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6431    }
6432    #[inline]
6433    pub fn temp_token(&self) -> Option<SyntaxToken> {
6434        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6435    }
6436    #[inline]
6437    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6438        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6439    }
6440}
6441
6442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6443pub struct DistinctClause {
6444    pub(crate) syntax: SyntaxNode,
6445}
6446impl DistinctClause {
6447    #[inline]
6448    pub fn exprs(&self) -> AstChildren<Expr> {
6449        support::children(&self.syntax)
6450    }
6451    #[inline]
6452    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6453        support::token(&self.syntax, SyntaxKind::L_PAREN)
6454    }
6455    #[inline]
6456    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6457        support::token(&self.syntax, SyntaxKind::R_PAREN)
6458    }
6459    #[inline]
6460    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6461        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6462    }
6463    #[inline]
6464    pub fn on_token(&self) -> Option<SyntaxToken> {
6465        support::token(&self.syntax, SyntaxKind::ON_KW)
6466    }
6467}
6468
6469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6470pub struct Do {
6471    pub(crate) syntax: SyntaxNode,
6472}
6473impl Do {
6474    #[inline]
6475    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6476        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6477    }
6478    #[inline]
6479    pub fn do_token(&self) -> Option<SyntaxToken> {
6480        support::token(&self.syntax, SyntaxKind::DO_KW)
6481    }
6482}
6483
6484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6485pub struct DoubleType {
6486    pub(crate) syntax: SyntaxNode,
6487}
6488impl DoubleType {
6489    #[inline]
6490    pub fn double_token(&self) -> Option<SyntaxToken> {
6491        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6492    }
6493    #[inline]
6494    pub fn precision_token(&self) -> Option<SyntaxToken> {
6495        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6496    }
6497    #[inline]
6498    pub fn setof_token(&self) -> Option<SyntaxToken> {
6499        support::token(&self.syntax, SyntaxKind::SETOF_KW)
6500    }
6501}
6502
6503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6504pub struct Drop {
6505    pub(crate) syntax: SyntaxNode,
6506}
6507impl Drop {
6508    #[inline]
6509    pub fn drop_token(&self) -> Option<SyntaxToken> {
6510        support::token(&self.syntax, SyntaxKind::DROP_KW)
6511    }
6512}
6513
6514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6515pub struct DropAccessMethod {
6516    pub(crate) syntax: SyntaxNode,
6517}
6518impl DropAccessMethod {
6519    #[inline]
6520    pub fn if_exists(&self) -> Option<IfExists> {
6521        support::child(&self.syntax)
6522    }
6523    #[inline]
6524    pub fn name_ref(&self) -> Option<NameRef> {
6525        support::child(&self.syntax)
6526    }
6527    #[inline]
6528    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6530    }
6531    #[inline]
6532    pub fn access_token(&self) -> Option<SyntaxToken> {
6533        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6534    }
6535    #[inline]
6536    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6538    }
6539    #[inline]
6540    pub fn drop_token(&self) -> Option<SyntaxToken> {
6541        support::token(&self.syntax, SyntaxKind::DROP_KW)
6542    }
6543    #[inline]
6544    pub fn method_token(&self) -> Option<SyntaxToken> {
6545        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6546    }
6547    #[inline]
6548    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6549        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6550    }
6551}
6552
6553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6554pub struct DropAggregate {
6555    pub(crate) syntax: SyntaxNode,
6556}
6557impl DropAggregate {
6558    #[inline]
6559    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6560        support::children(&self.syntax)
6561    }
6562    #[inline]
6563    pub fn if_exists(&self) -> Option<IfExists> {
6564        support::child(&self.syntax)
6565    }
6566    #[inline]
6567    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6568        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6569    }
6570    #[inline]
6571    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6572        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6573    }
6574    #[inline]
6575    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6576        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6577    }
6578    #[inline]
6579    pub fn drop_token(&self) -> Option<SyntaxToken> {
6580        support::token(&self.syntax, SyntaxKind::DROP_KW)
6581    }
6582    #[inline]
6583    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6584        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6585    }
6586}
6587
6588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6589pub struct DropAttribute {
6590    pub(crate) syntax: SyntaxNode,
6591}
6592impl DropAttribute {
6593    #[inline]
6594    pub fn cascade(&self) -> Option<Cascade> {
6595        support::child(&self.syntax)
6596    }
6597    #[inline]
6598    pub fn if_exists(&self) -> Option<IfExists> {
6599        support::child(&self.syntax)
6600    }
6601    #[inline]
6602    pub fn restrict(&self) -> Option<Restrict> {
6603        support::child(&self.syntax)
6604    }
6605    #[inline]
6606    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6607        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6608    }
6609    #[inline]
6610    pub fn drop_token(&self) -> Option<SyntaxToken> {
6611        support::token(&self.syntax, SyntaxKind::DROP_KW)
6612    }
6613}
6614
6615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6616pub struct DropCast {
6617    pub(crate) syntax: SyntaxNode,
6618}
6619impl DropCast {
6620    #[inline]
6621    pub fn cast_sig(&self) -> Option<CastSig> {
6622        support::child(&self.syntax)
6623    }
6624    #[inline]
6625    pub fn if_exists(&self) -> Option<IfExists> {
6626        support::child(&self.syntax)
6627    }
6628    #[inline]
6629    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6630        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6631    }
6632    #[inline]
6633    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6634        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6635    }
6636    #[inline]
6637    pub fn cast_token(&self) -> Option<SyntaxToken> {
6638        support::token(&self.syntax, SyntaxKind::CAST_KW)
6639    }
6640    #[inline]
6641    pub fn drop_token(&self) -> Option<SyntaxToken> {
6642        support::token(&self.syntax, SyntaxKind::DROP_KW)
6643    }
6644    #[inline]
6645    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6646        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6647    }
6648}
6649
6650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6651pub struct DropCollation {
6652    pub(crate) syntax: SyntaxNode,
6653}
6654impl DropCollation {
6655    #[inline]
6656    pub fn if_exists(&self) -> Option<IfExists> {
6657        support::child(&self.syntax)
6658    }
6659    #[inline]
6660    pub fn paths(&self) -> AstChildren<Path> {
6661        support::children(&self.syntax)
6662    }
6663    #[inline]
6664    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6665        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6666    }
6667    #[inline]
6668    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6669        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6670    }
6671    #[inline]
6672    pub fn collation_token(&self) -> Option<SyntaxToken> {
6673        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6674    }
6675    #[inline]
6676    pub fn drop_token(&self) -> Option<SyntaxToken> {
6677        support::token(&self.syntax, SyntaxKind::DROP_KW)
6678    }
6679    #[inline]
6680    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6681        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6682    }
6683}
6684
6685#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6686pub struct DropColumn {
6687    pub(crate) syntax: SyntaxNode,
6688}
6689impl DropColumn {
6690    #[inline]
6691    pub fn if_exists(&self) -> Option<IfExists> {
6692        support::child(&self.syntax)
6693    }
6694    #[inline]
6695    pub fn name_ref(&self) -> Option<NameRef> {
6696        support::child(&self.syntax)
6697    }
6698    #[inline]
6699    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6700        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6701    }
6702    #[inline]
6703    pub fn column_token(&self) -> Option<SyntaxToken> {
6704        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6705    }
6706    #[inline]
6707    pub fn drop_token(&self) -> Option<SyntaxToken> {
6708        support::token(&self.syntax, SyntaxKind::DROP_KW)
6709    }
6710    #[inline]
6711    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6712        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6713    }
6714}
6715
6716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6717pub struct DropConstraint {
6718    pub(crate) syntax: SyntaxNode,
6719}
6720impl DropConstraint {
6721    #[inline]
6722    pub fn if_exists(&self) -> Option<IfExists> {
6723        support::child(&self.syntax)
6724    }
6725    #[inline]
6726    pub fn name_ref(&self) -> Option<NameRef> {
6727        support::child(&self.syntax)
6728    }
6729    #[inline]
6730    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6731        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6732    }
6733    #[inline]
6734    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6735        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6736    }
6737    #[inline]
6738    pub fn drop_token(&self) -> Option<SyntaxToken> {
6739        support::token(&self.syntax, SyntaxKind::DROP_KW)
6740    }
6741    #[inline]
6742    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6743        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6744    }
6745}
6746
6747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6748pub struct DropConversion {
6749    pub(crate) syntax: SyntaxNode,
6750}
6751impl DropConversion {
6752    #[inline]
6753    pub fn if_exists(&self) -> Option<IfExists> {
6754        support::child(&self.syntax)
6755    }
6756    #[inline]
6757    pub fn path(&self) -> Option<Path> {
6758        support::child(&self.syntax)
6759    }
6760    #[inline]
6761    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6762        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6763    }
6764    #[inline]
6765    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6766        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6767    }
6768    #[inline]
6769    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6770        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6771    }
6772    #[inline]
6773    pub fn drop_token(&self) -> Option<SyntaxToken> {
6774        support::token(&self.syntax, SyntaxKind::DROP_KW)
6775    }
6776    #[inline]
6777    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6778        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6779    }
6780}
6781
6782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6783pub struct DropDatabase {
6784    pub(crate) syntax: SyntaxNode,
6785}
6786impl DropDatabase {
6787    #[inline]
6788    pub fn if_exists(&self) -> Option<IfExists> {
6789        support::child(&self.syntax)
6790    }
6791    #[inline]
6792    pub fn name_ref(&self) -> Option<NameRef> {
6793        support::child(&self.syntax)
6794    }
6795    #[inline]
6796    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6797        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6798    }
6799    #[inline]
6800    pub fn database_token(&self) -> Option<SyntaxToken> {
6801        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6802    }
6803    #[inline]
6804    pub fn drop_token(&self) -> Option<SyntaxToken> {
6805        support::token(&self.syntax, SyntaxKind::DROP_KW)
6806    }
6807}
6808
6809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6810pub struct DropDefault {
6811    pub(crate) syntax: SyntaxNode,
6812}
6813impl DropDefault {
6814    #[inline]
6815    pub fn default_token(&self) -> Option<SyntaxToken> {
6816        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6817    }
6818    #[inline]
6819    pub fn drop_token(&self) -> Option<SyntaxToken> {
6820        support::token(&self.syntax, SyntaxKind::DROP_KW)
6821    }
6822}
6823
6824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6825pub struct DropDomain {
6826    pub(crate) syntax: SyntaxNode,
6827}
6828impl DropDomain {
6829    #[inline]
6830    pub fn if_exists(&self) -> Option<IfExists> {
6831        support::child(&self.syntax)
6832    }
6833    #[inline]
6834    pub fn paths(&self) -> AstChildren<Path> {
6835        support::children(&self.syntax)
6836    }
6837    #[inline]
6838    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6839        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6840    }
6841    #[inline]
6842    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6843        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6844    }
6845    #[inline]
6846    pub fn domain_token(&self) -> Option<SyntaxToken> {
6847        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6848    }
6849    #[inline]
6850    pub fn drop_token(&self) -> Option<SyntaxToken> {
6851        support::token(&self.syntax, SyntaxKind::DROP_KW)
6852    }
6853    #[inline]
6854    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6855        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6856    }
6857}
6858
6859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6860pub struct DropEdgeTables {
6861    pub(crate) syntax: SyntaxNode,
6862}
6863impl DropEdgeTables {
6864    #[inline]
6865    pub fn names(&self) -> AstChildren<Name> {
6866        support::children(&self.syntax)
6867    }
6868    #[inline]
6869    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6870        support::token(&self.syntax, SyntaxKind::L_PAREN)
6871    }
6872    #[inline]
6873    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6874        support::token(&self.syntax, SyntaxKind::R_PAREN)
6875    }
6876    #[inline]
6877    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6878        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6879    }
6880    #[inline]
6881    pub fn drop_token(&self) -> Option<SyntaxToken> {
6882        support::token(&self.syntax, SyntaxKind::DROP_KW)
6883    }
6884    #[inline]
6885    pub fn edge_token(&self) -> Option<SyntaxToken> {
6886        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6887    }
6888    #[inline]
6889    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6890        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6891    }
6892    #[inline]
6893    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6894        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6895    }
6896    #[inline]
6897    pub fn tables_token(&self) -> Option<SyntaxToken> {
6898        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6899    }
6900}
6901
6902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6903pub struct DropEventTrigger {
6904    pub(crate) syntax: SyntaxNode,
6905}
6906impl DropEventTrigger {
6907    #[inline]
6908    pub fn if_exists(&self) -> Option<IfExists> {
6909        support::child(&self.syntax)
6910    }
6911    #[inline]
6912    pub fn name_ref(&self) -> Option<NameRef> {
6913        support::child(&self.syntax)
6914    }
6915    #[inline]
6916    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6917        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6918    }
6919    #[inline]
6920    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6921        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6922    }
6923    #[inline]
6924    pub fn drop_token(&self) -> Option<SyntaxToken> {
6925        support::token(&self.syntax, SyntaxKind::DROP_KW)
6926    }
6927    #[inline]
6928    pub fn event_token(&self) -> Option<SyntaxToken> {
6929        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6930    }
6931    #[inline]
6932    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6933        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6934    }
6935    #[inline]
6936    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6937        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6938    }
6939}
6940
6941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6942pub struct DropExpression {
6943    pub(crate) syntax: SyntaxNode,
6944}
6945impl DropExpression {
6946    #[inline]
6947    pub fn if_exists(&self) -> Option<IfExists> {
6948        support::child(&self.syntax)
6949    }
6950    #[inline]
6951    pub fn drop_token(&self) -> Option<SyntaxToken> {
6952        support::token(&self.syntax, SyntaxKind::DROP_KW)
6953    }
6954    #[inline]
6955    pub fn expression_token(&self) -> Option<SyntaxToken> {
6956        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6957    }
6958}
6959
6960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6961pub struct DropExtension {
6962    pub(crate) syntax: SyntaxNode,
6963}
6964impl DropExtension {
6965    #[inline]
6966    pub fn if_exists(&self) -> Option<IfExists> {
6967        support::child(&self.syntax)
6968    }
6969    #[inline]
6970    pub fn name_refs(&self) -> AstChildren<NameRef> {
6971        support::children(&self.syntax)
6972    }
6973    #[inline]
6974    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
6975        support::token(&self.syntax, SyntaxKind::SEMICOLON)
6976    }
6977    #[inline]
6978    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6979        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6980    }
6981    #[inline]
6982    pub fn drop_token(&self) -> Option<SyntaxToken> {
6983        support::token(&self.syntax, SyntaxKind::DROP_KW)
6984    }
6985    #[inline]
6986    pub fn extension_token(&self) -> Option<SyntaxToken> {
6987        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6988    }
6989    #[inline]
6990    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6991        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6992    }
6993}
6994
6995#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6996pub struct DropForeignDataWrapper {
6997    pub(crate) syntax: SyntaxNode,
6998}
6999impl DropForeignDataWrapper {
7000    #[inline]
7001    pub fn if_exists(&self) -> Option<IfExists> {
7002        support::child(&self.syntax)
7003    }
7004    #[inline]
7005    pub fn name_refs(&self) -> AstChildren<NameRef> {
7006        support::children(&self.syntax)
7007    }
7008    #[inline]
7009    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7010        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7011    }
7012    #[inline]
7013    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7014        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7015    }
7016    #[inline]
7017    pub fn data_token(&self) -> Option<SyntaxToken> {
7018        support::token(&self.syntax, SyntaxKind::DATA_KW)
7019    }
7020    #[inline]
7021    pub fn drop_token(&self) -> Option<SyntaxToken> {
7022        support::token(&self.syntax, SyntaxKind::DROP_KW)
7023    }
7024    #[inline]
7025    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7026        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7027    }
7028    #[inline]
7029    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7030        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7031    }
7032    #[inline]
7033    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
7034        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
7035    }
7036}
7037
7038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7039pub struct DropForeignTable {
7040    pub(crate) syntax: SyntaxNode,
7041}
7042impl DropForeignTable {
7043    #[inline]
7044    pub fn if_exists(&self) -> Option<IfExists> {
7045        support::child(&self.syntax)
7046    }
7047    #[inline]
7048    pub fn path(&self) -> Option<Path> {
7049        support::child(&self.syntax)
7050    }
7051    #[inline]
7052    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7053        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7054    }
7055    #[inline]
7056    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7057        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7058    }
7059    #[inline]
7060    pub fn drop_token(&self) -> Option<SyntaxToken> {
7061        support::token(&self.syntax, SyntaxKind::DROP_KW)
7062    }
7063    #[inline]
7064    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7065        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7066    }
7067    #[inline]
7068    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7069        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7070    }
7071    #[inline]
7072    pub fn table_token(&self) -> Option<SyntaxToken> {
7073        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7074    }
7075}
7076
7077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7078pub struct DropFunction {
7079    pub(crate) syntax: SyntaxNode,
7080}
7081impl DropFunction {
7082    #[inline]
7083    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7084        support::child(&self.syntax)
7085    }
7086    #[inline]
7087    pub fn if_exists(&self) -> Option<IfExists> {
7088        support::child(&self.syntax)
7089    }
7090    #[inline]
7091    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7092        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7093    }
7094    #[inline]
7095    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7096        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7097    }
7098    #[inline]
7099    pub fn drop_token(&self) -> Option<SyntaxToken> {
7100        support::token(&self.syntax, SyntaxKind::DROP_KW)
7101    }
7102    #[inline]
7103    pub fn function_token(&self) -> Option<SyntaxToken> {
7104        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
7105    }
7106    #[inline]
7107    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7108        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7109    }
7110}
7111
7112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7113pub struct DropGroup {
7114    pub(crate) syntax: SyntaxNode,
7115}
7116impl DropGroup {
7117    #[inline]
7118    pub fn if_exists(&self) -> Option<IfExists> {
7119        support::child(&self.syntax)
7120    }
7121    #[inline]
7122    pub fn name_refs(&self) -> AstChildren<NameRef> {
7123        support::children(&self.syntax)
7124    }
7125    #[inline]
7126    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7127        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7128    }
7129    #[inline]
7130    pub fn drop_token(&self) -> Option<SyntaxToken> {
7131        support::token(&self.syntax, SyntaxKind::DROP_KW)
7132    }
7133    #[inline]
7134    pub fn group_token(&self) -> Option<SyntaxToken> {
7135        support::token(&self.syntax, SyntaxKind::GROUP_KW)
7136    }
7137}
7138
7139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7140pub struct DropIdentity {
7141    pub(crate) syntax: SyntaxNode,
7142}
7143impl DropIdentity {
7144    #[inline]
7145    pub fn if_exists(&self) -> Option<IfExists> {
7146        support::child(&self.syntax)
7147    }
7148    #[inline]
7149    pub fn drop_token(&self) -> Option<SyntaxToken> {
7150        support::token(&self.syntax, SyntaxKind::DROP_KW)
7151    }
7152    #[inline]
7153    pub fn identity_token(&self) -> Option<SyntaxToken> {
7154        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7155    }
7156}
7157
7158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7159pub struct DropIndex {
7160    pub(crate) syntax: SyntaxNode,
7161}
7162impl DropIndex {
7163    #[inline]
7164    pub fn if_exists(&self) -> Option<IfExists> {
7165        support::child(&self.syntax)
7166    }
7167    #[inline]
7168    pub fn paths(&self) -> AstChildren<Path> {
7169        support::children(&self.syntax)
7170    }
7171    #[inline]
7172    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7173        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7174    }
7175    #[inline]
7176    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7177        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7178    }
7179    #[inline]
7180    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
7181        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
7182    }
7183    #[inline]
7184    pub fn drop_token(&self) -> Option<SyntaxToken> {
7185        support::token(&self.syntax, SyntaxKind::DROP_KW)
7186    }
7187    #[inline]
7188    pub fn index_token(&self) -> Option<SyntaxToken> {
7189        support::token(&self.syntax, SyntaxKind::INDEX_KW)
7190    }
7191    #[inline]
7192    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7193        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7194    }
7195}
7196
7197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7198pub struct DropLanguage {
7199    pub(crate) syntax: SyntaxNode,
7200}
7201impl DropLanguage {
7202    #[inline]
7203    pub fn if_exists(&self) -> Option<IfExists> {
7204        support::child(&self.syntax)
7205    }
7206    #[inline]
7207    pub fn name_ref(&self) -> Option<NameRef> {
7208        support::child(&self.syntax)
7209    }
7210    #[inline]
7211    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7212        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7213    }
7214    #[inline]
7215    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7216        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7217    }
7218    #[inline]
7219    pub fn drop_token(&self) -> Option<SyntaxToken> {
7220        support::token(&self.syntax, SyntaxKind::DROP_KW)
7221    }
7222    #[inline]
7223    pub fn language_token(&self) -> Option<SyntaxToken> {
7224        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7225    }
7226    #[inline]
7227    pub fn procedural_token(&self) -> Option<SyntaxToken> {
7228        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
7229    }
7230    #[inline]
7231    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7232        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7233    }
7234}
7235
7236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7237pub struct DropMaterializedView {
7238    pub(crate) syntax: SyntaxNode,
7239}
7240impl DropMaterializedView {
7241    #[inline]
7242    pub fn if_exists(&self) -> Option<IfExists> {
7243        support::child(&self.syntax)
7244    }
7245    #[inline]
7246    pub fn paths(&self) -> AstChildren<Path> {
7247        support::children(&self.syntax)
7248    }
7249    #[inline]
7250    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7251        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7252    }
7253    #[inline]
7254    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7255        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7256    }
7257    #[inline]
7258    pub fn drop_token(&self) -> Option<SyntaxToken> {
7259        support::token(&self.syntax, SyntaxKind::DROP_KW)
7260    }
7261    #[inline]
7262    pub fn materialized_token(&self) -> Option<SyntaxToken> {
7263        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
7264    }
7265    #[inline]
7266    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7267        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7268    }
7269    #[inline]
7270    pub fn view_token(&self) -> Option<SyntaxToken> {
7271        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7272    }
7273}
7274
7275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7276pub struct DropNotNull {
7277    pub(crate) syntax: SyntaxNode,
7278}
7279impl DropNotNull {
7280    #[inline]
7281    pub fn drop_token(&self) -> Option<SyntaxToken> {
7282        support::token(&self.syntax, SyntaxKind::DROP_KW)
7283    }
7284    #[inline]
7285    pub fn not_token(&self) -> Option<SyntaxToken> {
7286        support::token(&self.syntax, SyntaxKind::NOT_KW)
7287    }
7288    #[inline]
7289    pub fn null_token(&self) -> Option<SyntaxToken> {
7290        support::token(&self.syntax, SyntaxKind::NULL_KW)
7291    }
7292}
7293
7294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7295pub struct DropOpClassOption {
7296    pub(crate) syntax: SyntaxNode,
7297}
7298impl DropOpClassOption {
7299    #[inline]
7300    pub fn literal(&self) -> Option<Literal> {
7301        support::child(&self.syntax)
7302    }
7303    #[inline]
7304    pub fn param_list(&self) -> Option<ParamList> {
7305        support::child(&self.syntax)
7306    }
7307    #[inline]
7308    pub fn function_token(&self) -> Option<SyntaxToken> {
7309        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
7310    }
7311    #[inline]
7312    pub fn operator_token(&self) -> Option<SyntaxToken> {
7313        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7314    }
7315}
7316
7317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7318pub struct DropOpClassOptionList {
7319    pub(crate) syntax: SyntaxNode,
7320}
7321impl DropOpClassOptionList {
7322    #[inline]
7323    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
7324        support::children(&self.syntax)
7325    }
7326}
7327
7328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7329pub struct DropOpClassOptions {
7330    pub(crate) syntax: SyntaxNode,
7331}
7332impl DropOpClassOptions {
7333    #[inline]
7334    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
7335        support::child(&self.syntax)
7336    }
7337    #[inline]
7338    pub fn drop_token(&self) -> Option<SyntaxToken> {
7339        support::token(&self.syntax, SyntaxKind::DROP_KW)
7340    }
7341}
7342
7343#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7344pub struct DropOperator {
7345    pub(crate) syntax: SyntaxNode,
7346}
7347impl DropOperator {
7348    #[inline]
7349    pub fn if_exists(&self) -> Option<IfExists> {
7350        support::child(&self.syntax)
7351    }
7352    #[inline]
7353    pub fn op_sig_list(&self) -> Option<OpSigList> {
7354        support::child(&self.syntax)
7355    }
7356    #[inline]
7357    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7358        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7359    }
7360    #[inline]
7361    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7362        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7363    }
7364    #[inline]
7365    pub fn drop_token(&self) -> Option<SyntaxToken> {
7366        support::token(&self.syntax, SyntaxKind::DROP_KW)
7367    }
7368    #[inline]
7369    pub fn operator_token(&self) -> Option<SyntaxToken> {
7370        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7371    }
7372    #[inline]
7373    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7374        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7375    }
7376}
7377
7378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7379pub struct DropOperatorClass {
7380    pub(crate) syntax: SyntaxNode,
7381}
7382impl DropOperatorClass {
7383    #[inline]
7384    pub fn if_exists(&self) -> Option<IfExists> {
7385        support::child(&self.syntax)
7386    }
7387    #[inline]
7388    pub fn name_ref(&self) -> Option<NameRef> {
7389        support::child(&self.syntax)
7390    }
7391    #[inline]
7392    pub fn path(&self) -> Option<Path> {
7393        support::child(&self.syntax)
7394    }
7395    #[inline]
7396    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7397        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7398    }
7399    #[inline]
7400    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7401        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7402    }
7403    #[inline]
7404    pub fn class_token(&self) -> Option<SyntaxToken> {
7405        support::token(&self.syntax, SyntaxKind::CLASS_KW)
7406    }
7407    #[inline]
7408    pub fn drop_token(&self) -> Option<SyntaxToken> {
7409        support::token(&self.syntax, SyntaxKind::DROP_KW)
7410    }
7411    #[inline]
7412    pub fn operator_token(&self) -> Option<SyntaxToken> {
7413        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7414    }
7415    #[inline]
7416    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7417        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7418    }
7419    #[inline]
7420    pub fn using_token(&self) -> Option<SyntaxToken> {
7421        support::token(&self.syntax, SyntaxKind::USING_KW)
7422    }
7423}
7424
7425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7426pub struct DropOperatorFamily {
7427    pub(crate) syntax: SyntaxNode,
7428}
7429impl DropOperatorFamily {
7430    #[inline]
7431    pub fn if_exists(&self) -> Option<IfExists> {
7432        support::child(&self.syntax)
7433    }
7434    #[inline]
7435    pub fn name_ref(&self) -> Option<NameRef> {
7436        support::child(&self.syntax)
7437    }
7438    #[inline]
7439    pub fn path(&self) -> Option<Path> {
7440        support::child(&self.syntax)
7441    }
7442    #[inline]
7443    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7444        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7445    }
7446    #[inline]
7447    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7448        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7449    }
7450    #[inline]
7451    pub fn drop_token(&self) -> Option<SyntaxToken> {
7452        support::token(&self.syntax, SyntaxKind::DROP_KW)
7453    }
7454    #[inline]
7455    pub fn family_token(&self) -> Option<SyntaxToken> {
7456        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7457    }
7458    #[inline]
7459    pub fn operator_token(&self) -> Option<SyntaxToken> {
7460        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7461    }
7462    #[inline]
7463    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7464        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7465    }
7466    #[inline]
7467    pub fn using_token(&self) -> Option<SyntaxToken> {
7468        support::token(&self.syntax, SyntaxKind::USING_KW)
7469    }
7470}
7471
7472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7473pub struct DropOwned {
7474    pub(crate) syntax: SyntaxNode,
7475}
7476impl DropOwned {
7477    #[inline]
7478    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7479        support::child(&self.syntax)
7480    }
7481    #[inline]
7482    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7483        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7484    }
7485    #[inline]
7486    pub fn by_token(&self) -> Option<SyntaxToken> {
7487        support::token(&self.syntax, SyntaxKind::BY_KW)
7488    }
7489    #[inline]
7490    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7491        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7492    }
7493    #[inline]
7494    pub fn drop_token(&self) -> Option<SyntaxToken> {
7495        support::token(&self.syntax, SyntaxKind::DROP_KW)
7496    }
7497    #[inline]
7498    pub fn owned_token(&self) -> Option<SyntaxToken> {
7499        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7500    }
7501    #[inline]
7502    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7503        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7504    }
7505}
7506
7507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7508pub struct DropPolicy {
7509    pub(crate) syntax: SyntaxNode,
7510}
7511impl DropPolicy {
7512    #[inline]
7513    pub fn if_exists(&self) -> Option<IfExists> {
7514        support::child(&self.syntax)
7515    }
7516    #[inline]
7517    pub fn name_ref(&self) -> Option<NameRef> {
7518        support::child(&self.syntax)
7519    }
7520    #[inline]
7521    pub fn on_table(&self) -> Option<OnTable> {
7522        support::child(&self.syntax)
7523    }
7524    #[inline]
7525    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7526        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7527    }
7528    #[inline]
7529    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7530        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7531    }
7532    #[inline]
7533    pub fn drop_token(&self) -> Option<SyntaxToken> {
7534        support::token(&self.syntax, SyntaxKind::DROP_KW)
7535    }
7536    #[inline]
7537    pub fn policy_token(&self) -> Option<SyntaxToken> {
7538        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7539    }
7540    #[inline]
7541    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7542        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7543    }
7544}
7545
7546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7547pub struct DropProcedure {
7548    pub(crate) syntax: SyntaxNode,
7549}
7550impl DropProcedure {
7551    #[inline]
7552    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7553        support::child(&self.syntax)
7554    }
7555    #[inline]
7556    pub fn if_exists(&self) -> Option<IfExists> {
7557        support::child(&self.syntax)
7558    }
7559    #[inline]
7560    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7561        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7562    }
7563    #[inline]
7564    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7565        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7566    }
7567    #[inline]
7568    pub fn drop_token(&self) -> Option<SyntaxToken> {
7569        support::token(&self.syntax, SyntaxKind::DROP_KW)
7570    }
7571    #[inline]
7572    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7573        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7574    }
7575    #[inline]
7576    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7577        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7578    }
7579}
7580
7581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7582pub struct DropPropertyGraph {
7583    pub(crate) syntax: SyntaxNode,
7584}
7585impl DropPropertyGraph {
7586    #[inline]
7587    pub fn if_exists(&self) -> Option<IfExists> {
7588        support::child(&self.syntax)
7589    }
7590    #[inline]
7591    pub fn path(&self) -> Option<Path> {
7592        support::child(&self.syntax)
7593    }
7594    #[inline]
7595    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7596        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7597    }
7598    #[inline]
7599    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7600        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7601    }
7602    #[inline]
7603    pub fn drop_token(&self) -> Option<SyntaxToken> {
7604        support::token(&self.syntax, SyntaxKind::DROP_KW)
7605    }
7606    #[inline]
7607    pub fn graph_token(&self) -> Option<SyntaxToken> {
7608        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7609    }
7610    #[inline]
7611    pub fn property_token(&self) -> Option<SyntaxToken> {
7612        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7613    }
7614    #[inline]
7615    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7616        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7617    }
7618}
7619
7620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7621pub struct DropPublication {
7622    pub(crate) syntax: SyntaxNode,
7623}
7624impl DropPublication {
7625    #[inline]
7626    pub fn if_exists(&self) -> Option<IfExists> {
7627        support::child(&self.syntax)
7628    }
7629    #[inline]
7630    pub fn name_refs(&self) -> AstChildren<NameRef> {
7631        support::children(&self.syntax)
7632    }
7633    #[inline]
7634    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7635        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7636    }
7637    #[inline]
7638    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7639        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7640    }
7641    #[inline]
7642    pub fn drop_token(&self) -> Option<SyntaxToken> {
7643        support::token(&self.syntax, SyntaxKind::DROP_KW)
7644    }
7645    #[inline]
7646    pub fn publication_token(&self) -> Option<SyntaxToken> {
7647        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7648    }
7649    #[inline]
7650    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7651        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7652    }
7653}
7654
7655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7656pub struct DropRole {
7657    pub(crate) syntax: SyntaxNode,
7658}
7659impl DropRole {
7660    #[inline]
7661    pub fn if_exists(&self) -> Option<IfExists> {
7662        support::child(&self.syntax)
7663    }
7664    #[inline]
7665    pub fn name_refs(&self) -> AstChildren<NameRef> {
7666        support::children(&self.syntax)
7667    }
7668    #[inline]
7669    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7670        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7671    }
7672    #[inline]
7673    pub fn drop_token(&self) -> Option<SyntaxToken> {
7674        support::token(&self.syntax, SyntaxKind::DROP_KW)
7675    }
7676    #[inline]
7677    pub fn role_token(&self) -> Option<SyntaxToken> {
7678        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7679    }
7680}
7681
7682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7683pub struct DropRoutine {
7684    pub(crate) syntax: SyntaxNode,
7685}
7686impl DropRoutine {
7687    #[inline]
7688    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7689        support::child(&self.syntax)
7690    }
7691    #[inline]
7692    pub fn if_exists(&self) -> Option<IfExists> {
7693        support::child(&self.syntax)
7694    }
7695    #[inline]
7696    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7697        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7698    }
7699    #[inline]
7700    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7701        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7702    }
7703    #[inline]
7704    pub fn drop_token(&self) -> Option<SyntaxToken> {
7705        support::token(&self.syntax, SyntaxKind::DROP_KW)
7706    }
7707    #[inline]
7708    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7709        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7710    }
7711    #[inline]
7712    pub fn routine_token(&self) -> Option<SyntaxToken> {
7713        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7714    }
7715}
7716
7717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7718pub struct DropRule {
7719    pub(crate) syntax: SyntaxNode,
7720}
7721impl DropRule {
7722    #[inline]
7723    pub fn if_exists(&self) -> Option<IfExists> {
7724        support::child(&self.syntax)
7725    }
7726    #[inline]
7727    pub fn name_ref(&self) -> Option<NameRef> {
7728        support::child(&self.syntax)
7729    }
7730    #[inline]
7731    pub fn on_table(&self) -> Option<OnTable> {
7732        support::child(&self.syntax)
7733    }
7734    #[inline]
7735    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7736        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7737    }
7738    #[inline]
7739    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7740        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7741    }
7742    #[inline]
7743    pub fn drop_token(&self) -> Option<SyntaxToken> {
7744        support::token(&self.syntax, SyntaxKind::DROP_KW)
7745    }
7746    #[inline]
7747    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7748        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7749    }
7750    #[inline]
7751    pub fn rule_token(&self) -> Option<SyntaxToken> {
7752        support::token(&self.syntax, SyntaxKind::RULE_KW)
7753    }
7754}
7755
7756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7757pub struct DropSchema {
7758    pub(crate) syntax: SyntaxNode,
7759}
7760impl DropSchema {
7761    #[inline]
7762    pub fn if_exists(&self) -> Option<IfExists> {
7763        support::child(&self.syntax)
7764    }
7765    #[inline]
7766    pub fn name_refs(&self) -> AstChildren<NameRef> {
7767        support::children(&self.syntax)
7768    }
7769    #[inline]
7770    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7771        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7772    }
7773    #[inline]
7774    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7775        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7776    }
7777    #[inline]
7778    pub fn drop_token(&self) -> Option<SyntaxToken> {
7779        support::token(&self.syntax, SyntaxKind::DROP_KW)
7780    }
7781    #[inline]
7782    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7783        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7784    }
7785    #[inline]
7786    pub fn schema_token(&self) -> Option<SyntaxToken> {
7787        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7788    }
7789}
7790
7791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7792pub struct DropSequence {
7793    pub(crate) syntax: SyntaxNode,
7794}
7795impl DropSequence {
7796    #[inline]
7797    pub fn if_exists(&self) -> Option<IfExists> {
7798        support::child(&self.syntax)
7799    }
7800    #[inline]
7801    pub fn paths(&self) -> AstChildren<Path> {
7802        support::children(&self.syntax)
7803    }
7804    #[inline]
7805    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7806        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7807    }
7808    #[inline]
7809    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7810        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7811    }
7812    #[inline]
7813    pub fn drop_token(&self) -> Option<SyntaxToken> {
7814        support::token(&self.syntax, SyntaxKind::DROP_KW)
7815    }
7816    #[inline]
7817    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7818        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7819    }
7820    #[inline]
7821    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7822        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7823    }
7824}
7825
7826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7827pub struct DropServer {
7828    pub(crate) syntax: SyntaxNode,
7829}
7830impl DropServer {
7831    #[inline]
7832    pub fn if_exists(&self) -> Option<IfExists> {
7833        support::child(&self.syntax)
7834    }
7835    #[inline]
7836    pub fn name_ref(&self) -> Option<NameRef> {
7837        support::child(&self.syntax)
7838    }
7839    #[inline]
7840    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7841        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7842    }
7843    #[inline]
7844    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7845        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7846    }
7847    #[inline]
7848    pub fn drop_token(&self) -> Option<SyntaxToken> {
7849        support::token(&self.syntax, SyntaxKind::DROP_KW)
7850    }
7851    #[inline]
7852    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7853        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7854    }
7855    #[inline]
7856    pub fn server_token(&self) -> Option<SyntaxToken> {
7857        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7858    }
7859}
7860
7861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7862pub struct DropStatistics {
7863    pub(crate) syntax: SyntaxNode,
7864}
7865impl DropStatistics {
7866    #[inline]
7867    pub fn if_exists(&self) -> Option<IfExists> {
7868        support::child(&self.syntax)
7869    }
7870    #[inline]
7871    pub fn paths(&self) -> AstChildren<Path> {
7872        support::children(&self.syntax)
7873    }
7874    #[inline]
7875    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7876        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7877    }
7878    #[inline]
7879    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7880        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7881    }
7882    #[inline]
7883    pub fn drop_token(&self) -> Option<SyntaxToken> {
7884        support::token(&self.syntax, SyntaxKind::DROP_KW)
7885    }
7886    #[inline]
7887    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7888        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7889    }
7890    #[inline]
7891    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7892        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7893    }
7894}
7895
7896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7897pub struct DropSubscription {
7898    pub(crate) syntax: SyntaxNode,
7899}
7900impl DropSubscription {
7901    #[inline]
7902    pub fn if_exists(&self) -> Option<IfExists> {
7903        support::child(&self.syntax)
7904    }
7905    #[inline]
7906    pub fn name_ref(&self) -> Option<NameRef> {
7907        support::child(&self.syntax)
7908    }
7909    #[inline]
7910    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7911        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7912    }
7913    #[inline]
7914    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7915        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7916    }
7917    #[inline]
7918    pub fn drop_token(&self) -> Option<SyntaxToken> {
7919        support::token(&self.syntax, SyntaxKind::DROP_KW)
7920    }
7921    #[inline]
7922    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7923        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7924    }
7925    #[inline]
7926    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7927        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7928    }
7929}
7930
7931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7932pub struct DropTable {
7933    pub(crate) syntax: SyntaxNode,
7934}
7935impl DropTable {
7936    #[inline]
7937    pub fn if_exists(&self) -> Option<IfExists> {
7938        support::child(&self.syntax)
7939    }
7940    #[inline]
7941    pub fn path(&self) -> Option<Path> {
7942        support::child(&self.syntax)
7943    }
7944    #[inline]
7945    pub fn comma_token(&self) -> Option<SyntaxToken> {
7946        support::token(&self.syntax, SyntaxKind::COMMA)
7947    }
7948    #[inline]
7949    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7951    }
7952    #[inline]
7953    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7954        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7955    }
7956    #[inline]
7957    pub fn drop_token(&self) -> Option<SyntaxToken> {
7958        support::token(&self.syntax, SyntaxKind::DROP_KW)
7959    }
7960    #[inline]
7961    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7962        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7963    }
7964    #[inline]
7965    pub fn table_token(&self) -> Option<SyntaxToken> {
7966        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7967    }
7968}
7969
7970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7971pub struct DropTablespace {
7972    pub(crate) syntax: SyntaxNode,
7973}
7974impl DropTablespace {
7975    #[inline]
7976    pub fn if_exists(&self) -> Option<IfExists> {
7977        support::child(&self.syntax)
7978    }
7979    #[inline]
7980    pub fn name_ref(&self) -> Option<NameRef> {
7981        support::child(&self.syntax)
7982    }
7983    #[inline]
7984    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
7985        support::token(&self.syntax, SyntaxKind::SEMICOLON)
7986    }
7987    #[inline]
7988    pub fn drop_token(&self) -> Option<SyntaxToken> {
7989        support::token(&self.syntax, SyntaxKind::DROP_KW)
7990    }
7991    #[inline]
7992    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7993        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7994    }
7995}
7996
7997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7998pub struct DropTextSearchConfig {
7999    pub(crate) syntax: SyntaxNode,
8000}
8001impl DropTextSearchConfig {
8002    #[inline]
8003    pub fn if_exists(&self) -> Option<IfExists> {
8004        support::child(&self.syntax)
8005    }
8006    #[inline]
8007    pub fn path(&self) -> Option<Path> {
8008        support::child(&self.syntax)
8009    }
8010    #[inline]
8011    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8012        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8013    }
8014    #[inline]
8015    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8016        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8017    }
8018    #[inline]
8019    pub fn configuration_token(&self) -> Option<SyntaxToken> {
8020        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
8021    }
8022    #[inline]
8023    pub fn drop_token(&self) -> Option<SyntaxToken> {
8024        support::token(&self.syntax, SyntaxKind::DROP_KW)
8025    }
8026    #[inline]
8027    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8028        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8029    }
8030    #[inline]
8031    pub fn search_token(&self) -> Option<SyntaxToken> {
8032        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8033    }
8034    #[inline]
8035    pub fn text_token(&self) -> Option<SyntaxToken> {
8036        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8037    }
8038}
8039
8040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8041pub struct DropTextSearchDict {
8042    pub(crate) syntax: SyntaxNode,
8043}
8044impl DropTextSearchDict {
8045    #[inline]
8046    pub fn if_exists(&self) -> Option<IfExists> {
8047        support::child(&self.syntax)
8048    }
8049    #[inline]
8050    pub fn path(&self) -> Option<Path> {
8051        support::child(&self.syntax)
8052    }
8053    #[inline]
8054    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8055        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8056    }
8057    #[inline]
8058    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8059        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8060    }
8061    #[inline]
8062    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
8063        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
8064    }
8065    #[inline]
8066    pub fn drop_token(&self) -> Option<SyntaxToken> {
8067        support::token(&self.syntax, SyntaxKind::DROP_KW)
8068    }
8069    #[inline]
8070    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8071        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8072    }
8073    #[inline]
8074    pub fn search_token(&self) -> Option<SyntaxToken> {
8075        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8076    }
8077    #[inline]
8078    pub fn text_token(&self) -> Option<SyntaxToken> {
8079        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8080    }
8081}
8082
8083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8084pub struct DropTextSearchParser {
8085    pub(crate) syntax: SyntaxNode,
8086}
8087impl DropTextSearchParser {
8088    #[inline]
8089    pub fn if_exists(&self) -> Option<IfExists> {
8090        support::child(&self.syntax)
8091    }
8092    #[inline]
8093    pub fn path(&self) -> Option<Path> {
8094        support::child(&self.syntax)
8095    }
8096    #[inline]
8097    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8098        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8099    }
8100    #[inline]
8101    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8102        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8103    }
8104    #[inline]
8105    pub fn drop_token(&self) -> Option<SyntaxToken> {
8106        support::token(&self.syntax, SyntaxKind::DROP_KW)
8107    }
8108    #[inline]
8109    pub fn parser_token(&self) -> Option<SyntaxToken> {
8110        support::token(&self.syntax, SyntaxKind::PARSER_KW)
8111    }
8112    #[inline]
8113    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8114        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8115    }
8116    #[inline]
8117    pub fn search_token(&self) -> Option<SyntaxToken> {
8118        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8119    }
8120    #[inline]
8121    pub fn text_token(&self) -> Option<SyntaxToken> {
8122        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8123    }
8124}
8125
8126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8127pub struct DropTextSearchTemplate {
8128    pub(crate) syntax: SyntaxNode,
8129}
8130impl DropTextSearchTemplate {
8131    #[inline]
8132    pub fn if_exists(&self) -> Option<IfExists> {
8133        support::child(&self.syntax)
8134    }
8135    #[inline]
8136    pub fn path(&self) -> Option<Path> {
8137        support::child(&self.syntax)
8138    }
8139    #[inline]
8140    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8141        support::token(&self.syntax, SyntaxKind::SEMICOLON)
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 restrict_token(&self) -> Option<SyntaxToken> {
8153        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8154    }
8155    #[inline]
8156    pub fn search_token(&self) -> Option<SyntaxToken> {
8157        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
8158    }
8159    #[inline]
8160    pub fn template_token(&self) -> Option<SyntaxToken> {
8161        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
8162    }
8163    #[inline]
8164    pub fn text_token(&self) -> Option<SyntaxToken> {
8165        support::token(&self.syntax, SyntaxKind::TEXT_KW)
8166    }
8167}
8168
8169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8170pub struct DropTransform {
8171    pub(crate) syntax: SyntaxNode,
8172}
8173impl DropTransform {
8174    #[inline]
8175    pub fn if_exists(&self) -> Option<IfExists> {
8176        support::child(&self.syntax)
8177    }
8178    #[inline]
8179    pub fn language(&self) -> Option<NameRef> {
8180        support::child(&self.syntax)
8181    }
8182    #[inline]
8183    pub fn ty(&self) -> Option<Type> {
8184        support::child(&self.syntax)
8185    }
8186    #[inline]
8187    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8188        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8189    }
8190    #[inline]
8191    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8192        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8193    }
8194    #[inline]
8195    pub fn drop_token(&self) -> Option<SyntaxToken> {
8196        support::token(&self.syntax, SyntaxKind::DROP_KW)
8197    }
8198    #[inline]
8199    pub fn for_token(&self) -> Option<SyntaxToken> {
8200        support::token(&self.syntax, SyntaxKind::FOR_KW)
8201    }
8202    #[inline]
8203    pub fn language_token(&self) -> Option<SyntaxToken> {
8204        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
8205    }
8206    #[inline]
8207    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8208        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8209    }
8210    #[inline]
8211    pub fn transform_token(&self) -> Option<SyntaxToken> {
8212        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
8213    }
8214}
8215
8216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8217pub struct DropTrigger {
8218    pub(crate) syntax: SyntaxNode,
8219}
8220impl DropTrigger {
8221    #[inline]
8222    pub fn if_exists(&self) -> Option<IfExists> {
8223        support::child(&self.syntax)
8224    }
8225    #[inline]
8226    pub fn on_table(&self) -> Option<OnTable> {
8227        support::child(&self.syntax)
8228    }
8229    #[inline]
8230    pub fn path(&self) -> Option<Path> {
8231        support::child(&self.syntax)
8232    }
8233    #[inline]
8234    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8235        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8236    }
8237    #[inline]
8238    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8239        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8240    }
8241    #[inline]
8242    pub fn drop_token(&self) -> Option<SyntaxToken> {
8243        support::token(&self.syntax, SyntaxKind::DROP_KW)
8244    }
8245    #[inline]
8246    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8247        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8248    }
8249    #[inline]
8250    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8251        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8252    }
8253}
8254
8255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8256pub struct DropType {
8257    pub(crate) syntax: SyntaxNode,
8258}
8259impl DropType {
8260    #[inline]
8261    pub fn if_exists(&self) -> Option<IfExists> {
8262        support::child(&self.syntax)
8263    }
8264    #[inline]
8265    pub fn paths(&self) -> AstChildren<Path> {
8266        support::children(&self.syntax)
8267    }
8268    #[inline]
8269    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8270        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8271    }
8272    #[inline]
8273    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8274        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8275    }
8276    #[inline]
8277    pub fn drop_token(&self) -> Option<SyntaxToken> {
8278        support::token(&self.syntax, SyntaxKind::DROP_KW)
8279    }
8280    #[inline]
8281    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8283    }
8284    #[inline]
8285    pub fn type_token(&self) -> Option<SyntaxToken> {
8286        support::token(&self.syntax, SyntaxKind::TYPE_KW)
8287    }
8288}
8289
8290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8291pub struct DropUser {
8292    pub(crate) syntax: SyntaxNode,
8293}
8294impl DropUser {
8295    #[inline]
8296    pub fn if_exists(&self) -> Option<IfExists> {
8297        support::child(&self.syntax)
8298    }
8299    #[inline]
8300    pub fn name_refs(&self) -> AstChildren<NameRef> {
8301        support::children(&self.syntax)
8302    }
8303    #[inline]
8304    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8305        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8306    }
8307    #[inline]
8308    pub fn drop_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::DROP_KW)
8310    }
8311    #[inline]
8312    pub fn user_token(&self) -> Option<SyntaxToken> {
8313        support::token(&self.syntax, SyntaxKind::USER_KW)
8314    }
8315}
8316
8317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8318pub struct DropUserMapping {
8319    pub(crate) syntax: SyntaxNode,
8320}
8321impl DropUserMapping {
8322    #[inline]
8323    pub fn if_exists(&self) -> Option<IfExists> {
8324        support::child(&self.syntax)
8325    }
8326    #[inline]
8327    pub fn role_ref(&self) -> Option<RoleRef> {
8328        support::child(&self.syntax)
8329    }
8330    #[inline]
8331    pub fn server_name(&self) -> Option<ServerName> {
8332        support::child(&self.syntax)
8333    }
8334    #[inline]
8335    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8336        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8337    }
8338    #[inline]
8339    pub fn drop_token(&self) -> Option<SyntaxToken> {
8340        support::token(&self.syntax, SyntaxKind::DROP_KW)
8341    }
8342    #[inline]
8343    pub fn for_token(&self) -> Option<SyntaxToken> {
8344        support::token(&self.syntax, SyntaxKind::FOR_KW)
8345    }
8346    #[inline]
8347    pub fn mapping_token(&self) -> Option<SyntaxToken> {
8348        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
8349    }
8350    #[inline]
8351    pub fn user_token(&self) -> Option<SyntaxToken> {
8352        support::token(&self.syntax, SyntaxKind::USER_KW)
8353    }
8354}
8355
8356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8357pub struct DropVertexEdgeLabel {
8358    pub(crate) syntax: SyntaxNode,
8359}
8360impl DropVertexEdgeLabel {
8361    #[inline]
8362    pub fn name_ref(&self) -> Option<NameRef> {
8363        support::child(&self.syntax)
8364    }
8365    #[inline]
8366    pub fn alter_token(&self) -> Option<SyntaxToken> {
8367        support::token(&self.syntax, SyntaxKind::ALTER_KW)
8368    }
8369    #[inline]
8370    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8371        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8372    }
8373    #[inline]
8374    pub fn drop_token(&self) -> Option<SyntaxToken> {
8375        support::token(&self.syntax, SyntaxKind::DROP_KW)
8376    }
8377    #[inline]
8378    pub fn edge_token(&self) -> Option<SyntaxToken> {
8379        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8380    }
8381    #[inline]
8382    pub fn label_token(&self) -> Option<SyntaxToken> {
8383        support::token(&self.syntax, SyntaxKind::LABEL_KW)
8384    }
8385    #[inline]
8386    pub fn node_token(&self) -> Option<SyntaxToken> {
8387        support::token(&self.syntax, SyntaxKind::NODE_KW)
8388    }
8389    #[inline]
8390    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8391        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8392    }
8393    #[inline]
8394    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8395        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8396    }
8397    #[inline]
8398    pub fn table_token(&self) -> Option<SyntaxToken> {
8399        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8400    }
8401    #[inline]
8402    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8403        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8404    }
8405}
8406
8407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8408pub struct DropVertexEdgeLabelProperties {
8409    pub(crate) syntax: SyntaxNode,
8410}
8411impl DropVertexEdgeLabelProperties {
8412    #[inline]
8413    pub fn name_ref(&self) -> Option<NameRef> {
8414        support::child(&self.syntax)
8415    }
8416    #[inline]
8417    pub fn names(&self) -> AstChildren<Name> {
8418        support::children(&self.syntax)
8419    }
8420    #[inline]
8421    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8422        support::token(&self.syntax, SyntaxKind::L_PAREN)
8423    }
8424    #[inline]
8425    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8426        support::token(&self.syntax, SyntaxKind::R_PAREN)
8427    }
8428    #[inline]
8429    pub fn alter_token(&self) -> Option<SyntaxToken> {
8430        support::token(&self.syntax, SyntaxKind::ALTER_KW)
8431    }
8432    #[inline]
8433    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8434        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8435    }
8436    #[inline]
8437    pub fn drop_token(&self) -> Option<SyntaxToken> {
8438        support::token(&self.syntax, SyntaxKind::DROP_KW)
8439    }
8440    #[inline]
8441    pub fn edge_token(&self) -> Option<SyntaxToken> {
8442        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8443    }
8444    #[inline]
8445    pub fn label_token(&self) -> Option<SyntaxToken> {
8446        support::token(&self.syntax, SyntaxKind::LABEL_KW)
8447    }
8448    #[inline]
8449    pub fn node_token(&self) -> Option<SyntaxToken> {
8450        support::token(&self.syntax, SyntaxKind::NODE_KW)
8451    }
8452    #[inline]
8453    pub fn properties_token(&self) -> Option<SyntaxToken> {
8454        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
8455    }
8456    #[inline]
8457    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8458        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8459    }
8460    #[inline]
8461    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8462        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8463    }
8464    #[inline]
8465    pub fn table_token(&self) -> Option<SyntaxToken> {
8466        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8467    }
8468    #[inline]
8469    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8470        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8471    }
8472}
8473
8474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8475pub struct DropVertexTables {
8476    pub(crate) syntax: SyntaxNode,
8477}
8478impl DropVertexTables {
8479    #[inline]
8480    pub fn names(&self) -> AstChildren<Name> {
8481        support::children(&self.syntax)
8482    }
8483    #[inline]
8484    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8485        support::token(&self.syntax, SyntaxKind::L_PAREN)
8486    }
8487    #[inline]
8488    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8489        support::token(&self.syntax, SyntaxKind::R_PAREN)
8490    }
8491    #[inline]
8492    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8493        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8494    }
8495    #[inline]
8496    pub fn drop_token(&self) -> Option<SyntaxToken> {
8497        support::token(&self.syntax, SyntaxKind::DROP_KW)
8498    }
8499    #[inline]
8500    pub fn node_token(&self) -> Option<SyntaxToken> {
8501        support::token(&self.syntax, SyntaxKind::NODE_KW)
8502    }
8503    #[inline]
8504    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8505        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8506    }
8507    #[inline]
8508    pub fn tables_token(&self) -> Option<SyntaxToken> {
8509        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8510    }
8511    #[inline]
8512    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8513        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8514    }
8515}
8516
8517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8518pub struct DropView {
8519    pub(crate) syntax: SyntaxNode,
8520}
8521impl DropView {
8522    #[inline]
8523    pub fn if_exists(&self) -> Option<IfExists> {
8524        support::child(&self.syntax)
8525    }
8526    #[inline]
8527    pub fn path(&self) -> Option<Path> {
8528        support::child(&self.syntax)
8529    }
8530    #[inline]
8531    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8532        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8533    }
8534    #[inline]
8535    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8536        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8537    }
8538    #[inline]
8539    pub fn drop_token(&self) -> Option<SyntaxToken> {
8540        support::token(&self.syntax, SyntaxKind::DROP_KW)
8541    }
8542    #[inline]
8543    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8544        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8545    }
8546    #[inline]
8547    pub fn view_token(&self) -> Option<SyntaxToken> {
8548        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8549    }
8550}
8551
8552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8553pub struct EdgeAny {
8554    pub(crate) syntax: SyntaxNode,
8555}
8556impl EdgeAny {
8557    #[inline]
8558    pub fn is_label(&self) -> Option<IsLabel> {
8559        support::child(&self.syntax)
8560    }
8561    #[inline]
8562    pub fn name(&self) -> Option<Name> {
8563        support::child(&self.syntax)
8564    }
8565    #[inline]
8566    pub fn where_clause(&self) -> Option<WhereClause> {
8567        support::child(&self.syntax)
8568    }
8569    #[inline]
8570    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8571        support::token(&self.syntax, SyntaxKind::L_BRACK)
8572    }
8573    #[inline]
8574    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8575        support::token(&self.syntax, SyntaxKind::R_BRACK)
8576    }
8577    #[inline]
8578    pub fn minus_token(&self) -> Option<SyntaxToken> {
8579        support::token(&self.syntax, SyntaxKind::MINUS)
8580    }
8581}
8582
8583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8584pub struct EdgeLeft {
8585    pub(crate) syntax: SyntaxNode,
8586}
8587impl EdgeLeft {
8588    #[inline]
8589    pub fn is_label(&self) -> Option<IsLabel> {
8590        support::child(&self.syntax)
8591    }
8592    #[inline]
8593    pub fn name(&self) -> Option<Name> {
8594        support::child(&self.syntax)
8595    }
8596    #[inline]
8597    pub fn where_clause(&self) -> Option<WhereClause> {
8598        support::child(&self.syntax)
8599    }
8600    #[inline]
8601    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8602        support::token(&self.syntax, SyntaxKind::L_BRACK)
8603    }
8604    #[inline]
8605    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8606        support::token(&self.syntax, SyntaxKind::R_BRACK)
8607    }
8608    #[inline]
8609    pub fn minus_token(&self) -> Option<SyntaxToken> {
8610        support::token(&self.syntax, SyntaxKind::MINUS)
8611    }
8612    #[inline]
8613    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8614        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8615    }
8616}
8617
8618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8619pub struct EdgeRight {
8620    pub(crate) syntax: SyntaxNode,
8621}
8622impl EdgeRight {
8623    #[inline]
8624    pub fn is_label(&self) -> Option<IsLabel> {
8625        support::child(&self.syntax)
8626    }
8627    #[inline]
8628    pub fn name(&self) -> Option<Name> {
8629        support::child(&self.syntax)
8630    }
8631    #[inline]
8632    pub fn where_clause(&self) -> Option<WhereClause> {
8633        support::child(&self.syntax)
8634    }
8635    #[inline]
8636    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8637        support::token(&self.syntax, SyntaxKind::L_BRACK)
8638    }
8639    #[inline]
8640    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::R_BRACK)
8642    }
8643    #[inline]
8644    pub fn minus_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::MINUS)
8646    }
8647    #[inline]
8648    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8650    }
8651}
8652
8653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8654pub struct EdgeTableDef {
8655    pub(crate) syntax: SyntaxNode,
8656}
8657impl EdgeTableDef {
8658    #[inline]
8659    pub fn column_list(&self) -> Option<ColumnList> {
8660        support::child(&self.syntax)
8661    }
8662    #[inline]
8663    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8664        support::child(&self.syntax)
8665    }
8666    #[inline]
8667    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8668        support::child(&self.syntax)
8669    }
8670    #[inline]
8671    pub fn name(&self) -> Option<Name> {
8672        support::child(&self.syntax)
8673    }
8674    #[inline]
8675    pub fn path(&self) -> Option<Path> {
8676        support::child(&self.syntax)
8677    }
8678    #[inline]
8679    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8680        support::child(&self.syntax)
8681    }
8682    #[inline]
8683    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8684        support::token(&self.syntax, SyntaxKind::L_PAREN)
8685    }
8686    #[inline]
8687    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8688        support::token(&self.syntax, SyntaxKind::R_PAREN)
8689    }
8690    #[inline]
8691    pub fn as_token(&self) -> Option<SyntaxToken> {
8692        support::token(&self.syntax, SyntaxKind::AS_KW)
8693    }
8694    #[inline]
8695    pub fn key_token(&self) -> Option<SyntaxToken> {
8696        support::token(&self.syntax, SyntaxKind::KEY_KW)
8697    }
8698}
8699
8700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8701pub struct EdgeTables {
8702    pub(crate) syntax: SyntaxNode,
8703}
8704impl EdgeTables {
8705    #[inline]
8706    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8707        support::children(&self.syntax)
8708    }
8709    #[inline]
8710    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8711        support::token(&self.syntax, SyntaxKind::L_PAREN)
8712    }
8713    #[inline]
8714    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8715        support::token(&self.syntax, SyntaxKind::R_PAREN)
8716    }
8717    #[inline]
8718    pub fn edge_token(&self) -> Option<SyntaxToken> {
8719        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8720    }
8721    #[inline]
8722    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8723        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8724    }
8725    #[inline]
8726    pub fn tables_token(&self) -> Option<SyntaxToken> {
8727        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8728    }
8729}
8730
8731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8732pub struct ElseClause {
8733    pub(crate) syntax: SyntaxNode,
8734}
8735impl ElseClause {
8736    #[inline]
8737    pub fn expr(&self) -> Option<Expr> {
8738        support::child(&self.syntax)
8739    }
8740    #[inline]
8741    pub fn else_token(&self) -> Option<SyntaxToken> {
8742        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8743    }
8744}
8745
8746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8747pub struct EmptyStmt {
8748    pub(crate) syntax: SyntaxNode,
8749}
8750impl EmptyStmt {
8751    #[inline]
8752    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8753        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8754    }
8755}
8756
8757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8758pub struct EnableAlwaysRule {
8759    pub(crate) syntax: SyntaxNode,
8760}
8761impl EnableAlwaysRule {
8762    #[inline]
8763    pub fn always_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8765    }
8766    #[inline]
8767    pub fn enable_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8769    }
8770    #[inline]
8771    pub fn rule_token(&self) -> Option<SyntaxToken> {
8772        support::token(&self.syntax, SyntaxKind::RULE_KW)
8773    }
8774}
8775
8776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8777pub struct EnableAlwaysTrigger {
8778    pub(crate) syntax: SyntaxNode,
8779}
8780impl EnableAlwaysTrigger {
8781    #[inline]
8782    pub fn always_token(&self) -> Option<SyntaxToken> {
8783        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8784    }
8785    #[inline]
8786    pub fn enable_token(&self) -> Option<SyntaxToken> {
8787        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8788    }
8789    #[inline]
8790    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8792    }
8793}
8794
8795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8796pub struct EnableReplicaRule {
8797    pub(crate) syntax: SyntaxNode,
8798}
8799impl EnableReplicaRule {
8800    #[inline]
8801    pub fn enable_token(&self) -> Option<SyntaxToken> {
8802        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8803    }
8804    #[inline]
8805    pub fn replica_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8807    }
8808    #[inline]
8809    pub fn rule_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::RULE_KW)
8811    }
8812}
8813
8814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8815pub struct EnableReplicaTrigger {
8816    pub(crate) syntax: SyntaxNode,
8817}
8818impl EnableReplicaTrigger {
8819    #[inline]
8820    pub fn enable_token(&self) -> Option<SyntaxToken> {
8821        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8822    }
8823    #[inline]
8824    pub fn replica_token(&self) -> Option<SyntaxToken> {
8825        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8826    }
8827    #[inline]
8828    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8829        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8830    }
8831}
8832
8833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8834pub struct EnableRls {
8835    pub(crate) syntax: SyntaxNode,
8836}
8837impl EnableRls {
8838    #[inline]
8839    pub fn enable_token(&self) -> Option<SyntaxToken> {
8840        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8841    }
8842    #[inline]
8843    pub fn level_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8845    }
8846    #[inline]
8847    pub fn row_token(&self) -> Option<SyntaxToken> {
8848        support::token(&self.syntax, SyntaxKind::ROW_KW)
8849    }
8850    #[inline]
8851    pub fn security_token(&self) -> Option<SyntaxToken> {
8852        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8853    }
8854}
8855
8856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8857pub struct EnableRule {
8858    pub(crate) syntax: SyntaxNode,
8859}
8860impl EnableRule {
8861    #[inline]
8862    pub fn enable_token(&self) -> Option<SyntaxToken> {
8863        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8864    }
8865    #[inline]
8866    pub fn rule_token(&self) -> Option<SyntaxToken> {
8867        support::token(&self.syntax, SyntaxKind::RULE_KW)
8868    }
8869}
8870
8871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8872pub struct EnableTrigger {
8873    pub(crate) syntax: SyntaxNode,
8874}
8875impl EnableTrigger {
8876    #[inline]
8877    pub fn enable_token(&self) -> Option<SyntaxToken> {
8878        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8879    }
8880    #[inline]
8881    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8882        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8883    }
8884}
8885
8886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8887pub struct Enforced {
8888    pub(crate) syntax: SyntaxNode,
8889}
8890impl Enforced {
8891    #[inline]
8892    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8893        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8894    }
8895}
8896
8897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8898pub struct EventTriggerWhen {
8899    pub(crate) syntax: SyntaxNode,
8900}
8901impl EventTriggerWhen {
8902    #[inline]
8903    pub fn literals(&self) -> AstChildren<Literal> {
8904        support::children(&self.syntax)
8905    }
8906    #[inline]
8907    pub fn name_ref(&self) -> Option<NameRef> {
8908        support::child(&self.syntax)
8909    }
8910    #[inline]
8911    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8912        support::token(&self.syntax, SyntaxKind::L_PAREN)
8913    }
8914    #[inline]
8915    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8916        support::token(&self.syntax, SyntaxKind::R_PAREN)
8917    }
8918    #[inline]
8919    pub fn in_token(&self) -> Option<SyntaxToken> {
8920        support::token(&self.syntax, SyntaxKind::IN_KW)
8921    }
8922}
8923
8924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8925pub struct EventTriggerWhenClause {
8926    pub(crate) syntax: SyntaxNode,
8927}
8928impl EventTriggerWhenClause {
8929    #[inline]
8930    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8931        support::children(&self.syntax)
8932    }
8933    #[inline]
8934    pub fn when_token(&self) -> Option<SyntaxToken> {
8935        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8936    }
8937}
8938
8939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8940pub struct ExceptTableClause {
8941    pub(crate) syntax: SyntaxNode,
8942}
8943impl ExceptTableClause {
8944    #[inline]
8945    pub fn relation_names(&self) -> AstChildren<RelationName> {
8946        support::children(&self.syntax)
8947    }
8948    #[inline]
8949    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8950        support::token(&self.syntax, SyntaxKind::L_PAREN)
8951    }
8952    #[inline]
8953    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8954        support::token(&self.syntax, SyntaxKind::R_PAREN)
8955    }
8956    #[inline]
8957    pub fn except_token(&self) -> Option<SyntaxToken> {
8958        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8959    }
8960    #[inline]
8961    pub fn table_token(&self) -> Option<SyntaxToken> {
8962        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8963    }
8964}
8965
8966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8967pub struct ExceptTables {
8968    pub(crate) syntax: SyntaxNode,
8969}
8970impl ExceptTables {
8971    #[inline]
8972    pub fn name_refs(&self) -> AstChildren<NameRef> {
8973        support::children(&self.syntax)
8974    }
8975    #[inline]
8976    pub fn except_token(&self) -> Option<SyntaxToken> {
8977        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8978    }
8979}
8980
8981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8982pub struct ExcludeConstraint {
8983    pub(crate) syntax: SyntaxNode,
8984}
8985impl ExcludeConstraint {
8986    #[inline]
8987    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8988        support::child(&self.syntax)
8989    }
8990    #[inline]
8991    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8992        support::child(&self.syntax)
8993    }
8994    #[inline]
8995    pub fn constraint_name(&self) -> Option<ConstraintName> {
8996        support::child(&self.syntax)
8997    }
8998    #[inline]
8999    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
9000        support::child(&self.syntax)
9001    }
9002    #[inline]
9003    pub fn exclude_token(&self) -> Option<SyntaxToken> {
9004        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
9005    }
9006}
9007
9008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9009pub struct Execute {
9010    pub(crate) syntax: SyntaxNode,
9011}
9012impl Execute {
9013    #[inline]
9014    pub fn arg_list(&self) -> Option<ArgList> {
9015        support::child(&self.syntax)
9016    }
9017    #[inline]
9018    pub fn name_ref(&self) -> Option<NameRef> {
9019        support::child(&self.syntax)
9020    }
9021    #[inline]
9022    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9023        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9024    }
9025    #[inline]
9026    pub fn execute_token(&self) -> Option<SyntaxToken> {
9027        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
9028    }
9029}
9030
9031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9032pub struct ExistsFn {
9033    pub(crate) syntax: SyntaxNode,
9034}
9035impl ExistsFn {
9036    #[inline]
9037    pub fn select_variant(&self) -> Option<SelectVariant> {
9038        support::child(&self.syntax)
9039    }
9040    #[inline]
9041    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9042        support::token(&self.syntax, SyntaxKind::L_PAREN)
9043    }
9044    #[inline]
9045    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9046        support::token(&self.syntax, SyntaxKind::R_PAREN)
9047    }
9048    #[inline]
9049    pub fn exists_token(&self) -> Option<SyntaxToken> {
9050        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9051    }
9052}
9053
9054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9055pub struct Explain {
9056    pub(crate) syntax: SyntaxNode,
9057}
9058impl Explain {
9059    #[inline]
9060    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
9061        support::child(&self.syntax)
9062    }
9063    #[inline]
9064    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9065        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9066    }
9067    #[inline]
9068    pub fn analyse_token(&self) -> Option<SyntaxToken> {
9069        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
9070    }
9071    #[inline]
9072    pub fn analyze_token(&self) -> Option<SyntaxToken> {
9073        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
9074    }
9075    #[inline]
9076    pub fn explain_token(&self) -> Option<SyntaxToken> {
9077        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
9078    }
9079    #[inline]
9080    pub fn verbose_token(&self) -> Option<SyntaxToken> {
9081        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
9082    }
9083}
9084
9085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9086pub struct ExprAsName {
9087    pub(crate) syntax: SyntaxNode,
9088}
9089impl ExprAsName {
9090    #[inline]
9091    pub fn as_name(&self) -> Option<AsName> {
9092        support::child(&self.syntax)
9093    }
9094    #[inline]
9095    pub fn expr(&self) -> Option<Expr> {
9096        support::child(&self.syntax)
9097    }
9098}
9099
9100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9101pub struct ExprAsNameList {
9102    pub(crate) syntax: SyntaxNode,
9103}
9104impl ExprAsNameList {
9105    #[inline]
9106    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
9107        support::children(&self.syntax)
9108    }
9109}
9110
9111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9112pub struct ExprType {
9113    pub(crate) syntax: SyntaxNode,
9114}
9115impl ExprType {
9116    #[inline]
9117    pub fn expr(&self) -> Option<Expr> {
9118        support::child(&self.syntax)
9119    }
9120}
9121
9122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9123pub struct ExtractFn {
9124    pub(crate) syntax: SyntaxNode,
9125}
9126impl ExtractFn {
9127    #[inline]
9128    pub fn expr(&self) -> Option<Expr> {
9129        support::child(&self.syntax)
9130    }
9131    #[inline]
9132    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9133        support::token(&self.syntax, SyntaxKind::L_PAREN)
9134    }
9135    #[inline]
9136    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9137        support::token(&self.syntax, SyntaxKind::R_PAREN)
9138    }
9139    #[inline]
9140    pub fn day_token(&self) -> Option<SyntaxToken> {
9141        support::token(&self.syntax, SyntaxKind::DAY_KW)
9142    }
9143    #[inline]
9144    pub fn extract_token(&self) -> Option<SyntaxToken> {
9145        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
9146    }
9147    #[inline]
9148    pub fn from_token(&self) -> Option<SyntaxToken> {
9149        support::token(&self.syntax, SyntaxKind::FROM_KW)
9150    }
9151    #[inline]
9152    pub fn hour_token(&self) -> Option<SyntaxToken> {
9153        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9154    }
9155    #[inline]
9156    pub fn ident_token(&self) -> Option<SyntaxToken> {
9157        support::token(&self.syntax, SyntaxKind::IDENT)
9158    }
9159    #[inline]
9160    pub fn minute_token(&self) -> Option<SyntaxToken> {
9161        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9162    }
9163    #[inline]
9164    pub fn month_token(&self) -> Option<SyntaxToken> {
9165        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9166    }
9167    #[inline]
9168    pub fn second_token(&self) -> Option<SyntaxToken> {
9169        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9170    }
9171    #[inline]
9172    pub fn string_token(&self) -> Option<SyntaxToken> {
9173        support::token(&self.syntax, SyntaxKind::STRING_KW)
9174    }
9175    #[inline]
9176    pub fn year_token(&self) -> Option<SyntaxToken> {
9177        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9178    }
9179}
9180
9181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9182pub struct FatArrow {
9183    pub(crate) syntax: SyntaxNode,
9184}
9185impl FatArrow {
9186    #[inline]
9187    pub fn eq_token(&self) -> Option<SyntaxToken> {
9188        support::token(&self.syntax, SyntaxKind::EQ)
9189    }
9190    #[inline]
9191    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9192        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9193    }
9194}
9195
9196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9197pub struct FdwOption {
9198    pub(crate) syntax: SyntaxNode,
9199}
9200impl FdwOption {
9201    #[inline]
9202    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9203        support::child(&self.syntax)
9204    }
9205    #[inline]
9206    pub fn path(&self) -> Option<Path> {
9207        support::child(&self.syntax)
9208    }
9209    #[inline]
9210    pub fn connection_token(&self) -> Option<SyntaxToken> {
9211        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
9212    }
9213    #[inline]
9214    pub fn handler_token(&self) -> Option<SyntaxToken> {
9215        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9216    }
9217    #[inline]
9218    pub fn no_token(&self) -> Option<SyntaxToken> {
9219        support::token(&self.syntax, SyntaxKind::NO_KW)
9220    }
9221    #[inline]
9222    pub fn options_token(&self) -> Option<SyntaxToken> {
9223        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
9224    }
9225    #[inline]
9226    pub fn validator_token(&self) -> Option<SyntaxToken> {
9227        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
9228    }
9229}
9230
9231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9232pub struct FdwOptionList {
9233    pub(crate) syntax: SyntaxNode,
9234}
9235impl FdwOptionList {
9236    #[inline]
9237    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
9238        support::children(&self.syntax)
9239    }
9240}
9241
9242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9243pub struct Fetch {
9244    pub(crate) syntax: SyntaxNode,
9245}
9246impl Fetch {
9247    #[inline]
9248    pub fn name_ref(&self) -> Option<NameRef> {
9249        support::child(&self.syntax)
9250    }
9251    #[inline]
9252    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9253        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9254    }
9255    #[inline]
9256    pub fn fetch_token(&self) -> Option<SyntaxToken> {
9257        support::token(&self.syntax, SyntaxKind::FETCH_KW)
9258    }
9259    #[inline]
9260    pub fn from_token(&self) -> Option<SyntaxToken> {
9261        support::token(&self.syntax, SyntaxKind::FROM_KW)
9262    }
9263    #[inline]
9264    pub fn in_token(&self) -> Option<SyntaxToken> {
9265        support::token(&self.syntax, SyntaxKind::IN_KW)
9266    }
9267}
9268
9269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9270pub struct FetchClause {
9271    pub(crate) syntax: SyntaxNode,
9272}
9273impl FetchClause {
9274    #[inline]
9275    pub fn expr(&self) -> Option<Expr> {
9276        support::child(&self.syntax)
9277    }
9278    #[inline]
9279    pub fn fetch_token(&self) -> Option<SyntaxToken> {
9280        support::token(&self.syntax, SyntaxKind::FETCH_KW)
9281    }
9282    #[inline]
9283    pub fn first_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::FIRST_KW)
9285    }
9286    #[inline]
9287    pub fn next_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::NEXT_KW)
9289    }
9290    #[inline]
9291    pub fn only_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9293    }
9294    #[inline]
9295    pub fn row_token(&self) -> Option<SyntaxToken> {
9296        support::token(&self.syntax, SyntaxKind::ROW_KW)
9297    }
9298    #[inline]
9299    pub fn rows_token(&self) -> Option<SyntaxToken> {
9300        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9301    }
9302    #[inline]
9303    pub fn ties_token(&self) -> Option<SyntaxToken> {
9304        support::token(&self.syntax, SyntaxKind::TIES_KW)
9305    }
9306    #[inline]
9307    pub fn with_token(&self) -> Option<SyntaxToken> {
9308        support::token(&self.syntax, SyntaxKind::WITH_KW)
9309    }
9310}
9311
9312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9313pub struct FieldExpr {
9314    pub(crate) syntax: SyntaxNode,
9315}
9316impl FieldExpr {
9317    #[inline]
9318    pub fn star_token(&self) -> Option<SyntaxToken> {
9319        support::token(&self.syntax, SyntaxKind::STAR)
9320    }
9321    #[inline]
9322    pub fn dot_token(&self) -> Option<SyntaxToken> {
9323        support::token(&self.syntax, SyntaxKind::DOT)
9324    }
9325}
9326
9327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9328pub struct FilterClause {
9329    pub(crate) syntax: SyntaxNode,
9330}
9331impl FilterClause {
9332    #[inline]
9333    pub fn expr(&self) -> Option<Expr> {
9334        support::child(&self.syntax)
9335    }
9336    #[inline]
9337    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9338        support::token(&self.syntax, SyntaxKind::L_PAREN)
9339    }
9340    #[inline]
9341    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9342        support::token(&self.syntax, SyntaxKind::R_PAREN)
9343    }
9344    #[inline]
9345    pub fn filter_token(&self) -> Option<SyntaxToken> {
9346        support::token(&self.syntax, SyntaxKind::FILTER_KW)
9347    }
9348    #[inline]
9349    pub fn where_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::WHERE_KW)
9351    }
9352}
9353
9354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9355pub struct ForPortionOf {
9356    pub(crate) syntax: SyntaxNode,
9357}
9358impl ForPortionOf {
9359    #[inline]
9360    pub fn expr(&self) -> Option<Expr> {
9361        support::child(&self.syntax)
9362    }
9363    #[inline]
9364    pub fn name_ref(&self) -> Option<NameRef> {
9365        support::child(&self.syntax)
9366    }
9367    #[inline]
9368    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9369        support::token(&self.syntax, SyntaxKind::L_PAREN)
9370    }
9371    #[inline]
9372    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::R_PAREN)
9374    }
9375    #[inline]
9376    pub fn for_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::FOR_KW)
9378    }
9379    #[inline]
9380    pub fn from_token(&self) -> Option<SyntaxToken> {
9381        support::token(&self.syntax, SyntaxKind::FROM_KW)
9382    }
9383    #[inline]
9384    pub fn of_token(&self) -> Option<SyntaxToken> {
9385        support::token(&self.syntax, SyntaxKind::OF_KW)
9386    }
9387    #[inline]
9388    pub fn portion_token(&self) -> Option<SyntaxToken> {
9389        support::token(&self.syntax, SyntaxKind::PORTION_KW)
9390    }
9391    #[inline]
9392    pub fn to_token(&self) -> Option<SyntaxToken> {
9393        support::token(&self.syntax, SyntaxKind::TO_KW)
9394    }
9395}
9396
9397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9398pub struct ForProvider {
9399    pub(crate) syntax: SyntaxNode,
9400}
9401impl ForProvider {
9402    #[inline]
9403    pub fn literal(&self) -> Option<Literal> {
9404        support::child(&self.syntax)
9405    }
9406    #[inline]
9407    pub fn name_ref(&self) -> Option<NameRef> {
9408        support::child(&self.syntax)
9409    }
9410    #[inline]
9411    pub fn for_token(&self) -> Option<SyntaxToken> {
9412        support::token(&self.syntax, SyntaxKind::FOR_KW)
9413    }
9414}
9415
9416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9417pub struct ForceRls {
9418    pub(crate) syntax: SyntaxNode,
9419}
9420impl ForceRls {
9421    #[inline]
9422    pub fn force_token(&self) -> Option<SyntaxToken> {
9423        support::token(&self.syntax, SyntaxKind::FORCE_KW)
9424    }
9425    #[inline]
9426    pub fn level_token(&self) -> Option<SyntaxToken> {
9427        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
9428    }
9429    #[inline]
9430    pub fn row_token(&self) -> Option<SyntaxToken> {
9431        support::token(&self.syntax, SyntaxKind::ROW_KW)
9432    }
9433    #[inline]
9434    pub fn security_token(&self) -> Option<SyntaxToken> {
9435        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
9436    }
9437}
9438
9439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9440pub struct ForeignKeyConstraint {
9441    pub(crate) syntax: SyntaxNode,
9442}
9443impl ForeignKeyConstraint {
9444    #[inline]
9445    pub fn constraint_name(&self) -> Option<ConstraintName> {
9446        support::child(&self.syntax)
9447    }
9448    #[inline]
9449    pub fn match_type(&self) -> Option<MatchType> {
9450        support::child(&self.syntax)
9451    }
9452    #[inline]
9453    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
9454        support::child(&self.syntax)
9455    }
9456    #[inline]
9457    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
9458        support::child(&self.syntax)
9459    }
9460    #[inline]
9461    pub fn path(&self) -> Option<Path> {
9462        support::child(&self.syntax)
9463    }
9464    #[inline]
9465    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9466        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9467    }
9468    #[inline]
9469    pub fn key_token(&self) -> Option<SyntaxToken> {
9470        support::token(&self.syntax, SyntaxKind::KEY_KW)
9471    }
9472    #[inline]
9473    pub fn references_token(&self) -> Option<SyntaxToken> {
9474        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
9475    }
9476}
9477
9478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9479pub struct FrameClause {
9480    pub(crate) syntax: SyntaxNode,
9481}
9482impl FrameClause {
9483    #[inline]
9484    pub fn groups_token(&self) -> Option<SyntaxToken> {
9485        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
9486    }
9487    #[inline]
9488    pub fn range_token(&self) -> Option<SyntaxToken> {
9489        support::token(&self.syntax, SyntaxKind::RANGE_KW)
9490    }
9491    #[inline]
9492    pub fn rows_token(&self) -> Option<SyntaxToken> {
9493        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9494    }
9495}
9496
9497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9498pub struct FromClause {
9499    pub(crate) syntax: SyntaxNode,
9500}
9501impl FromClause {
9502    #[inline]
9503    pub fn from_items(&self) -> AstChildren<FromItem> {
9504        support::children(&self.syntax)
9505    }
9506    #[inline]
9507    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
9508        support::children(&self.syntax)
9509    }
9510    #[inline]
9511    pub fn from_token(&self) -> Option<SyntaxToken> {
9512        support::token(&self.syntax, SyntaxKind::FROM_KW)
9513    }
9514}
9515
9516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9517pub struct FromItem {
9518    pub(crate) syntax: SyntaxNode,
9519}
9520impl FromItem {
9521    #[inline]
9522    pub fn alias(&self) -> Option<Alias> {
9523        support::child(&self.syntax)
9524    }
9525    #[inline]
9526    pub fn call_expr(&self) -> Option<CallExpr> {
9527        support::child(&self.syntax)
9528    }
9529    #[inline]
9530    pub fn cast_expr(&self) -> Option<CastExpr> {
9531        support::child(&self.syntax)
9532    }
9533    #[inline]
9534    pub fn field_expr(&self) -> Option<FieldExpr> {
9535        support::child(&self.syntax)
9536    }
9537    #[inline]
9538    pub fn json_table(&self) -> Option<JsonTable> {
9539        support::child(&self.syntax)
9540    }
9541    #[inline]
9542    pub fn name_ref(&self) -> Option<NameRef> {
9543        support::child(&self.syntax)
9544    }
9545    #[inline]
9546    pub fn paren_expr(&self) -> Option<ParenExpr> {
9547        support::child(&self.syntax)
9548    }
9549    #[inline]
9550    pub fn paren_select(&self) -> Option<ParenSelect> {
9551        support::child(&self.syntax)
9552    }
9553    #[inline]
9554    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
9555        support::child(&self.syntax)
9556    }
9557    #[inline]
9558    pub fn xml_table(&self) -> Option<XmlTable> {
9559        support::child(&self.syntax)
9560    }
9561    #[inline]
9562    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9563        support::token(&self.syntax, SyntaxKind::L_PAREN)
9564    }
9565    #[inline]
9566    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9567        support::token(&self.syntax, SyntaxKind::R_PAREN)
9568    }
9569    #[inline]
9570    pub fn star_token(&self) -> Option<SyntaxToken> {
9571        support::token(&self.syntax, SyntaxKind::STAR)
9572    }
9573    #[inline]
9574    pub fn from_token(&self) -> Option<SyntaxToken> {
9575        support::token(&self.syntax, SyntaxKind::FROM_KW)
9576    }
9577    #[inline]
9578    pub fn lateral_token(&self) -> Option<SyntaxToken> {
9579        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
9580    }
9581    #[inline]
9582    pub fn only_token(&self) -> Option<SyntaxToken> {
9583        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9584    }
9585    #[inline]
9586    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9587        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9588    }
9589    #[inline]
9590    pub fn rows_token(&self) -> Option<SyntaxToken> {
9591        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9592    }
9593    #[inline]
9594    pub fn with_token(&self) -> Option<SyntaxToken> {
9595        support::token(&self.syntax, SyntaxKind::WITH_KW)
9596    }
9597}
9598
9599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9600pub struct FromTable {
9601    pub(crate) syntax: SyntaxNode,
9602}
9603impl FromTable {
9604    #[inline]
9605    pub fn path(&self) -> Option<Path> {
9606        support::child(&self.syntax)
9607    }
9608    #[inline]
9609    pub fn from_token(&self) -> Option<SyntaxToken> {
9610        support::token(&self.syntax, SyntaxKind::FROM_KW)
9611    }
9612}
9613
9614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9615pub struct FuncOptionList {
9616    pub(crate) syntax: SyntaxNode,
9617}
9618impl FuncOptionList {
9619    #[inline]
9620    pub fn options(&self) -> AstChildren<FuncOption> {
9621        support::children(&self.syntax)
9622    }
9623}
9624
9625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9626pub struct FunctionSig {
9627    pub(crate) syntax: SyntaxNode,
9628}
9629impl FunctionSig {
9630    #[inline]
9631    pub fn param_list(&self) -> Option<ParamList> {
9632        support::child(&self.syntax)
9633    }
9634    #[inline]
9635    pub fn path(&self) -> Option<Path> {
9636        support::child(&self.syntax)
9637    }
9638}
9639
9640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9641pub struct FunctionSigList {
9642    pub(crate) syntax: SyntaxNode,
9643}
9644impl FunctionSigList {
9645    #[inline]
9646    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9647        support::children(&self.syntax)
9648    }
9649}
9650
9651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9652pub struct GeneratedConstraint {
9653    pub(crate) syntax: SyntaxNode,
9654}
9655impl GeneratedConstraint {
9656    #[inline]
9657    pub fn expr(&self) -> Option<Expr> {
9658        support::child(&self.syntax)
9659    }
9660    #[inline]
9661    pub fn name_ref(&self) -> Option<NameRef> {
9662        support::child(&self.syntax)
9663    }
9664    #[inline]
9665    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9666        support::child(&self.syntax)
9667    }
9668    #[inline]
9669    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9670        support::token(&self.syntax, SyntaxKind::L_PAREN)
9671    }
9672    #[inline]
9673    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9674        support::token(&self.syntax, SyntaxKind::R_PAREN)
9675    }
9676    #[inline]
9677    pub fn always_token(&self) -> Option<SyntaxToken> {
9678        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9679    }
9680    #[inline]
9681    pub fn as_token(&self) -> Option<SyntaxToken> {
9682        support::token(&self.syntax, SyntaxKind::AS_KW)
9683    }
9684    #[inline]
9685    pub fn by_token(&self) -> Option<SyntaxToken> {
9686        support::token(&self.syntax, SyntaxKind::BY_KW)
9687    }
9688    #[inline]
9689    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9690        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9691    }
9692    #[inline]
9693    pub fn default_token(&self) -> Option<SyntaxToken> {
9694        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9695    }
9696    #[inline]
9697    pub fn generated_token(&self) -> Option<SyntaxToken> {
9698        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9699    }
9700    #[inline]
9701    pub fn identity_token(&self) -> Option<SyntaxToken> {
9702        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9703    }
9704    #[inline]
9705    pub fn stored_token(&self) -> Option<SyntaxToken> {
9706        support::token(&self.syntax, SyntaxKind::STORED_KW)
9707    }
9708}
9709
9710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9711pub struct Grant {
9712    pub(crate) syntax: SyntaxNode,
9713}
9714impl Grant {
9715    #[inline]
9716    pub fn name_refs(&self) -> AstChildren<NameRef> {
9717        support::children(&self.syntax)
9718    }
9719    #[inline]
9720    pub fn paths(&self) -> AstChildren<Path> {
9721        support::children(&self.syntax)
9722    }
9723    #[inline]
9724    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9725        support::child(&self.syntax)
9726    }
9727    #[inline]
9728    pub fn role_ref(&self) -> Option<RoleRef> {
9729        support::child(&self.syntax)
9730    }
9731    #[inline]
9732    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9733        support::child(&self.syntax)
9734    }
9735    #[inline]
9736    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
9737        support::token(&self.syntax, SyntaxKind::SEMICOLON)
9738    }
9739    #[inline]
9740    pub fn all_token(&self) -> Option<SyntaxToken> {
9741        support::token(&self.syntax, SyntaxKind::ALL_KW)
9742    }
9743    #[inline]
9744    pub fn by_token(&self) -> Option<SyntaxToken> {
9745        support::token(&self.syntax, SyntaxKind::BY_KW)
9746    }
9747    #[inline]
9748    pub fn grant_token(&self) -> Option<SyntaxToken> {
9749        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9750    }
9751    #[inline]
9752    pub fn granted_token(&self) -> Option<SyntaxToken> {
9753        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9754    }
9755    #[inline]
9756    pub fn in_token(&self) -> Option<SyntaxToken> {
9757        support::token(&self.syntax, SyntaxKind::IN_KW)
9758    }
9759    #[inline]
9760    pub fn on_token(&self) -> Option<SyntaxToken> {
9761        support::token(&self.syntax, SyntaxKind::ON_KW)
9762    }
9763    #[inline]
9764    pub fn option_token(&self) -> Option<SyntaxToken> {
9765        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9766    }
9767    #[inline]
9768    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9769        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9770    }
9771    #[inline]
9772    pub fn schema_token(&self) -> Option<SyntaxToken> {
9773        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9774    }
9775    #[inline]
9776    pub fn table_token(&self) -> Option<SyntaxToken> {
9777        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9778    }
9779    #[inline]
9780    pub fn tables_token(&self) -> Option<SyntaxToken> {
9781        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9782    }
9783    #[inline]
9784    pub fn to_token(&self) -> Option<SyntaxToken> {
9785        support::token(&self.syntax, SyntaxKind::TO_KW)
9786    }
9787    #[inline]
9788    pub fn with_token(&self) -> Option<SyntaxToken> {
9789        support::token(&self.syntax, SyntaxKind::WITH_KW)
9790    }
9791}
9792
9793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9794pub struct GrantDefaultPrivileges {
9795    pub(crate) syntax: SyntaxNode,
9796}
9797impl GrantDefaultPrivileges {
9798    #[inline]
9799    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9800        support::child(&self.syntax)
9801    }
9802    #[inline]
9803    pub fn privileges(&self) -> Option<Privileges> {
9804        support::child(&self.syntax)
9805    }
9806    #[inline]
9807    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9808        support::child(&self.syntax)
9809    }
9810    #[inline]
9811    pub fn grant_token(&self) -> Option<SyntaxToken> {
9812        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9813    }
9814    #[inline]
9815    pub fn on_token(&self) -> Option<SyntaxToken> {
9816        support::token(&self.syntax, SyntaxKind::ON_KW)
9817    }
9818    #[inline]
9819    pub fn option_token(&self) -> Option<SyntaxToken> {
9820        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9821    }
9822    #[inline]
9823    pub fn to_token(&self) -> Option<SyntaxToken> {
9824        support::token(&self.syntax, SyntaxKind::TO_KW)
9825    }
9826    #[inline]
9827    pub fn with_token(&self) -> Option<SyntaxToken> {
9828        support::token(&self.syntax, SyntaxKind::WITH_KW)
9829    }
9830}
9831
9832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9833pub struct GraphPatternQualifier {
9834    pub(crate) syntax: SyntaxNode,
9835}
9836impl GraphPatternQualifier {
9837    #[inline]
9838    pub fn literal(&self) -> Option<Literal> {
9839        support::child(&self.syntax)
9840    }
9841    #[inline]
9842    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9843        support::token(&self.syntax, SyntaxKind::L_CURLY)
9844    }
9845    #[inline]
9846    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9847        support::token(&self.syntax, SyntaxKind::R_CURLY)
9848    }
9849    #[inline]
9850    pub fn comma_token(&self) -> Option<SyntaxToken> {
9851        support::token(&self.syntax, SyntaxKind::COMMA)
9852    }
9853}
9854
9855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9856pub struct GraphTableFn {
9857    pub(crate) syntax: SyntaxNode,
9858}
9859impl GraphTableFn {
9860    #[inline]
9861    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9862        support::child(&self.syntax)
9863    }
9864    #[inline]
9865    pub fn path(&self) -> Option<Path> {
9866        support::child(&self.syntax)
9867    }
9868    #[inline]
9869    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9870        support::child(&self.syntax)
9871    }
9872    #[inline]
9873    pub fn where_clause(&self) -> Option<WhereClause> {
9874        support::child(&self.syntax)
9875    }
9876    #[inline]
9877    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9878        support::token(&self.syntax, SyntaxKind::L_PAREN)
9879    }
9880    #[inline]
9881    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9882        support::token(&self.syntax, SyntaxKind::R_PAREN)
9883    }
9884    #[inline]
9885    pub fn columns_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9887    }
9888    #[inline]
9889    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9890        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9891    }
9892    #[inline]
9893    pub fn match_token(&self) -> Option<SyntaxToken> {
9894        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9895    }
9896}
9897
9898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9899pub struct GroupByClause {
9900    pub(crate) syntax: SyntaxNode,
9901}
9902impl GroupByClause {
9903    #[inline]
9904    pub fn group_by_list(&self) -> Option<GroupByList> {
9905        support::child(&self.syntax)
9906    }
9907    #[inline]
9908    pub fn all_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::ALL_KW)
9910    }
9911    #[inline]
9912    pub fn by_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::BY_KW)
9914    }
9915    #[inline]
9916    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9917        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9918    }
9919    #[inline]
9920    pub fn group_token(&self) -> Option<SyntaxToken> {
9921        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9922    }
9923}
9924
9925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9926pub struct GroupByList {
9927    pub(crate) syntax: SyntaxNode,
9928}
9929impl GroupByList {
9930    #[inline]
9931    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9932        support::children(&self.syntax)
9933    }
9934}
9935
9936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9937pub struct GroupingCube {
9938    pub(crate) syntax: SyntaxNode,
9939}
9940impl GroupingCube {
9941    #[inline]
9942    pub fn expr(&self) -> Option<Expr> {
9943        support::child(&self.syntax)
9944    }
9945    #[inline]
9946    pub fn cube_token(&self) -> Option<SyntaxToken> {
9947        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9948    }
9949}
9950
9951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9952pub struct GroupingExpr {
9953    pub(crate) syntax: SyntaxNode,
9954}
9955impl GroupingExpr {
9956    #[inline]
9957    pub fn expr(&self) -> Option<Expr> {
9958        support::child(&self.syntax)
9959    }
9960}
9961
9962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9963pub struct GroupingRollup {
9964    pub(crate) syntax: SyntaxNode,
9965}
9966impl GroupingRollup {
9967    #[inline]
9968    pub fn expr(&self) -> Option<Expr> {
9969        support::child(&self.syntax)
9970    }
9971    #[inline]
9972    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9973        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9974    }
9975}
9976
9977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9978pub struct GroupingSets {
9979    pub(crate) syntax: SyntaxNode,
9980}
9981impl GroupingSets {
9982    #[inline]
9983    pub fn expr(&self) -> Option<Expr> {
9984        support::child(&self.syntax)
9985    }
9986    #[inline]
9987    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9988        support::token(&self.syntax, SyntaxKind::L_PAREN)
9989    }
9990    #[inline]
9991    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9992        support::token(&self.syntax, SyntaxKind::R_PAREN)
9993    }
9994    #[inline]
9995    pub fn grouping_token(&self) -> Option<SyntaxToken> {
9996        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
9997    }
9998    #[inline]
9999    pub fn sets_token(&self) -> Option<SyntaxToken> {
10000        support::token(&self.syntax, SyntaxKind::SETS_KW)
10001    }
10002}
10003
10004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10005pub struct Gteq {
10006    pub(crate) syntax: SyntaxNode,
10007}
10008impl Gteq {
10009    #[inline]
10010    pub fn eq_token(&self) -> Option<SyntaxToken> {
10011        support::token(&self.syntax, SyntaxKind::EQ)
10012    }
10013    #[inline]
10014    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10015        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10016    }
10017}
10018
10019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10020pub struct HandlerClause {
10021    pub(crate) syntax: SyntaxNode,
10022}
10023impl HandlerClause {
10024    #[inline]
10025    pub fn path(&self) -> Option<Path> {
10026        support::child(&self.syntax)
10027    }
10028    #[inline]
10029    pub fn handler_token(&self) -> Option<SyntaxToken> {
10030        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
10031    }
10032}
10033
10034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10035pub struct HavingClause {
10036    pub(crate) syntax: SyntaxNode,
10037}
10038impl HavingClause {
10039    #[inline]
10040    pub fn expr(&self) -> Option<Expr> {
10041        support::child(&self.syntax)
10042    }
10043    #[inline]
10044    pub fn having_token(&self) -> Option<SyntaxToken> {
10045        support::token(&self.syntax, SyntaxKind::HAVING_KW)
10046    }
10047}
10048
10049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10050pub struct IfExists {
10051    pub(crate) syntax: SyntaxNode,
10052}
10053impl IfExists {
10054    #[inline]
10055    pub fn exists_token(&self) -> Option<SyntaxToken> {
10056        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10057    }
10058    #[inline]
10059    pub fn if_token(&self) -> Option<SyntaxToken> {
10060        support::token(&self.syntax, SyntaxKind::IF_KW)
10061    }
10062}
10063
10064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10065pub struct IfNotExists {
10066    pub(crate) syntax: SyntaxNode,
10067}
10068impl IfNotExists {
10069    #[inline]
10070    pub fn exists_token(&self) -> Option<SyntaxToken> {
10071        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
10072    }
10073    #[inline]
10074    pub fn if_token(&self) -> Option<SyntaxToken> {
10075        support::token(&self.syntax, SyntaxKind::IF_KW)
10076    }
10077    #[inline]
10078    pub fn not_token(&self) -> Option<SyntaxToken> {
10079        support::token(&self.syntax, SyntaxKind::NOT_KW)
10080    }
10081}
10082
10083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10084pub struct ImportForeignSchema {
10085    pub(crate) syntax: SyntaxNode,
10086}
10087impl ImportForeignSchema {
10088    #[inline]
10089    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
10090        support::child(&self.syntax)
10091    }
10092    #[inline]
10093    pub fn except_tables(&self) -> Option<ExceptTables> {
10094        support::child(&self.syntax)
10095    }
10096    #[inline]
10097    pub fn into_schema(&self) -> Option<IntoSchema> {
10098        support::child(&self.syntax)
10099    }
10100    #[inline]
10101    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
10102        support::child(&self.syntax)
10103    }
10104    #[inline]
10105    pub fn name_ref(&self) -> Option<NameRef> {
10106        support::child(&self.syntax)
10107    }
10108    #[inline]
10109    pub fn server_name(&self) -> Option<ServerName> {
10110        support::child(&self.syntax)
10111    }
10112    #[inline]
10113    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10114        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10115    }
10116    #[inline]
10117    pub fn foreign_token(&self) -> Option<SyntaxToken> {
10118        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
10119    }
10120    #[inline]
10121    pub fn from_token(&self) -> Option<SyntaxToken> {
10122        support::token(&self.syntax, SyntaxKind::FROM_KW)
10123    }
10124    #[inline]
10125    pub fn import_token(&self) -> Option<SyntaxToken> {
10126        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
10127    }
10128    #[inline]
10129    pub fn schema_token(&self) -> Option<SyntaxToken> {
10130        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
10131    }
10132}
10133
10134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10135pub struct IndexExpr {
10136    pub(crate) syntax: SyntaxNode,
10137}
10138impl IndexExpr {
10139    #[inline]
10140    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
10141        support::token(&self.syntax, SyntaxKind::L_BRACK)
10142    }
10143    #[inline]
10144    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
10145        support::token(&self.syntax, SyntaxKind::R_BRACK)
10146    }
10147}
10148
10149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10150pub struct Inherit {
10151    pub(crate) syntax: SyntaxNode,
10152}
10153impl Inherit {
10154    #[inline]
10155    pub fn path(&self) -> Option<Path> {
10156        support::child(&self.syntax)
10157    }
10158    #[inline]
10159    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10160        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10161    }
10162}
10163
10164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10165pub struct InheritTable {
10166    pub(crate) syntax: SyntaxNode,
10167}
10168impl InheritTable {
10169    #[inline]
10170    pub fn path(&self) -> Option<Path> {
10171        support::child(&self.syntax)
10172    }
10173    #[inline]
10174    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10175        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10176    }
10177}
10178
10179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10180pub struct Inherits {
10181    pub(crate) syntax: SyntaxNode,
10182}
10183impl Inherits {
10184    #[inline]
10185    pub fn paths(&self) -> AstChildren<Path> {
10186        support::children(&self.syntax)
10187    }
10188    #[inline]
10189    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10190        support::token(&self.syntax, SyntaxKind::L_PAREN)
10191    }
10192    #[inline]
10193    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10194        support::token(&self.syntax, SyntaxKind::R_PAREN)
10195    }
10196    #[inline]
10197    pub fn inherits_token(&self) -> Option<SyntaxToken> {
10198        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
10199    }
10200}
10201
10202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10203pub struct InitiallyDeferredConstraintOption {
10204    pub(crate) syntax: SyntaxNode,
10205}
10206impl InitiallyDeferredConstraintOption {
10207    #[inline]
10208    pub fn deferred_token(&self) -> Option<SyntaxToken> {
10209        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
10210    }
10211    #[inline]
10212    pub fn initially_token(&self) -> Option<SyntaxToken> {
10213        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
10214    }
10215}
10216
10217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10218pub struct InitiallyImmediateConstraintOption {
10219    pub(crate) syntax: SyntaxNode,
10220}
10221impl InitiallyImmediateConstraintOption {
10222    #[inline]
10223    pub fn immediate_token(&self) -> Option<SyntaxToken> {
10224        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
10225    }
10226    #[inline]
10227    pub fn initially_token(&self) -> Option<SyntaxToken> {
10228        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
10229    }
10230}
10231
10232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10233pub struct Insert {
10234    pub(crate) syntax: SyntaxNode,
10235}
10236impl Insert {
10237    #[inline]
10238    pub fn alias(&self) -> Option<Alias> {
10239        support::child(&self.syntax)
10240    }
10241    #[inline]
10242    pub fn column_list(&self) -> Option<ColumnList> {
10243        support::child(&self.syntax)
10244    }
10245    #[inline]
10246    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
10247        support::child(&self.syntax)
10248    }
10249    #[inline]
10250    pub fn path(&self) -> Option<Path> {
10251        support::child(&self.syntax)
10252    }
10253    #[inline]
10254    pub fn returning_clause(&self) -> Option<ReturningClause> {
10255        support::child(&self.syntax)
10256    }
10257    #[inline]
10258    pub fn select_variant(&self) -> Option<SelectVariant> {
10259        support::child(&self.syntax)
10260    }
10261    #[inline]
10262    pub fn with_clause(&self) -> Option<WithClause> {
10263        support::child(&self.syntax)
10264    }
10265    #[inline]
10266    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
10267        support::token(&self.syntax, SyntaxKind::SEMICOLON)
10268    }
10269    #[inline]
10270    pub fn default_token(&self) -> Option<SyntaxToken> {
10271        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10272    }
10273    #[inline]
10274    pub fn insert_token(&self) -> Option<SyntaxToken> {
10275        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10276    }
10277    #[inline]
10278    pub fn into_token(&self) -> Option<SyntaxToken> {
10279        support::token(&self.syntax, SyntaxKind::INTO_KW)
10280    }
10281    #[inline]
10282    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10283        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10284    }
10285    #[inline]
10286    pub fn system_token(&self) -> Option<SyntaxToken> {
10287        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10288    }
10289    #[inline]
10290    pub fn user_token(&self) -> Option<SyntaxToken> {
10291        support::token(&self.syntax, SyntaxKind::USER_KW)
10292    }
10293    #[inline]
10294    pub fn value_token(&self) -> Option<SyntaxToken> {
10295        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10296    }
10297    #[inline]
10298    pub fn values_token(&self) -> Option<SyntaxToken> {
10299        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10300    }
10301}
10302
10303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10304pub struct IntervalType {
10305    pub(crate) syntax: SyntaxNode,
10306}
10307impl IntervalType {
10308    #[inline]
10309    pub fn literal(&self) -> Option<Literal> {
10310        support::child(&self.syntax)
10311    }
10312    #[inline]
10313    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10314        support::token(&self.syntax, SyntaxKind::L_PAREN)
10315    }
10316    #[inline]
10317    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::R_PAREN)
10319    }
10320    #[inline]
10321    pub fn day_token(&self) -> Option<SyntaxToken> {
10322        support::token(&self.syntax, SyntaxKind::DAY_KW)
10323    }
10324    #[inline]
10325    pub fn hour_token(&self) -> Option<SyntaxToken> {
10326        support::token(&self.syntax, SyntaxKind::HOUR_KW)
10327    }
10328    #[inline]
10329    pub fn interval_token(&self) -> Option<SyntaxToken> {
10330        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
10331    }
10332    #[inline]
10333    pub fn minute_token(&self) -> Option<SyntaxToken> {
10334        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
10335    }
10336    #[inline]
10337    pub fn month_token(&self) -> Option<SyntaxToken> {
10338        support::token(&self.syntax, SyntaxKind::MONTH_KW)
10339    }
10340    #[inline]
10341    pub fn second_token(&self) -> Option<SyntaxToken> {
10342        support::token(&self.syntax, SyntaxKind::SECOND_KW)
10343    }
10344    #[inline]
10345    pub fn setof_token(&self) -> Option<SyntaxToken> {
10346        support::token(&self.syntax, SyntaxKind::SETOF_KW)
10347    }
10348    #[inline]
10349    pub fn to_token(&self) -> Option<SyntaxToken> {
10350        support::token(&self.syntax, SyntaxKind::TO_KW)
10351    }
10352    #[inline]
10353    pub fn year_token(&self) -> Option<SyntaxToken> {
10354        support::token(&self.syntax, SyntaxKind::YEAR_KW)
10355    }
10356}
10357
10358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10359pub struct IntoClause {
10360    pub(crate) syntax: SyntaxNode,
10361}
10362impl IntoClause {
10363    #[inline]
10364    pub fn path(&self) -> Option<Path> {
10365        support::child(&self.syntax)
10366    }
10367    #[inline]
10368    pub fn persistence(&self) -> Option<Persistence> {
10369        support::child(&self.syntax)
10370    }
10371    #[inline]
10372    pub fn into_token(&self) -> Option<SyntaxToken> {
10373        support::token(&self.syntax, SyntaxKind::INTO_KW)
10374    }
10375    #[inline]
10376    pub fn table_token(&self) -> Option<SyntaxToken> {
10377        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10378    }
10379}
10380
10381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10382pub struct IntoSchema {
10383    pub(crate) syntax: SyntaxNode,
10384}
10385impl IntoSchema {
10386    #[inline]
10387    pub fn name_ref(&self) -> Option<NameRef> {
10388        support::child(&self.syntax)
10389    }
10390    #[inline]
10391    pub fn into_token(&self) -> Option<SyntaxToken> {
10392        support::token(&self.syntax, SyntaxKind::INTO_KW)
10393    }
10394}
10395
10396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10397pub struct IsDistinctFrom {
10398    pub(crate) syntax: SyntaxNode,
10399}
10400impl IsDistinctFrom {
10401    #[inline]
10402    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10403        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10404    }
10405    #[inline]
10406    pub fn from_token(&self) -> Option<SyntaxToken> {
10407        support::token(&self.syntax, SyntaxKind::FROM_KW)
10408    }
10409    #[inline]
10410    pub fn is_token(&self) -> Option<SyntaxToken> {
10411        support::token(&self.syntax, SyntaxKind::IS_KW)
10412    }
10413}
10414
10415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10416pub struct IsJson {
10417    pub(crate) syntax: SyntaxNode,
10418}
10419impl IsJson {
10420    #[inline]
10421    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10422        support::child(&self.syntax)
10423    }
10424    #[inline]
10425    pub fn is_token(&self) -> Option<SyntaxToken> {
10426        support::token(&self.syntax, SyntaxKind::IS_KW)
10427    }
10428    #[inline]
10429    pub fn json_token(&self) -> Option<SyntaxToken> {
10430        support::token(&self.syntax, SyntaxKind::JSON_KW)
10431    }
10432}
10433
10434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10435pub struct IsJsonArray {
10436    pub(crate) syntax: SyntaxNode,
10437}
10438impl IsJsonArray {
10439    #[inline]
10440    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10441        support::child(&self.syntax)
10442    }
10443    #[inline]
10444    pub fn array_token(&self) -> Option<SyntaxToken> {
10445        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10446    }
10447    #[inline]
10448    pub fn is_token(&self) -> Option<SyntaxToken> {
10449        support::token(&self.syntax, SyntaxKind::IS_KW)
10450    }
10451    #[inline]
10452    pub fn json_token(&self) -> Option<SyntaxToken> {
10453        support::token(&self.syntax, SyntaxKind::JSON_KW)
10454    }
10455}
10456
10457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10458pub struct IsJsonObject {
10459    pub(crate) syntax: SyntaxNode,
10460}
10461impl IsJsonObject {
10462    #[inline]
10463    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10464        support::child(&self.syntax)
10465    }
10466    #[inline]
10467    pub fn is_token(&self) -> Option<SyntaxToken> {
10468        support::token(&self.syntax, SyntaxKind::IS_KW)
10469    }
10470    #[inline]
10471    pub fn json_token(&self) -> Option<SyntaxToken> {
10472        support::token(&self.syntax, SyntaxKind::JSON_KW)
10473    }
10474    #[inline]
10475    pub fn object_token(&self) -> Option<SyntaxToken> {
10476        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10477    }
10478}
10479
10480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10481pub struct IsJsonScalar {
10482    pub(crate) syntax: SyntaxNode,
10483}
10484impl IsJsonScalar {
10485    #[inline]
10486    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10487        support::child(&self.syntax)
10488    }
10489    #[inline]
10490    pub fn is_token(&self) -> Option<SyntaxToken> {
10491        support::token(&self.syntax, SyntaxKind::IS_KW)
10492    }
10493    #[inline]
10494    pub fn json_token(&self) -> Option<SyntaxToken> {
10495        support::token(&self.syntax, SyntaxKind::JSON_KW)
10496    }
10497    #[inline]
10498    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10499        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10500    }
10501}
10502
10503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10504pub struct IsJsonValue {
10505    pub(crate) syntax: SyntaxNode,
10506}
10507impl IsJsonValue {
10508    #[inline]
10509    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10510        support::child(&self.syntax)
10511    }
10512    #[inline]
10513    pub fn is_token(&self) -> Option<SyntaxToken> {
10514        support::token(&self.syntax, SyntaxKind::IS_KW)
10515    }
10516    #[inline]
10517    pub fn json_token(&self) -> Option<SyntaxToken> {
10518        support::token(&self.syntax, SyntaxKind::JSON_KW)
10519    }
10520    #[inline]
10521    pub fn value_token(&self) -> Option<SyntaxToken> {
10522        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10523    }
10524}
10525
10526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10527pub struct IsLabel {
10528    pub(crate) syntax: SyntaxNode,
10529}
10530impl IsLabel {
10531    #[inline]
10532    pub fn expr(&self) -> Option<Expr> {
10533        support::child(&self.syntax)
10534    }
10535    #[inline]
10536    pub fn is_token(&self) -> Option<SyntaxToken> {
10537        support::token(&self.syntax, SyntaxKind::IS_KW)
10538    }
10539}
10540
10541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10542pub struct IsNormalized {
10543    pub(crate) syntax: SyntaxNode,
10544}
10545impl IsNormalized {
10546    #[inline]
10547    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10548        support::child(&self.syntax)
10549    }
10550    #[inline]
10551    pub fn is_token(&self) -> Option<SyntaxToken> {
10552        support::token(&self.syntax, SyntaxKind::IS_KW)
10553    }
10554    #[inline]
10555    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10556        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10557    }
10558}
10559
10560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10561pub struct IsNot {
10562    pub(crate) syntax: SyntaxNode,
10563}
10564impl IsNot {
10565    #[inline]
10566    pub fn is_token(&self) -> Option<SyntaxToken> {
10567        support::token(&self.syntax, SyntaxKind::IS_KW)
10568    }
10569    #[inline]
10570    pub fn not_token(&self) -> Option<SyntaxToken> {
10571        support::token(&self.syntax, SyntaxKind::NOT_KW)
10572    }
10573}
10574
10575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10576pub struct IsNotDistinctFrom {
10577    pub(crate) syntax: SyntaxNode,
10578}
10579impl IsNotDistinctFrom {
10580    #[inline]
10581    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10582        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10583    }
10584    #[inline]
10585    pub fn from_token(&self) -> Option<SyntaxToken> {
10586        support::token(&self.syntax, SyntaxKind::FROM_KW)
10587    }
10588    #[inline]
10589    pub fn is_token(&self) -> Option<SyntaxToken> {
10590        support::token(&self.syntax, SyntaxKind::IS_KW)
10591    }
10592    #[inline]
10593    pub fn not_token(&self) -> Option<SyntaxToken> {
10594        support::token(&self.syntax, SyntaxKind::NOT_KW)
10595    }
10596}
10597
10598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10599pub struct IsNotJson {
10600    pub(crate) syntax: SyntaxNode,
10601}
10602impl IsNotJson {
10603    #[inline]
10604    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10605        support::child(&self.syntax)
10606    }
10607    #[inline]
10608    pub fn is_token(&self) -> Option<SyntaxToken> {
10609        support::token(&self.syntax, SyntaxKind::IS_KW)
10610    }
10611    #[inline]
10612    pub fn json_token(&self) -> Option<SyntaxToken> {
10613        support::token(&self.syntax, SyntaxKind::JSON_KW)
10614    }
10615    #[inline]
10616    pub fn not_token(&self) -> Option<SyntaxToken> {
10617        support::token(&self.syntax, SyntaxKind::NOT_KW)
10618    }
10619}
10620
10621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10622pub struct IsNotJsonArray {
10623    pub(crate) syntax: SyntaxNode,
10624}
10625impl IsNotJsonArray {
10626    #[inline]
10627    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10628        support::child(&self.syntax)
10629    }
10630    #[inline]
10631    pub fn array_token(&self) -> Option<SyntaxToken> {
10632        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10633    }
10634    #[inline]
10635    pub fn is_token(&self) -> Option<SyntaxToken> {
10636        support::token(&self.syntax, SyntaxKind::IS_KW)
10637    }
10638    #[inline]
10639    pub fn json_token(&self) -> Option<SyntaxToken> {
10640        support::token(&self.syntax, SyntaxKind::JSON_KW)
10641    }
10642    #[inline]
10643    pub fn not_token(&self) -> Option<SyntaxToken> {
10644        support::token(&self.syntax, SyntaxKind::NOT_KW)
10645    }
10646}
10647
10648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10649pub struct IsNotJsonObject {
10650    pub(crate) syntax: SyntaxNode,
10651}
10652impl IsNotJsonObject {
10653    #[inline]
10654    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10655        support::child(&self.syntax)
10656    }
10657    #[inline]
10658    pub fn is_token(&self) -> Option<SyntaxToken> {
10659        support::token(&self.syntax, SyntaxKind::IS_KW)
10660    }
10661    #[inline]
10662    pub fn json_token(&self) -> Option<SyntaxToken> {
10663        support::token(&self.syntax, SyntaxKind::JSON_KW)
10664    }
10665    #[inline]
10666    pub fn not_token(&self) -> Option<SyntaxToken> {
10667        support::token(&self.syntax, SyntaxKind::NOT_KW)
10668    }
10669    #[inline]
10670    pub fn object_token(&self) -> Option<SyntaxToken> {
10671        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10672    }
10673}
10674
10675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10676pub struct IsNotJsonScalar {
10677    pub(crate) syntax: SyntaxNode,
10678}
10679impl IsNotJsonScalar {
10680    #[inline]
10681    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10682        support::child(&self.syntax)
10683    }
10684    #[inline]
10685    pub fn is_token(&self) -> Option<SyntaxToken> {
10686        support::token(&self.syntax, SyntaxKind::IS_KW)
10687    }
10688    #[inline]
10689    pub fn json_token(&self) -> Option<SyntaxToken> {
10690        support::token(&self.syntax, SyntaxKind::JSON_KW)
10691    }
10692    #[inline]
10693    pub fn not_token(&self) -> Option<SyntaxToken> {
10694        support::token(&self.syntax, SyntaxKind::NOT_KW)
10695    }
10696    #[inline]
10697    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10698        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10699    }
10700}
10701
10702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10703pub struct IsNotJsonValue {
10704    pub(crate) syntax: SyntaxNode,
10705}
10706impl IsNotJsonValue {
10707    #[inline]
10708    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10709        support::child(&self.syntax)
10710    }
10711    #[inline]
10712    pub fn is_token(&self) -> Option<SyntaxToken> {
10713        support::token(&self.syntax, SyntaxKind::IS_KW)
10714    }
10715    #[inline]
10716    pub fn json_token(&self) -> Option<SyntaxToken> {
10717        support::token(&self.syntax, SyntaxKind::JSON_KW)
10718    }
10719    #[inline]
10720    pub fn not_token(&self) -> Option<SyntaxToken> {
10721        support::token(&self.syntax, SyntaxKind::NOT_KW)
10722    }
10723    #[inline]
10724    pub fn value_token(&self) -> Option<SyntaxToken> {
10725        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10726    }
10727}
10728
10729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10730pub struct IsNotNormalized {
10731    pub(crate) syntax: SyntaxNode,
10732}
10733impl IsNotNormalized {
10734    #[inline]
10735    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10736        support::child(&self.syntax)
10737    }
10738    #[inline]
10739    pub fn is_token(&self) -> Option<SyntaxToken> {
10740        support::token(&self.syntax, SyntaxKind::IS_KW)
10741    }
10742    #[inline]
10743    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10744        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10745    }
10746    #[inline]
10747    pub fn not_token(&self) -> Option<SyntaxToken> {
10748        support::token(&self.syntax, SyntaxKind::NOT_KW)
10749    }
10750}
10751
10752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10753pub struct Join {
10754    pub(crate) syntax: SyntaxNode,
10755}
10756impl Join {
10757    #[inline]
10758    pub fn from_item(&self) -> Option<FromItem> {
10759        support::child(&self.syntax)
10760    }
10761    #[inline]
10762    pub fn join_type(&self) -> Option<JoinType> {
10763        support::child(&self.syntax)
10764    }
10765    #[inline]
10766    pub fn on_clause(&self) -> Option<OnClause> {
10767        support::child(&self.syntax)
10768    }
10769    #[inline]
10770    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10771        support::child(&self.syntax)
10772    }
10773    #[inline]
10774    pub fn natural_token(&self) -> Option<SyntaxToken> {
10775        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10776    }
10777}
10778
10779#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10780pub struct JoinCross {
10781    pub(crate) syntax: SyntaxNode,
10782}
10783impl JoinCross {
10784    #[inline]
10785    pub fn cross_token(&self) -> Option<SyntaxToken> {
10786        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10787    }
10788    #[inline]
10789    pub fn join_token(&self) -> Option<SyntaxToken> {
10790        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10791    }
10792}
10793
10794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10795pub struct JoinExpr {
10796    pub(crate) syntax: SyntaxNode,
10797}
10798impl JoinExpr {
10799    #[inline]
10800    pub fn from_item(&self) -> Option<FromItem> {
10801        support::child(&self.syntax)
10802    }
10803    #[inline]
10804    pub fn join(&self) -> Option<Join> {
10805        support::child(&self.syntax)
10806    }
10807    #[inline]
10808    pub fn join_expr(&self) -> Option<JoinExpr> {
10809        support::child(&self.syntax)
10810    }
10811}
10812
10813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10814pub struct JoinFull {
10815    pub(crate) syntax: SyntaxNode,
10816}
10817impl JoinFull {
10818    #[inline]
10819    pub fn full_token(&self) -> Option<SyntaxToken> {
10820        support::token(&self.syntax, SyntaxKind::FULL_KW)
10821    }
10822    #[inline]
10823    pub fn join_token(&self) -> Option<SyntaxToken> {
10824        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10825    }
10826    #[inline]
10827    pub fn outer_token(&self) -> Option<SyntaxToken> {
10828        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10829    }
10830}
10831
10832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10833pub struct JoinInner {
10834    pub(crate) syntax: SyntaxNode,
10835}
10836impl JoinInner {
10837    #[inline]
10838    pub fn inner_token(&self) -> Option<SyntaxToken> {
10839        support::token(&self.syntax, SyntaxKind::INNER_KW)
10840    }
10841    #[inline]
10842    pub fn join_token(&self) -> Option<SyntaxToken> {
10843        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10844    }
10845}
10846
10847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10848pub struct JoinLeft {
10849    pub(crate) syntax: SyntaxNode,
10850}
10851impl JoinLeft {
10852    #[inline]
10853    pub fn join_token(&self) -> Option<SyntaxToken> {
10854        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10855    }
10856    #[inline]
10857    pub fn left_token(&self) -> Option<SyntaxToken> {
10858        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10859    }
10860    #[inline]
10861    pub fn outer_token(&self) -> Option<SyntaxToken> {
10862        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10863    }
10864}
10865
10866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10867pub struct JoinRight {
10868    pub(crate) syntax: SyntaxNode,
10869}
10870impl JoinRight {
10871    #[inline]
10872    pub fn join_token(&self) -> Option<SyntaxToken> {
10873        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10874    }
10875    #[inline]
10876    pub fn outer_token(&self) -> Option<SyntaxToken> {
10877        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10878    }
10879    #[inline]
10880    pub fn right_token(&self) -> Option<SyntaxToken> {
10881        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10882    }
10883}
10884
10885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10886pub struct JoinUsingClause {
10887    pub(crate) syntax: SyntaxNode,
10888}
10889impl JoinUsingClause {
10890    #[inline]
10891    pub fn alias(&self) -> Option<Alias> {
10892        support::child(&self.syntax)
10893    }
10894    #[inline]
10895    pub fn column_list(&self) -> Option<ColumnList> {
10896        support::child(&self.syntax)
10897    }
10898    #[inline]
10899    pub fn using_token(&self) -> Option<SyntaxToken> {
10900        support::token(&self.syntax, SyntaxKind::USING_KW)
10901    }
10902}
10903
10904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10905pub struct JsonArrayAggFn {
10906    pub(crate) syntax: SyntaxNode,
10907}
10908impl JsonArrayAggFn {
10909    #[inline]
10910    pub fn expr(&self) -> Option<Expr> {
10911        support::child(&self.syntax)
10912    }
10913    #[inline]
10914    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10915        support::child(&self.syntax)
10916    }
10917    #[inline]
10918    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10919        support::child(&self.syntax)
10920    }
10921    #[inline]
10922    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10923        support::children(&self.syntax)
10924    }
10925    #[inline]
10926    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10927        support::token(&self.syntax, SyntaxKind::L_PAREN)
10928    }
10929    #[inline]
10930    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10931        support::token(&self.syntax, SyntaxKind::R_PAREN)
10932    }
10933    #[inline]
10934    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10935        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10936    }
10937}
10938
10939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10940pub struct JsonArrayFn {
10941    pub(crate) syntax: SyntaxNode,
10942}
10943impl JsonArrayFn {
10944    #[inline]
10945    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10946        support::children(&self.syntax)
10947    }
10948    #[inline]
10949    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10950        support::child(&self.syntax)
10951    }
10952    #[inline]
10953    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10954        support::child(&self.syntax)
10955    }
10956    #[inline]
10957    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10958        support::children(&self.syntax)
10959    }
10960    #[inline]
10961    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10962        support::token(&self.syntax, SyntaxKind::L_PAREN)
10963    }
10964    #[inline]
10965    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10966        support::token(&self.syntax, SyntaxKind::R_PAREN)
10967    }
10968    #[inline]
10969    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10970        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10971    }
10972}
10973
10974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10975pub struct JsonBehaviorClause {
10976    pub(crate) syntax: SyntaxNode,
10977}
10978impl JsonBehaviorClause {
10979    #[inline]
10980    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10981        support::child(&self.syntax)
10982    }
10983}
10984
10985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10986pub struct JsonBehaviorDefault {
10987    pub(crate) syntax: SyntaxNode,
10988}
10989impl JsonBehaviorDefault {
10990    #[inline]
10991    pub fn expr(&self) -> Option<Expr> {
10992        support::child(&self.syntax)
10993    }
10994    #[inline]
10995    pub fn default_token(&self) -> Option<SyntaxToken> {
10996        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10997    }
10998}
10999
11000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11001pub struct JsonBehaviorEmptyArray {
11002    pub(crate) syntax: SyntaxNode,
11003}
11004impl JsonBehaviorEmptyArray {
11005    #[inline]
11006    pub fn array_token(&self) -> Option<SyntaxToken> {
11007        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11008    }
11009    #[inline]
11010    pub fn empty_token(&self) -> Option<SyntaxToken> {
11011        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
11012    }
11013}
11014
11015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11016pub struct JsonBehaviorEmptyObject {
11017    pub(crate) syntax: SyntaxNode,
11018}
11019impl JsonBehaviorEmptyObject {
11020    #[inline]
11021    pub fn empty_token(&self) -> Option<SyntaxToken> {
11022        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
11023    }
11024    #[inline]
11025    pub fn object_token(&self) -> Option<SyntaxToken> {
11026        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
11027    }
11028}
11029
11030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11031pub struct JsonBehaviorError {
11032    pub(crate) syntax: SyntaxNode,
11033}
11034impl JsonBehaviorError {
11035    #[inline]
11036    pub fn error_token(&self) -> Option<SyntaxToken> {
11037        support::token(&self.syntax, SyntaxKind::ERROR_KW)
11038    }
11039}
11040
11041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11042pub struct JsonBehaviorFalse {
11043    pub(crate) syntax: SyntaxNode,
11044}
11045impl JsonBehaviorFalse {
11046    #[inline]
11047    pub fn false_token(&self) -> Option<SyntaxToken> {
11048        support::token(&self.syntax, SyntaxKind::FALSE_KW)
11049    }
11050}
11051
11052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11053pub struct JsonBehaviorNull {
11054    pub(crate) syntax: SyntaxNode,
11055}
11056impl JsonBehaviorNull {
11057    #[inline]
11058    pub fn null_token(&self) -> Option<SyntaxToken> {
11059        support::token(&self.syntax, SyntaxKind::NULL_KW)
11060    }
11061}
11062
11063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11064pub struct JsonBehaviorTrue {
11065    pub(crate) syntax: SyntaxNode,
11066}
11067impl JsonBehaviorTrue {
11068    #[inline]
11069    pub fn true_token(&self) -> Option<SyntaxToken> {
11070        support::token(&self.syntax, SyntaxKind::TRUE_KW)
11071    }
11072}
11073
11074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11075pub struct JsonBehaviorUnknown {
11076    pub(crate) syntax: SyntaxNode,
11077}
11078impl JsonBehaviorUnknown {
11079    #[inline]
11080    pub fn unknown_token(&self) -> Option<SyntaxToken> {
11081        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
11082    }
11083}
11084
11085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11086pub struct JsonEncodingClause {
11087    pub(crate) syntax: SyntaxNode,
11088}
11089impl JsonEncodingClause {
11090    #[inline]
11091    pub fn name_ref(&self) -> Option<NameRef> {
11092        support::child(&self.syntax)
11093    }
11094    #[inline]
11095    pub fn encoding_token(&self) -> Option<SyntaxToken> {
11096        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
11097    }
11098}
11099
11100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11101pub struct JsonExistsFn {
11102    pub(crate) syntax: SyntaxNode,
11103}
11104impl JsonExistsFn {
11105    #[inline]
11106    pub fn expr(&self) -> Option<Expr> {
11107        support::child(&self.syntax)
11108    }
11109    #[inline]
11110    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11111        support::child(&self.syntax)
11112    }
11113    #[inline]
11114    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11115        support::child(&self.syntax)
11116    }
11117    #[inline]
11118    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11119        support::child(&self.syntax)
11120    }
11121    #[inline]
11122    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11123        support::token(&self.syntax, SyntaxKind::L_PAREN)
11124    }
11125    #[inline]
11126    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11127        support::token(&self.syntax, SyntaxKind::R_PAREN)
11128    }
11129    #[inline]
11130    pub fn comma_token(&self) -> Option<SyntaxToken> {
11131        support::token(&self.syntax, SyntaxKind::COMMA)
11132    }
11133    #[inline]
11134    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
11135        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
11136    }
11137}
11138
11139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11140pub struct JsonExprFormat {
11141    pub(crate) syntax: SyntaxNode,
11142}
11143impl JsonExprFormat {
11144    #[inline]
11145    pub fn expr(&self) -> Option<Expr> {
11146        support::child(&self.syntax)
11147    }
11148    #[inline]
11149    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11150        support::child(&self.syntax)
11151    }
11152}
11153
11154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11155pub struct JsonFn {
11156    pub(crate) syntax: SyntaxNode,
11157}
11158impl JsonFn {
11159    #[inline]
11160    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
11161        support::child(&self.syntax)
11162    }
11163    #[inline]
11164    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
11165        support::child(&self.syntax)
11166    }
11167    #[inline]
11168    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11169        support::token(&self.syntax, SyntaxKind::L_PAREN)
11170    }
11171    #[inline]
11172    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11173        support::token(&self.syntax, SyntaxKind::R_PAREN)
11174    }
11175    #[inline]
11176    pub fn json_token(&self) -> Option<SyntaxToken> {
11177        support::token(&self.syntax, SyntaxKind::JSON_KW)
11178    }
11179}
11180
11181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11182pub struct JsonFormatClause {
11183    pub(crate) syntax: SyntaxNode,
11184}
11185impl JsonFormatClause {
11186    #[inline]
11187    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
11188        support::child(&self.syntax)
11189    }
11190    #[inline]
11191    pub fn format_token(&self) -> Option<SyntaxToken> {
11192        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
11193    }
11194    #[inline]
11195    pub fn json_token(&self) -> Option<SyntaxToken> {
11196        support::token(&self.syntax, SyntaxKind::JSON_KW)
11197    }
11198}
11199
11200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11201pub struct JsonKeyValue {
11202    pub(crate) syntax: SyntaxNode,
11203}
11204impl JsonKeyValue {
11205    #[inline]
11206    pub fn expr(&self) -> Option<Expr> {
11207        support::child(&self.syntax)
11208    }
11209    #[inline]
11210    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
11211        support::child(&self.syntax)
11212    }
11213    #[inline]
11214    pub fn colon_token(&self) -> Option<SyntaxToken> {
11215        support::token(&self.syntax, SyntaxKind::COLON)
11216    }
11217    #[inline]
11218    pub fn value_token(&self) -> Option<SyntaxToken> {
11219        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11220    }
11221}
11222
11223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11224pub struct JsonKeysUniqueClause {
11225    pub(crate) syntax: SyntaxNode,
11226}
11227impl JsonKeysUniqueClause {
11228    #[inline]
11229    pub fn keys_token(&self) -> Option<SyntaxToken> {
11230        support::token(&self.syntax, SyntaxKind::KEYS_KW)
11231    }
11232    #[inline]
11233    pub fn unique_token(&self) -> Option<SyntaxToken> {
11234        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
11235    }
11236    #[inline]
11237    pub fn with_token(&self) -> Option<SyntaxToken> {
11238        support::token(&self.syntax, SyntaxKind::WITH_KW)
11239    }
11240    #[inline]
11241    pub fn without_token(&self) -> Option<SyntaxToken> {
11242        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11243    }
11244}
11245
11246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11247pub struct JsonNullClause {
11248    pub(crate) syntax: SyntaxNode,
11249}
11250impl JsonNullClause {
11251    #[inline]
11252    pub fn absent_token(&self) -> Option<SyntaxToken> {
11253        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
11254    }
11255    #[inline]
11256    pub fn null_token(&self) -> Option<SyntaxToken> {
11257        support::token(&self.syntax, SyntaxKind::NULL_KW)
11258    }
11259    #[inline]
11260    pub fn on_token(&self) -> Option<SyntaxToken> {
11261        support::token(&self.syntax, SyntaxKind::ON_KW)
11262    }
11263}
11264
11265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11266pub struct JsonObjectAggFn {
11267    pub(crate) syntax: SyntaxNode,
11268}
11269impl JsonObjectAggFn {
11270    #[inline]
11271    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
11272        support::child(&self.syntax)
11273    }
11274    #[inline]
11275    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
11276        support::child(&self.syntax)
11277    }
11278    #[inline]
11279    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
11280        support::child(&self.syntax)
11281    }
11282    #[inline]
11283    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11284        support::child(&self.syntax)
11285    }
11286    #[inline]
11287    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11288        support::token(&self.syntax, SyntaxKind::L_PAREN)
11289    }
11290    #[inline]
11291    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11292        support::token(&self.syntax, SyntaxKind::R_PAREN)
11293    }
11294    #[inline]
11295    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
11296        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
11297    }
11298}
11299
11300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11301pub struct JsonObjectFn {
11302    pub(crate) syntax: SyntaxNode,
11303}
11304impl JsonObjectFn {
11305    #[inline]
11306    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
11307        support::children(&self.syntax)
11308    }
11309    #[inline]
11310    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
11311        support::child(&self.syntax)
11312    }
11313    #[inline]
11314    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
11315        support::child(&self.syntax)
11316    }
11317    #[inline]
11318    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11319        support::child(&self.syntax)
11320    }
11321    #[inline]
11322    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11323        support::token(&self.syntax, SyntaxKind::L_PAREN)
11324    }
11325    #[inline]
11326    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11327        support::token(&self.syntax, SyntaxKind::R_PAREN)
11328    }
11329    #[inline]
11330    pub fn json_object_token(&self) -> Option<SyntaxToken> {
11331        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
11332    }
11333}
11334
11335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11336pub struct JsonOnEmptyClause {
11337    pub(crate) syntax: SyntaxNode,
11338}
11339impl JsonOnEmptyClause {
11340    #[inline]
11341    pub fn json_behavior(&self) -> Option<JsonBehavior> {
11342        support::child(&self.syntax)
11343    }
11344    #[inline]
11345    pub fn empty_token(&self) -> Option<SyntaxToken> {
11346        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
11347    }
11348    #[inline]
11349    pub fn on_token(&self) -> Option<SyntaxToken> {
11350        support::token(&self.syntax, SyntaxKind::ON_KW)
11351    }
11352}
11353
11354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11355pub struct JsonOnErrorClause {
11356    pub(crate) syntax: SyntaxNode,
11357}
11358impl JsonOnErrorClause {
11359    #[inline]
11360    pub fn json_behavior(&self) -> Option<JsonBehavior> {
11361        support::child(&self.syntax)
11362    }
11363    #[inline]
11364    pub fn error_token(&self) -> Option<SyntaxToken> {
11365        support::token(&self.syntax, SyntaxKind::ERROR_KW)
11366    }
11367    #[inline]
11368    pub fn on_token(&self) -> Option<SyntaxToken> {
11369        support::token(&self.syntax, SyntaxKind::ON_KW)
11370    }
11371}
11372
11373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11374pub struct JsonPassingArg {
11375    pub(crate) syntax: SyntaxNode,
11376}
11377impl JsonPassingArg {
11378    #[inline]
11379    pub fn expr(&self) -> Option<Expr> {
11380        support::child(&self.syntax)
11381    }
11382    #[inline]
11383    pub fn name(&self) -> Option<Name> {
11384        support::child(&self.syntax)
11385    }
11386    #[inline]
11387    pub fn as_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::AS_KW)
11389    }
11390}
11391
11392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11393pub struct JsonPassingClause {
11394    pub(crate) syntax: SyntaxNode,
11395}
11396impl JsonPassingClause {
11397    #[inline]
11398    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
11399        support::children(&self.syntax)
11400    }
11401    #[inline]
11402    pub fn passing_token(&self) -> Option<SyntaxToken> {
11403        support::token(&self.syntax, SyntaxKind::PASSING_KW)
11404    }
11405}
11406
11407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11408pub struct JsonPathClause {
11409    pub(crate) syntax: SyntaxNode,
11410}
11411impl JsonPathClause {
11412    #[inline]
11413    pub fn expr(&self) -> Option<Expr> {
11414        support::child(&self.syntax)
11415    }
11416    #[inline]
11417    pub fn path_token(&self) -> Option<SyntaxToken> {
11418        support::token(&self.syntax, SyntaxKind::PATH_KW)
11419    }
11420}
11421
11422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11423pub struct JsonQueryFn {
11424    pub(crate) syntax: SyntaxNode,
11425}
11426impl JsonQueryFn {
11427    #[inline]
11428    pub fn expr(&self) -> Option<Expr> {
11429        support::child(&self.syntax)
11430    }
11431    #[inline]
11432    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11433        support::child(&self.syntax)
11434    }
11435    #[inline]
11436    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11437        support::child(&self.syntax)
11438    }
11439    #[inline]
11440    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11441        support::child(&self.syntax)
11442    }
11443    #[inline]
11444    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11445        support::child(&self.syntax)
11446    }
11447    #[inline]
11448    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11449        support::child(&self.syntax)
11450    }
11451    #[inline]
11452    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11453        support::child(&self.syntax)
11454    }
11455    #[inline]
11456    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11457        support::token(&self.syntax, SyntaxKind::L_PAREN)
11458    }
11459    #[inline]
11460    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11461        support::token(&self.syntax, SyntaxKind::R_PAREN)
11462    }
11463    #[inline]
11464    pub fn comma_token(&self) -> Option<SyntaxToken> {
11465        support::token(&self.syntax, SyntaxKind::COMMA)
11466    }
11467    #[inline]
11468    pub fn json_query_token(&self) -> Option<SyntaxToken> {
11469        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
11470    }
11471}
11472
11473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11474pub struct JsonQuotesClause {
11475    pub(crate) syntax: SyntaxNode,
11476}
11477impl JsonQuotesClause {
11478    #[inline]
11479    pub fn keep_token(&self) -> Option<SyntaxToken> {
11480        support::token(&self.syntax, SyntaxKind::KEEP_KW)
11481    }
11482    #[inline]
11483    pub fn omit_token(&self) -> Option<SyntaxToken> {
11484        support::token(&self.syntax, SyntaxKind::OMIT_KW)
11485    }
11486    #[inline]
11487    pub fn on_token(&self) -> Option<SyntaxToken> {
11488        support::token(&self.syntax, SyntaxKind::ON_KW)
11489    }
11490    #[inline]
11491    pub fn quotes_token(&self) -> Option<SyntaxToken> {
11492        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
11493    }
11494    #[inline]
11495    pub fn scalar_token(&self) -> Option<SyntaxToken> {
11496        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
11497    }
11498    #[inline]
11499    pub fn string_token(&self) -> Option<SyntaxToken> {
11500        support::token(&self.syntax, SyntaxKind::STRING_KW)
11501    }
11502}
11503
11504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11505pub struct JsonReturningClause {
11506    pub(crate) syntax: SyntaxNode,
11507}
11508impl JsonReturningClause {
11509    #[inline]
11510    pub fn ty(&self) -> Option<Type> {
11511        support::child(&self.syntax)
11512    }
11513    #[inline]
11514    pub fn returning_token(&self) -> Option<SyntaxToken> {
11515        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
11516    }
11517}
11518
11519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11520pub struct JsonScalarFn {
11521    pub(crate) syntax: SyntaxNode,
11522}
11523impl JsonScalarFn {
11524    #[inline]
11525    pub fn expr(&self) -> Option<Expr> {
11526        support::child(&self.syntax)
11527    }
11528    #[inline]
11529    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11530        support::token(&self.syntax, SyntaxKind::L_PAREN)
11531    }
11532    #[inline]
11533    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11534        support::token(&self.syntax, SyntaxKind::R_PAREN)
11535    }
11536    #[inline]
11537    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
11538        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
11539    }
11540}
11541
11542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11543pub struct JsonSelectFormat {
11544    pub(crate) syntax: SyntaxNode,
11545}
11546impl JsonSelectFormat {
11547    #[inline]
11548    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11549        support::child(&self.syntax)
11550    }
11551    #[inline]
11552    pub fn select_variant(&self) -> Option<SelectVariant> {
11553        support::child(&self.syntax)
11554    }
11555}
11556
11557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11558pub struct JsonSerializeFn {
11559    pub(crate) syntax: SyntaxNode,
11560}
11561impl JsonSerializeFn {
11562    #[inline]
11563    pub fn expr(&self) -> Option<Expr> {
11564        support::child(&self.syntax)
11565    }
11566    #[inline]
11567    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11568        support::child(&self.syntax)
11569    }
11570    #[inline]
11571    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11572        support::child(&self.syntax)
11573    }
11574    #[inline]
11575    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11576        support::token(&self.syntax, SyntaxKind::L_PAREN)
11577    }
11578    #[inline]
11579    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::R_PAREN)
11581    }
11582    #[inline]
11583    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
11584        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
11585    }
11586}
11587
11588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11589pub struct JsonTable {
11590    pub(crate) syntax: SyntaxNode,
11591}
11592impl JsonTable {
11593    #[inline]
11594    pub fn expr(&self) -> Option<Expr> {
11595        support::child(&self.syntax)
11596    }
11597    #[inline]
11598    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11599        support::child(&self.syntax)
11600    }
11601    #[inline]
11602    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11603        support::child(&self.syntax)
11604    }
11605    #[inline]
11606    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11607        support::child(&self.syntax)
11608    }
11609    #[inline]
11610    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11611        support::child(&self.syntax)
11612    }
11613    #[inline]
11614    pub fn name(&self) -> Option<Name> {
11615        support::child(&self.syntax)
11616    }
11617    #[inline]
11618    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11619        support::token(&self.syntax, SyntaxKind::L_PAREN)
11620    }
11621    #[inline]
11622    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11623        support::token(&self.syntax, SyntaxKind::R_PAREN)
11624    }
11625    #[inline]
11626    pub fn comma_token(&self) -> Option<SyntaxToken> {
11627        support::token(&self.syntax, SyntaxKind::COMMA)
11628    }
11629    #[inline]
11630    pub fn as_token(&self) -> Option<SyntaxToken> {
11631        support::token(&self.syntax, SyntaxKind::AS_KW)
11632    }
11633    #[inline]
11634    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11635        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11636    }
11637}
11638
11639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11640pub struct JsonTableColumn {
11641    pub(crate) syntax: SyntaxNode,
11642}
11643impl JsonTableColumn {
11644    #[inline]
11645    pub fn expr(&self) -> Option<Expr> {
11646        support::child(&self.syntax)
11647    }
11648    #[inline]
11649    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11650        support::child(&self.syntax)
11651    }
11652    #[inline]
11653    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11654        support::child(&self.syntax)
11655    }
11656    #[inline]
11657    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11658        support::child(&self.syntax)
11659    }
11660    #[inline]
11661    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11662        support::child(&self.syntax)
11663    }
11664    #[inline]
11665    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11666        support::child(&self.syntax)
11667    }
11668    #[inline]
11669    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11670        support::child(&self.syntax)
11671    }
11672    #[inline]
11673    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11674        support::child(&self.syntax)
11675    }
11676    #[inline]
11677    pub fn name(&self) -> Option<Name> {
11678        support::child(&self.syntax)
11679    }
11680    #[inline]
11681    pub fn ty(&self) -> Option<Type> {
11682        support::child(&self.syntax)
11683    }
11684    #[inline]
11685    pub fn as_token(&self) -> Option<SyntaxToken> {
11686        support::token(&self.syntax, SyntaxKind::AS_KW)
11687    }
11688    #[inline]
11689    pub fn exists_token(&self) -> Option<SyntaxToken> {
11690        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11691    }
11692    #[inline]
11693    pub fn for_token(&self) -> Option<SyntaxToken> {
11694        support::token(&self.syntax, SyntaxKind::FOR_KW)
11695    }
11696    #[inline]
11697    pub fn nested_token(&self) -> Option<SyntaxToken> {
11698        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11699    }
11700    #[inline]
11701    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11702        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11703    }
11704    #[inline]
11705    pub fn path_token(&self) -> Option<SyntaxToken> {
11706        support::token(&self.syntax, SyntaxKind::PATH_KW)
11707    }
11708}
11709
11710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11711pub struct JsonTableColumnList {
11712    pub(crate) syntax: SyntaxNode,
11713}
11714impl JsonTableColumnList {
11715    #[inline]
11716    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11717        support::children(&self.syntax)
11718    }
11719    #[inline]
11720    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11721        support::token(&self.syntax, SyntaxKind::L_PAREN)
11722    }
11723    #[inline]
11724    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11725        support::token(&self.syntax, SyntaxKind::R_PAREN)
11726    }
11727    #[inline]
11728    pub fn columns_token(&self) -> Option<SyntaxToken> {
11729        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11730    }
11731}
11732
11733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11734pub struct JsonValueExpr {
11735    pub(crate) syntax: SyntaxNode,
11736}
11737impl JsonValueExpr {
11738    #[inline]
11739    pub fn expr(&self) -> Option<Expr> {
11740        support::child(&self.syntax)
11741    }
11742    #[inline]
11743    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11744        support::child(&self.syntax)
11745    }
11746}
11747
11748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11749pub struct JsonValueFn {
11750    pub(crate) syntax: SyntaxNode,
11751}
11752impl JsonValueFn {
11753    #[inline]
11754    pub fn expr(&self) -> Option<Expr> {
11755        support::child(&self.syntax)
11756    }
11757    #[inline]
11758    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11759        support::child(&self.syntax)
11760    }
11761    #[inline]
11762    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11763        support::child(&self.syntax)
11764    }
11765    #[inline]
11766    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11767        support::child(&self.syntax)
11768    }
11769    #[inline]
11770    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11771        support::child(&self.syntax)
11772    }
11773    #[inline]
11774    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11775        support::token(&self.syntax, SyntaxKind::L_PAREN)
11776    }
11777    #[inline]
11778    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11779        support::token(&self.syntax, SyntaxKind::R_PAREN)
11780    }
11781    #[inline]
11782    pub fn comma_token(&self) -> Option<SyntaxToken> {
11783        support::token(&self.syntax, SyntaxKind::COMMA)
11784    }
11785    #[inline]
11786    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11787        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11788    }
11789}
11790
11791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11792pub struct JsonWrapperBehaviorClause {
11793    pub(crate) syntax: SyntaxNode,
11794}
11795impl JsonWrapperBehaviorClause {
11796    #[inline]
11797    pub fn array_token(&self) -> Option<SyntaxToken> {
11798        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11799    }
11800    #[inline]
11801    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11802        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11803    }
11804    #[inline]
11805    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11806        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11807    }
11808    #[inline]
11809    pub fn with_token(&self) -> Option<SyntaxToken> {
11810        support::token(&self.syntax, SyntaxKind::WITH_KW)
11811    }
11812    #[inline]
11813    pub fn without_token(&self) -> Option<SyntaxToken> {
11814        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11815    }
11816    #[inline]
11817    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11818        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11819    }
11820}
11821
11822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11823pub struct LabelAndProperties {
11824    pub(crate) syntax: SyntaxNode,
11825}
11826impl LabelAndProperties {
11827    #[inline]
11828    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11829        support::child(&self.syntax)
11830    }
11831    #[inline]
11832    pub fn name(&self) -> Option<Name> {
11833        support::child(&self.syntax)
11834    }
11835    #[inline]
11836    pub fn default_token(&self) -> Option<SyntaxToken> {
11837        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11838    }
11839    #[inline]
11840    pub fn label_token(&self) -> Option<SyntaxToken> {
11841        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11842    }
11843}
11844
11845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11846pub struct LabelAndPropertiesList {
11847    pub(crate) syntax: SyntaxNode,
11848}
11849impl LabelAndPropertiesList {
11850    #[inline]
11851    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11852        support::children(&self.syntax)
11853    }
11854}
11855
11856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11857pub struct LanguageFuncOption {
11858    pub(crate) syntax: SyntaxNode,
11859}
11860impl LanguageFuncOption {
11861    #[inline]
11862    pub fn name_ref(&self) -> Option<NameRef> {
11863        support::child(&self.syntax)
11864    }
11865    #[inline]
11866    pub fn language_token(&self) -> Option<SyntaxToken> {
11867        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11868    }
11869}
11870
11871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11872pub struct LeakproofFuncOption {
11873    pub(crate) syntax: SyntaxNode,
11874}
11875impl LeakproofFuncOption {
11876    #[inline]
11877    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11878        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11879    }
11880    #[inline]
11881    pub fn not_token(&self) -> Option<SyntaxToken> {
11882        support::token(&self.syntax, SyntaxKind::NOT_KW)
11883    }
11884}
11885
11886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11887pub struct LikeClause {
11888    pub(crate) syntax: SyntaxNode,
11889}
11890impl LikeClause {
11891    #[inline]
11892    pub fn like_options(&self) -> AstChildren<LikeOption> {
11893        support::children(&self.syntax)
11894    }
11895    #[inline]
11896    pub fn path(&self) -> Option<Path> {
11897        support::child(&self.syntax)
11898    }
11899    #[inline]
11900    pub fn like_token(&self) -> Option<SyntaxToken> {
11901        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11902    }
11903}
11904
11905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11906pub struct LikeOption {
11907    pub(crate) syntax: SyntaxNode,
11908}
11909impl LikeOption {
11910    #[inline]
11911    pub fn all_token(&self) -> Option<SyntaxToken> {
11912        support::token(&self.syntax, SyntaxKind::ALL_KW)
11913    }
11914    #[inline]
11915    pub fn comments_token(&self) -> Option<SyntaxToken> {
11916        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11917    }
11918    #[inline]
11919    pub fn compression_token(&self) -> Option<SyntaxToken> {
11920        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11921    }
11922    #[inline]
11923    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11924        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11925    }
11926    #[inline]
11927    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11928        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11929    }
11930    #[inline]
11931    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11932        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11933    }
11934    #[inline]
11935    pub fn generated_token(&self) -> Option<SyntaxToken> {
11936        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11937    }
11938    #[inline]
11939    pub fn identity_token(&self) -> Option<SyntaxToken> {
11940        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11941    }
11942    #[inline]
11943    pub fn including_token(&self) -> Option<SyntaxToken> {
11944        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11945    }
11946    #[inline]
11947    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11948        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11949    }
11950    #[inline]
11951    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11952        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11953    }
11954    #[inline]
11955    pub fn storage_token(&self) -> Option<SyntaxToken> {
11956        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11957    }
11958}
11959
11960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11961pub struct LimitClause {
11962    pub(crate) syntax: SyntaxNode,
11963}
11964impl LimitClause {
11965    #[inline]
11966    pub fn expr(&self) -> Option<Expr> {
11967        support::child(&self.syntax)
11968    }
11969    #[inline]
11970    pub fn all_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::ALL_KW)
11972    }
11973    #[inline]
11974    pub fn limit_token(&self) -> Option<SyntaxToken> {
11975        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11976    }
11977}
11978
11979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11980pub struct LimitToTables {
11981    pub(crate) syntax: SyntaxNode,
11982}
11983impl LimitToTables {
11984    #[inline]
11985    pub fn name_refs(&self) -> AstChildren<NameRef> {
11986        support::children(&self.syntax)
11987    }
11988    #[inline]
11989    pub fn limit_token(&self) -> Option<SyntaxToken> {
11990        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11991    }
11992    #[inline]
11993    pub fn to_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::TO_KW)
11995    }
11996}
11997
11998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11999pub struct Listen {
12000    pub(crate) syntax: SyntaxNode,
12001}
12002impl Listen {
12003    #[inline]
12004    pub fn name(&self) -> Option<Name> {
12005        support::child(&self.syntax)
12006    }
12007    #[inline]
12008    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12009        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12010    }
12011    #[inline]
12012    pub fn listen_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
12014    }
12015}
12016
12017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12018pub struct Literal {
12019    pub(crate) syntax: SyntaxNode,
12020}
12021impl Literal {}
12022
12023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12024pub struct Load {
12025    pub(crate) syntax: SyntaxNode,
12026}
12027impl Load {
12028    #[inline]
12029    pub fn literal(&self) -> Option<Literal> {
12030        support::child(&self.syntax)
12031    }
12032    #[inline]
12033    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12034        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12035    }
12036    #[inline]
12037    pub fn load_token(&self) -> Option<SyntaxToken> {
12038        support::token(&self.syntax, SyntaxKind::LOAD_KW)
12039    }
12040}
12041
12042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12043pub struct Lock {
12044    pub(crate) syntax: SyntaxNode,
12045}
12046impl Lock {
12047    #[inline]
12048    pub fn table_list(&self) -> Option<TableList> {
12049        support::child(&self.syntax)
12050    }
12051    #[inline]
12052    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12053        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12054    }
12055    #[inline]
12056    pub fn lock_token(&self) -> Option<SyntaxToken> {
12057        support::token(&self.syntax, SyntaxKind::LOCK_KW)
12058    }
12059    #[inline]
12060    pub fn table_token(&self) -> Option<SyntaxToken> {
12061        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12062    }
12063}
12064
12065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12066pub struct LockingClause {
12067    pub(crate) syntax: SyntaxNode,
12068}
12069impl LockingClause {
12070    #[inline]
12071    pub fn for_token(&self) -> Option<SyntaxToken> {
12072        support::token(&self.syntax, SyntaxKind::FOR_KW)
12073    }
12074}
12075
12076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12077pub struct Lteq {
12078    pub(crate) syntax: SyntaxNode,
12079}
12080impl Lteq {
12081    #[inline]
12082    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12083        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12084    }
12085    #[inline]
12086    pub fn eq_token(&self) -> Option<SyntaxToken> {
12087        support::token(&self.syntax, SyntaxKind::EQ)
12088    }
12089}
12090
12091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12092pub struct MatchFull {
12093    pub(crate) syntax: SyntaxNode,
12094}
12095impl MatchFull {
12096    #[inline]
12097    pub fn full_token(&self) -> Option<SyntaxToken> {
12098        support::token(&self.syntax, SyntaxKind::FULL_KW)
12099    }
12100    #[inline]
12101    pub fn match_token(&self) -> Option<SyntaxToken> {
12102        support::token(&self.syntax, SyntaxKind::MATCH_KW)
12103    }
12104}
12105
12106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12107pub struct MatchPartial {
12108    pub(crate) syntax: SyntaxNode,
12109}
12110impl MatchPartial {
12111    #[inline]
12112    pub fn match_token(&self) -> Option<SyntaxToken> {
12113        support::token(&self.syntax, SyntaxKind::MATCH_KW)
12114    }
12115    #[inline]
12116    pub fn partial_token(&self) -> Option<SyntaxToken> {
12117        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
12118    }
12119}
12120
12121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12122pub struct MatchSimple {
12123    pub(crate) syntax: SyntaxNode,
12124}
12125impl MatchSimple {
12126    #[inline]
12127    pub fn match_token(&self) -> Option<SyntaxToken> {
12128        support::token(&self.syntax, SyntaxKind::MATCH_KW)
12129    }
12130    #[inline]
12131    pub fn simple_token(&self) -> Option<SyntaxToken> {
12132        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
12133    }
12134}
12135
12136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12137pub struct Materialized {
12138    pub(crate) syntax: SyntaxNode,
12139}
12140impl Materialized {
12141    #[inline]
12142    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12143        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12144    }
12145}
12146
12147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12148pub struct Merge {
12149    pub(crate) syntax: SyntaxNode,
12150}
12151impl Merge {
12152    #[inline]
12153    pub fn alias(&self) -> Option<Alias> {
12154        support::child(&self.syntax)
12155    }
12156    #[inline]
12157    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
12158        support::children(&self.syntax)
12159    }
12160    #[inline]
12161    pub fn relation_name(&self) -> Option<RelationName> {
12162        support::child(&self.syntax)
12163    }
12164    #[inline]
12165    pub fn returning_clause(&self) -> Option<ReturningClause> {
12166        support::child(&self.syntax)
12167    }
12168    #[inline]
12169    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
12170        support::child(&self.syntax)
12171    }
12172    #[inline]
12173    pub fn with_clause(&self) -> Option<WithClause> {
12174        support::child(&self.syntax)
12175    }
12176    #[inline]
12177    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12178        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12179    }
12180    #[inline]
12181    pub fn into_token(&self) -> Option<SyntaxToken> {
12182        support::token(&self.syntax, SyntaxKind::INTO_KW)
12183    }
12184    #[inline]
12185    pub fn merge_token(&self) -> Option<SyntaxToken> {
12186        support::token(&self.syntax, SyntaxKind::MERGE_KW)
12187    }
12188}
12189
12190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12191pub struct MergeDelete {
12192    pub(crate) syntax: SyntaxNode,
12193}
12194impl MergeDelete {
12195    #[inline]
12196    pub fn delete_token(&self) -> Option<SyntaxToken> {
12197        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12198    }
12199}
12200
12201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12202pub struct MergeDoNothing {
12203    pub(crate) syntax: SyntaxNode,
12204}
12205impl MergeDoNothing {
12206    #[inline]
12207    pub fn do_token(&self) -> Option<SyntaxToken> {
12208        support::token(&self.syntax, SyntaxKind::DO_KW)
12209    }
12210    #[inline]
12211    pub fn nothing_token(&self) -> Option<SyntaxToken> {
12212        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
12213    }
12214}
12215
12216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12217pub struct MergeInsert {
12218    pub(crate) syntax: SyntaxNode,
12219}
12220impl MergeInsert {
12221    #[inline]
12222    pub fn column_list(&self) -> Option<ColumnList> {
12223        support::child(&self.syntax)
12224    }
12225    #[inline]
12226    pub fn values(&self) -> Option<Values> {
12227        support::child(&self.syntax)
12228    }
12229    #[inline]
12230    pub fn default_token(&self) -> Option<SyntaxToken> {
12231        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12232    }
12233    #[inline]
12234    pub fn insert_token(&self) -> Option<SyntaxToken> {
12235        support::token(&self.syntax, SyntaxKind::INSERT_KW)
12236    }
12237    #[inline]
12238    pub fn overriding_token(&self) -> Option<SyntaxToken> {
12239        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
12240    }
12241    #[inline]
12242    pub fn system_token(&self) -> Option<SyntaxToken> {
12243        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12244    }
12245    #[inline]
12246    pub fn user_token(&self) -> Option<SyntaxToken> {
12247        support::token(&self.syntax, SyntaxKind::USER_KW)
12248    }
12249    #[inline]
12250    pub fn values_token(&self) -> Option<SyntaxToken> {
12251        support::token(&self.syntax, SyntaxKind::VALUES_KW)
12252    }
12253}
12254
12255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12256pub struct MergePartitions {
12257    pub(crate) syntax: SyntaxNode,
12258}
12259impl MergePartitions {
12260    #[inline]
12261    pub fn path(&self) -> Option<Path> {
12262        support::child(&self.syntax)
12263    }
12264    #[inline]
12265    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12266        support::token(&self.syntax, SyntaxKind::L_PAREN)
12267    }
12268    #[inline]
12269    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12270        support::token(&self.syntax, SyntaxKind::R_PAREN)
12271    }
12272    #[inline]
12273    pub fn into_token(&self) -> Option<SyntaxToken> {
12274        support::token(&self.syntax, SyntaxKind::INTO_KW)
12275    }
12276    #[inline]
12277    pub fn merge_token(&self) -> Option<SyntaxToken> {
12278        support::token(&self.syntax, SyntaxKind::MERGE_KW)
12279    }
12280    #[inline]
12281    pub fn partitions_token(&self) -> Option<SyntaxToken> {
12282        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
12283    }
12284}
12285
12286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12287pub struct MergeUpdate {
12288    pub(crate) syntax: SyntaxNode,
12289}
12290impl MergeUpdate {
12291    #[inline]
12292    pub fn set_clause(&self) -> Option<SetClause> {
12293        support::child(&self.syntax)
12294    }
12295    #[inline]
12296    pub fn set_token(&self) -> Option<SyntaxToken> {
12297        support::token(&self.syntax, SyntaxKind::SET_KW)
12298    }
12299    #[inline]
12300    pub fn update_token(&self) -> Option<SyntaxToken> {
12301        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12302    }
12303}
12304
12305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12306pub struct MergeWhenMatched {
12307    pub(crate) syntax: SyntaxNode,
12308}
12309impl MergeWhenMatched {
12310    #[inline]
12311    pub fn expr(&self) -> Option<Expr> {
12312        support::child(&self.syntax)
12313    }
12314    #[inline]
12315    pub fn merge_action(&self) -> Option<MergeAction> {
12316        support::child(&self.syntax)
12317    }
12318    #[inline]
12319    pub fn and_token(&self) -> Option<SyntaxToken> {
12320        support::token(&self.syntax, SyntaxKind::AND_KW)
12321    }
12322    #[inline]
12323    pub fn matched_token(&self) -> Option<SyntaxToken> {
12324        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
12325    }
12326    #[inline]
12327    pub fn then_token(&self) -> Option<SyntaxToken> {
12328        support::token(&self.syntax, SyntaxKind::THEN_KW)
12329    }
12330    #[inline]
12331    pub fn when_token(&self) -> Option<SyntaxToken> {
12332        support::token(&self.syntax, SyntaxKind::WHEN_KW)
12333    }
12334}
12335
12336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12337pub struct MergeWhenNotMatchedSource {
12338    pub(crate) syntax: SyntaxNode,
12339}
12340impl MergeWhenNotMatchedSource {
12341    #[inline]
12342    pub fn expr(&self) -> Option<Expr> {
12343        support::child(&self.syntax)
12344    }
12345    #[inline]
12346    pub fn merge_action(&self) -> Option<MergeAction> {
12347        support::child(&self.syntax)
12348    }
12349    #[inline]
12350    pub fn and_token(&self) -> Option<SyntaxToken> {
12351        support::token(&self.syntax, SyntaxKind::AND_KW)
12352    }
12353    #[inline]
12354    pub fn by_token(&self) -> Option<SyntaxToken> {
12355        support::token(&self.syntax, SyntaxKind::BY_KW)
12356    }
12357    #[inline]
12358    pub fn matched_token(&self) -> Option<SyntaxToken> {
12359        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
12360    }
12361    #[inline]
12362    pub fn not_token(&self) -> Option<SyntaxToken> {
12363        support::token(&self.syntax, SyntaxKind::NOT_KW)
12364    }
12365    #[inline]
12366    pub fn source_token(&self) -> Option<SyntaxToken> {
12367        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
12368    }
12369    #[inline]
12370    pub fn then_token(&self) -> Option<SyntaxToken> {
12371        support::token(&self.syntax, SyntaxKind::THEN_KW)
12372    }
12373    #[inline]
12374    pub fn when_token(&self) -> Option<SyntaxToken> {
12375        support::token(&self.syntax, SyntaxKind::WHEN_KW)
12376    }
12377}
12378
12379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12380pub struct MergeWhenNotMatchedTarget {
12381    pub(crate) syntax: SyntaxNode,
12382}
12383impl MergeWhenNotMatchedTarget {
12384    #[inline]
12385    pub fn expr(&self) -> Option<Expr> {
12386        support::child(&self.syntax)
12387    }
12388    #[inline]
12389    pub fn merge_action(&self) -> Option<MergeAction> {
12390        support::child(&self.syntax)
12391    }
12392    #[inline]
12393    pub fn and_token(&self) -> Option<SyntaxToken> {
12394        support::token(&self.syntax, SyntaxKind::AND_KW)
12395    }
12396    #[inline]
12397    pub fn by_token(&self) -> Option<SyntaxToken> {
12398        support::token(&self.syntax, SyntaxKind::BY_KW)
12399    }
12400    #[inline]
12401    pub fn matched_token(&self) -> Option<SyntaxToken> {
12402        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
12403    }
12404    #[inline]
12405    pub fn not_token(&self) -> Option<SyntaxToken> {
12406        support::token(&self.syntax, SyntaxKind::NOT_KW)
12407    }
12408    #[inline]
12409    pub fn target_token(&self) -> Option<SyntaxToken> {
12410        support::token(&self.syntax, SyntaxKind::TARGET_KW)
12411    }
12412    #[inline]
12413    pub fn then_token(&self) -> Option<SyntaxToken> {
12414        support::token(&self.syntax, SyntaxKind::THEN_KW)
12415    }
12416    #[inline]
12417    pub fn when_token(&self) -> Option<SyntaxToken> {
12418        support::token(&self.syntax, SyntaxKind::WHEN_KW)
12419    }
12420}
12421
12422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12423pub struct Move {
12424    pub(crate) syntax: SyntaxNode,
12425}
12426impl Move {
12427    #[inline]
12428    pub fn name_ref(&self) -> Option<NameRef> {
12429        support::child(&self.syntax)
12430    }
12431    #[inline]
12432    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12433        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12434    }
12435    #[inline]
12436    pub fn from_token(&self) -> Option<SyntaxToken> {
12437        support::token(&self.syntax, SyntaxKind::FROM_KW)
12438    }
12439    #[inline]
12440    pub fn in_token(&self) -> Option<SyntaxToken> {
12441        support::token(&self.syntax, SyntaxKind::IN_KW)
12442    }
12443    #[inline]
12444    pub fn move_token(&self) -> Option<SyntaxToken> {
12445        support::token(&self.syntax, SyntaxKind::MOVE_KW)
12446    }
12447}
12448
12449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12450pub struct Name {
12451    pub(crate) syntax: SyntaxNode,
12452}
12453impl Name {
12454    #[inline]
12455    pub fn ident_token(&self) -> Option<SyntaxToken> {
12456        support::token(&self.syntax, SyntaxKind::IDENT)
12457    }
12458}
12459
12460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12461pub struct NameRef {
12462    pub(crate) syntax: SyntaxNode,
12463}
12464impl NameRef {
12465    #[inline]
12466    pub fn ident_token(&self) -> Option<SyntaxToken> {
12467        support::token(&self.syntax, SyntaxKind::IDENT)
12468    }
12469}
12470
12471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12472pub struct NamedArg {
12473    pub(crate) syntax: SyntaxNode,
12474}
12475impl NamedArg {
12476    #[inline]
12477    pub fn expr(&self) -> Option<Expr> {
12478        support::child(&self.syntax)
12479    }
12480    #[inline]
12481    pub fn fat_arrow(&self) -> Option<FatArrow> {
12482        support::child(&self.syntax)
12483    }
12484    #[inline]
12485    pub fn name_ref(&self) -> Option<NameRef> {
12486        support::child(&self.syntax)
12487    }
12488}
12489
12490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12491pub struct Neq {
12492    pub(crate) syntax: SyntaxNode,
12493}
12494impl Neq {
12495    #[inline]
12496    pub fn bang_token(&self) -> Option<SyntaxToken> {
12497        support::token(&self.syntax, SyntaxKind::BANG)
12498    }
12499    #[inline]
12500    pub fn eq_token(&self) -> Option<SyntaxToken> {
12501        support::token(&self.syntax, SyntaxKind::EQ)
12502    }
12503}
12504
12505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12506pub struct Neqb {
12507    pub(crate) syntax: SyntaxNode,
12508}
12509impl Neqb {
12510    #[inline]
12511    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12512        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12513    }
12514    #[inline]
12515    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12516        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12517    }
12518}
12519
12520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12521pub struct NoAction {
12522    pub(crate) syntax: SyntaxNode,
12523}
12524impl NoAction {
12525    #[inline]
12526    pub fn action_token(&self) -> Option<SyntaxToken> {
12527        support::token(&self.syntax, SyntaxKind::ACTION_KW)
12528    }
12529    #[inline]
12530    pub fn no_token(&self) -> Option<SyntaxToken> {
12531        support::token(&self.syntax, SyntaxKind::NO_KW)
12532    }
12533}
12534
12535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12536pub struct NoDependsOnExtension {
12537    pub(crate) syntax: SyntaxNode,
12538}
12539impl NoDependsOnExtension {
12540    #[inline]
12541    pub fn name_ref(&self) -> Option<NameRef> {
12542        support::child(&self.syntax)
12543    }
12544    #[inline]
12545    pub fn depends_token(&self) -> Option<SyntaxToken> {
12546        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
12547    }
12548    #[inline]
12549    pub fn extension_token(&self) -> Option<SyntaxToken> {
12550        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
12551    }
12552    #[inline]
12553    pub fn no_token(&self) -> Option<SyntaxToken> {
12554        support::token(&self.syntax, SyntaxKind::NO_KW)
12555    }
12556    #[inline]
12557    pub fn on_token(&self) -> Option<SyntaxToken> {
12558        support::token(&self.syntax, SyntaxKind::ON_KW)
12559    }
12560}
12561
12562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12563pub struct NoForceRls {
12564    pub(crate) syntax: SyntaxNode,
12565}
12566impl NoForceRls {
12567    #[inline]
12568    pub fn force_token(&self) -> Option<SyntaxToken> {
12569        support::token(&self.syntax, SyntaxKind::FORCE_KW)
12570    }
12571    #[inline]
12572    pub fn level_token(&self) -> Option<SyntaxToken> {
12573        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12574    }
12575    #[inline]
12576    pub fn no_token(&self) -> Option<SyntaxToken> {
12577        support::token(&self.syntax, SyntaxKind::NO_KW)
12578    }
12579    #[inline]
12580    pub fn row_token(&self) -> Option<SyntaxToken> {
12581        support::token(&self.syntax, SyntaxKind::ROW_KW)
12582    }
12583    #[inline]
12584    pub fn security_token(&self) -> Option<SyntaxToken> {
12585        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
12586    }
12587}
12588
12589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12590pub struct NoInherit {
12591    pub(crate) syntax: SyntaxNode,
12592}
12593impl NoInherit {
12594    #[inline]
12595    pub fn path(&self) -> Option<Path> {
12596        support::child(&self.syntax)
12597    }
12598    #[inline]
12599    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12600        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12601    }
12602    #[inline]
12603    pub fn no_token(&self) -> Option<SyntaxToken> {
12604        support::token(&self.syntax, SyntaxKind::NO_KW)
12605    }
12606}
12607
12608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12609pub struct NoInheritTable {
12610    pub(crate) syntax: SyntaxNode,
12611}
12612impl NoInheritTable {
12613    #[inline]
12614    pub fn path(&self) -> Option<Path> {
12615        support::child(&self.syntax)
12616    }
12617    #[inline]
12618    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12619        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12620    }
12621    #[inline]
12622    pub fn no_token(&self) -> Option<SyntaxToken> {
12623        support::token(&self.syntax, SyntaxKind::NO_KW)
12624    }
12625}
12626
12627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12628pub struct NoProperties {
12629    pub(crate) syntax: SyntaxNode,
12630}
12631impl NoProperties {
12632    #[inline]
12633    pub fn no_token(&self) -> Option<SyntaxToken> {
12634        support::token(&self.syntax, SyntaxKind::NO_KW)
12635    }
12636    #[inline]
12637    pub fn properties_token(&self) -> Option<SyntaxToken> {
12638        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12639    }
12640}
12641
12642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12643pub struct NonStandardParam {
12644    pub(crate) syntax: SyntaxNode,
12645}
12646impl NonStandardParam {
12647    #[inline]
12648    pub fn name_ref(&self) -> Option<NameRef> {
12649        support::child(&self.syntax)
12650    }
12651    #[inline]
12652    pub fn colon_token(&self) -> Option<SyntaxToken> {
12653        support::token(&self.syntax, SyntaxKind::COLON)
12654    }
12655}
12656
12657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12658pub struct NotDeferrable {
12659    pub(crate) syntax: SyntaxNode,
12660}
12661impl NotDeferrable {
12662    #[inline]
12663    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12664        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12665    }
12666    #[inline]
12667    pub fn not_token(&self) -> Option<SyntaxToken> {
12668        support::token(&self.syntax, SyntaxKind::NOT_KW)
12669    }
12670}
12671
12672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12673pub struct NotDeferrableConstraintOption {
12674    pub(crate) syntax: SyntaxNode,
12675}
12676impl NotDeferrableConstraintOption {
12677    #[inline]
12678    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12679        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12680    }
12681    #[inline]
12682    pub fn not_token(&self) -> Option<SyntaxToken> {
12683        support::token(&self.syntax, SyntaxKind::NOT_KW)
12684    }
12685}
12686
12687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12688pub struct NotEnforced {
12689    pub(crate) syntax: SyntaxNode,
12690}
12691impl NotEnforced {
12692    #[inline]
12693    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12694        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
12695    }
12696    #[inline]
12697    pub fn not_token(&self) -> Option<SyntaxToken> {
12698        support::token(&self.syntax, SyntaxKind::NOT_KW)
12699    }
12700}
12701
12702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12703pub struct NotIlike {
12704    pub(crate) syntax: SyntaxNode,
12705}
12706impl NotIlike {
12707    #[inline]
12708    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12709        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12710    }
12711    #[inline]
12712    pub fn not_token(&self) -> Option<SyntaxToken> {
12713        support::token(&self.syntax, SyntaxKind::NOT_KW)
12714    }
12715}
12716
12717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12718pub struct NotIn {
12719    pub(crate) syntax: SyntaxNode,
12720}
12721impl NotIn {
12722    #[inline]
12723    pub fn in_token(&self) -> Option<SyntaxToken> {
12724        support::token(&self.syntax, SyntaxKind::IN_KW)
12725    }
12726    #[inline]
12727    pub fn not_token(&self) -> Option<SyntaxToken> {
12728        support::token(&self.syntax, SyntaxKind::NOT_KW)
12729    }
12730}
12731
12732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12733pub struct NotLike {
12734    pub(crate) syntax: SyntaxNode,
12735}
12736impl NotLike {
12737    #[inline]
12738    pub fn like_token(&self) -> Option<SyntaxToken> {
12739        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12740    }
12741    #[inline]
12742    pub fn not_token(&self) -> Option<SyntaxToken> {
12743        support::token(&self.syntax, SyntaxKind::NOT_KW)
12744    }
12745}
12746
12747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12748pub struct NotMaterialized {
12749    pub(crate) syntax: SyntaxNode,
12750}
12751impl NotMaterialized {
12752    #[inline]
12753    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12754        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12755    }
12756    #[inline]
12757    pub fn not_token(&self) -> Option<SyntaxToken> {
12758        support::token(&self.syntax, SyntaxKind::NOT_KW)
12759    }
12760}
12761
12762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12763pub struct NotNullConstraint {
12764    pub(crate) syntax: SyntaxNode,
12765}
12766impl NotNullConstraint {
12767    #[inline]
12768    pub fn name_ref(&self) -> Option<NameRef> {
12769        support::child(&self.syntax)
12770    }
12771    #[inline]
12772    pub fn no_inherit(&self) -> Option<NoInherit> {
12773        support::child(&self.syntax)
12774    }
12775    #[inline]
12776    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12777        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12778    }
12779    #[inline]
12780    pub fn not_token(&self) -> Option<SyntaxToken> {
12781        support::token(&self.syntax, SyntaxKind::NOT_KW)
12782    }
12783    #[inline]
12784    pub fn null_token(&self) -> Option<SyntaxToken> {
12785        support::token(&self.syntax, SyntaxKind::NULL_KW)
12786    }
12787}
12788
12789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12790pub struct NotOf {
12791    pub(crate) syntax: SyntaxNode,
12792}
12793impl NotOf {
12794    #[inline]
12795    pub fn not_token(&self) -> Option<SyntaxToken> {
12796        support::token(&self.syntax, SyntaxKind::NOT_KW)
12797    }
12798    #[inline]
12799    pub fn of_token(&self) -> Option<SyntaxToken> {
12800        support::token(&self.syntax, SyntaxKind::OF_KW)
12801    }
12802}
12803
12804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12805pub struct NotSimilarTo {
12806    pub(crate) syntax: SyntaxNode,
12807}
12808impl NotSimilarTo {
12809    #[inline]
12810    pub fn not_token(&self) -> Option<SyntaxToken> {
12811        support::token(&self.syntax, SyntaxKind::NOT_KW)
12812    }
12813    #[inline]
12814    pub fn similar_token(&self) -> Option<SyntaxToken> {
12815        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12816    }
12817    #[inline]
12818    pub fn to_token(&self) -> Option<SyntaxToken> {
12819        support::token(&self.syntax, SyntaxKind::TO_KW)
12820    }
12821}
12822
12823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12824pub struct NotValid {
12825    pub(crate) syntax: SyntaxNode,
12826}
12827impl NotValid {
12828    #[inline]
12829    pub fn not_token(&self) -> Option<SyntaxToken> {
12830        support::token(&self.syntax, SyntaxKind::NOT_KW)
12831    }
12832    #[inline]
12833    pub fn valid_token(&self) -> Option<SyntaxToken> {
12834        support::token(&self.syntax, SyntaxKind::VALID_KW)
12835    }
12836}
12837
12838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12839pub struct Nothing {
12840    pub(crate) syntax: SyntaxNode,
12841}
12842impl Nothing {
12843    #[inline]
12844    pub fn nothing_token(&self) -> Option<SyntaxToken> {
12845        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
12846    }
12847}
12848
12849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12850pub struct Notify {
12851    pub(crate) syntax: SyntaxNode,
12852}
12853impl Notify {
12854    #[inline]
12855    pub fn literal(&self) -> Option<Literal> {
12856        support::child(&self.syntax)
12857    }
12858    #[inline]
12859    pub fn name_ref(&self) -> Option<NameRef> {
12860        support::child(&self.syntax)
12861    }
12862    #[inline]
12863    pub fn comma_token(&self) -> Option<SyntaxToken> {
12864        support::token(&self.syntax, SyntaxKind::COMMA)
12865    }
12866    #[inline]
12867    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
12868        support::token(&self.syntax, SyntaxKind::SEMICOLON)
12869    }
12870    #[inline]
12871    pub fn notify_token(&self) -> Option<SyntaxToken> {
12872        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12873    }
12874}
12875
12876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12877pub struct NullConstraint {
12878    pub(crate) syntax: SyntaxNode,
12879}
12880impl NullConstraint {
12881    #[inline]
12882    pub fn name_ref(&self) -> Option<NameRef> {
12883        support::child(&self.syntax)
12884    }
12885    #[inline]
12886    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12887        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12888    }
12889    #[inline]
12890    pub fn null_token(&self) -> Option<SyntaxToken> {
12891        support::token(&self.syntax, SyntaxKind::NULL_KW)
12892    }
12893}
12894
12895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12896pub struct NullsDistinct {
12897    pub(crate) syntax: SyntaxNode,
12898}
12899impl NullsDistinct {
12900    #[inline]
12901    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12902        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12903    }
12904    #[inline]
12905    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12906        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12907    }
12908}
12909
12910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12911pub struct NullsFirst {
12912    pub(crate) syntax: SyntaxNode,
12913}
12914impl NullsFirst {
12915    #[inline]
12916    pub fn first_token(&self) -> Option<SyntaxToken> {
12917        support::token(&self.syntax, SyntaxKind::FIRST_KW)
12918    }
12919    #[inline]
12920    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12921        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12922    }
12923}
12924
12925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12926pub struct NullsLast {
12927    pub(crate) syntax: SyntaxNode,
12928}
12929impl NullsLast {
12930    #[inline]
12931    pub fn last_token(&self) -> Option<SyntaxToken> {
12932        support::token(&self.syntax, SyntaxKind::LAST_KW)
12933    }
12934    #[inline]
12935    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12936        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12937    }
12938}
12939
12940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12941pub struct NullsNotDistinct {
12942    pub(crate) syntax: SyntaxNode,
12943}
12944impl NullsNotDistinct {
12945    #[inline]
12946    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12947        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12948    }
12949    #[inline]
12950    pub fn not_token(&self) -> Option<SyntaxToken> {
12951        support::token(&self.syntax, SyntaxKind::NOT_KW)
12952    }
12953    #[inline]
12954    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12955        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12956    }
12957}
12958
12959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12960pub struct OfType {
12961    pub(crate) syntax: SyntaxNode,
12962}
12963impl OfType {
12964    #[inline]
12965    pub fn ty(&self) -> Option<Type> {
12966        support::child(&self.syntax)
12967    }
12968    #[inline]
12969    pub fn of_token(&self) -> Option<SyntaxToken> {
12970        support::token(&self.syntax, SyntaxKind::OF_KW)
12971    }
12972}
12973
12974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12975pub struct OffsetClause {
12976    pub(crate) syntax: SyntaxNode,
12977}
12978impl OffsetClause {
12979    #[inline]
12980    pub fn expr(&self) -> Option<Expr> {
12981        support::child(&self.syntax)
12982    }
12983    #[inline]
12984    pub fn offset_token(&self) -> Option<SyntaxToken> {
12985        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12986    }
12987    #[inline]
12988    pub fn row_token(&self) -> Option<SyntaxToken> {
12989        support::token(&self.syntax, SyntaxKind::ROW_KW)
12990    }
12991    #[inline]
12992    pub fn rows_token(&self) -> Option<SyntaxToken> {
12993        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12994    }
12995}
12996
12997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12998pub struct OnClause {
12999    pub(crate) syntax: SyntaxNode,
13000}
13001impl OnClause {
13002    #[inline]
13003    pub fn expr(&self) -> Option<Expr> {
13004        support::child(&self.syntax)
13005    }
13006    #[inline]
13007    pub fn on_token(&self) -> Option<SyntaxToken> {
13008        support::token(&self.syntax, SyntaxKind::ON_KW)
13009    }
13010}
13011
13012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13013pub struct OnCommit {
13014    pub(crate) syntax: SyntaxNode,
13015}
13016impl OnCommit {
13017    #[inline]
13018    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
13019        support::child(&self.syntax)
13020    }
13021    #[inline]
13022    pub fn commit_token(&self) -> Option<SyntaxToken> {
13023        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
13024    }
13025    #[inline]
13026    pub fn on_token(&self) -> Option<SyntaxToken> {
13027        support::token(&self.syntax, SyntaxKind::ON_KW)
13028    }
13029}
13030
13031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13032pub struct OnConflictClause {
13033    pub(crate) syntax: SyntaxNode,
13034}
13035impl OnConflictClause {
13036    #[inline]
13037    pub fn conflict_action(&self) -> Option<ConflictAction> {
13038        support::child(&self.syntax)
13039    }
13040    #[inline]
13041    pub fn conflict_target(&self) -> Option<ConflictTarget> {
13042        support::child(&self.syntax)
13043    }
13044    #[inline]
13045    pub fn conflict_token(&self) -> Option<SyntaxToken> {
13046        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
13047    }
13048    #[inline]
13049    pub fn on_token(&self) -> Option<SyntaxToken> {
13050        support::token(&self.syntax, SyntaxKind::ON_KW)
13051    }
13052}
13053
13054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13055pub struct OnDeleteAction {
13056    pub(crate) syntax: SyntaxNode,
13057}
13058impl OnDeleteAction {
13059    #[inline]
13060    pub fn ref_action(&self) -> Option<RefAction> {
13061        support::child(&self.syntax)
13062    }
13063    #[inline]
13064    pub fn delete_token(&self) -> Option<SyntaxToken> {
13065        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13066    }
13067    #[inline]
13068    pub fn on_token(&self) -> Option<SyntaxToken> {
13069        support::token(&self.syntax, SyntaxKind::ON_KW)
13070    }
13071}
13072
13073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13074pub struct OnPath {
13075    pub(crate) syntax: SyntaxNode,
13076}
13077impl OnPath {
13078    #[inline]
13079    pub fn path(&self) -> Option<Path> {
13080        support::child(&self.syntax)
13081    }
13082    #[inline]
13083    pub fn on_token(&self) -> Option<SyntaxToken> {
13084        support::token(&self.syntax, SyntaxKind::ON_KW)
13085    }
13086}
13087
13088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13089pub struct OnTable {
13090    pub(crate) syntax: SyntaxNode,
13091}
13092impl OnTable {
13093    #[inline]
13094    pub fn path(&self) -> Option<Path> {
13095        support::child(&self.syntax)
13096    }
13097    #[inline]
13098    pub fn on_token(&self) -> Option<SyntaxToken> {
13099        support::token(&self.syntax, SyntaxKind::ON_KW)
13100    }
13101}
13102
13103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13104pub struct OnUpdateAction {
13105    pub(crate) syntax: SyntaxNode,
13106}
13107impl OnUpdateAction {
13108    #[inline]
13109    pub fn ref_action(&self) -> Option<RefAction> {
13110        support::child(&self.syntax)
13111    }
13112    #[inline]
13113    pub fn on_token(&self) -> Option<SyntaxToken> {
13114        support::token(&self.syntax, SyntaxKind::ON_KW)
13115    }
13116    #[inline]
13117    pub fn update_token(&self) -> Option<SyntaxToken> {
13118        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13119    }
13120}
13121
13122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13123pub struct Op {
13124    pub(crate) syntax: SyntaxNode,
13125}
13126impl Op {
13127    #[inline]
13128    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
13129        support::child(&self.syntax)
13130    }
13131    #[inline]
13132    pub fn colon_colon(&self) -> Option<ColonColon> {
13133        support::child(&self.syntax)
13134    }
13135    #[inline]
13136    pub fn colon_eq(&self) -> Option<ColonEq> {
13137        support::child(&self.syntax)
13138    }
13139    #[inline]
13140    pub fn custom_op(&self) -> Option<CustomOp> {
13141        support::child(&self.syntax)
13142    }
13143    #[inline]
13144    pub fn fat_arrow(&self) -> Option<FatArrow> {
13145        support::child(&self.syntax)
13146    }
13147    #[inline]
13148    pub fn gteq(&self) -> Option<Gteq> {
13149        support::child(&self.syntax)
13150    }
13151    #[inline]
13152    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
13153        support::child(&self.syntax)
13154    }
13155    #[inline]
13156    pub fn is_json(&self) -> Option<IsJson> {
13157        support::child(&self.syntax)
13158    }
13159    #[inline]
13160    pub fn is_json_array(&self) -> Option<IsJsonArray> {
13161        support::child(&self.syntax)
13162    }
13163    #[inline]
13164    pub fn is_json_object(&self) -> Option<IsJsonObject> {
13165        support::child(&self.syntax)
13166    }
13167    #[inline]
13168    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
13169        support::child(&self.syntax)
13170    }
13171    #[inline]
13172    pub fn is_json_value(&self) -> Option<IsJsonValue> {
13173        support::child(&self.syntax)
13174    }
13175    #[inline]
13176    pub fn is_normalized(&self) -> Option<IsNormalized> {
13177        support::child(&self.syntax)
13178    }
13179    #[inline]
13180    pub fn is_not(&self) -> Option<IsNot> {
13181        support::child(&self.syntax)
13182    }
13183    #[inline]
13184    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
13185        support::child(&self.syntax)
13186    }
13187    #[inline]
13188    pub fn is_not_json(&self) -> Option<IsNotJson> {
13189        support::child(&self.syntax)
13190    }
13191    #[inline]
13192    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
13193        support::child(&self.syntax)
13194    }
13195    #[inline]
13196    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
13197        support::child(&self.syntax)
13198    }
13199    #[inline]
13200    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
13201        support::child(&self.syntax)
13202    }
13203    #[inline]
13204    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
13205        support::child(&self.syntax)
13206    }
13207    #[inline]
13208    pub fn is_not_normalized(&self) -> Option<IsNotNormalized> {
13209        support::child(&self.syntax)
13210    }
13211    #[inline]
13212    pub fn lteq(&self) -> Option<Lteq> {
13213        support::child(&self.syntax)
13214    }
13215    #[inline]
13216    pub fn neq(&self) -> Option<Neq> {
13217        support::child(&self.syntax)
13218    }
13219    #[inline]
13220    pub fn neqb(&self) -> Option<Neqb> {
13221        support::child(&self.syntax)
13222    }
13223    #[inline]
13224    pub fn not_ilike(&self) -> Option<NotIlike> {
13225        support::child(&self.syntax)
13226    }
13227    #[inline]
13228    pub fn not_in(&self) -> Option<NotIn> {
13229        support::child(&self.syntax)
13230    }
13231    #[inline]
13232    pub fn not_like(&self) -> Option<NotLike> {
13233        support::child(&self.syntax)
13234    }
13235    #[inline]
13236    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
13237        support::child(&self.syntax)
13238    }
13239    #[inline]
13240    pub fn operator_call(&self) -> Option<OperatorCall> {
13241        support::child(&self.syntax)
13242    }
13243    #[inline]
13244    pub fn similar_to(&self) -> Option<SimilarTo> {
13245        support::child(&self.syntax)
13246    }
13247    #[inline]
13248    pub fn percent_token(&self) -> Option<SyntaxToken> {
13249        support::token(&self.syntax, SyntaxKind::PERCENT)
13250    }
13251    #[inline]
13252    pub fn plus_token(&self) -> Option<SyntaxToken> {
13253        support::token(&self.syntax, SyntaxKind::PLUS)
13254    }
13255    #[inline]
13256    pub fn minus_token(&self) -> Option<SyntaxToken> {
13257        support::token(&self.syntax, SyntaxKind::MINUS)
13258    }
13259    #[inline]
13260    pub fn slash_token(&self) -> Option<SyntaxToken> {
13261        support::token(&self.syntax, SyntaxKind::SLASH)
13262    }
13263    #[inline]
13264    pub fn colon_token(&self) -> Option<SyntaxToken> {
13265        support::token(&self.syntax, SyntaxKind::COLON)
13266    }
13267    #[inline]
13268    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
13269        support::token(&self.syntax, SyntaxKind::L_ANGLE)
13270    }
13271    #[inline]
13272    pub fn eq_token(&self) -> Option<SyntaxToken> {
13273        support::token(&self.syntax, SyntaxKind::EQ)
13274    }
13275    #[inline]
13276    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
13277        support::token(&self.syntax, SyntaxKind::R_ANGLE)
13278    }
13279    #[inline]
13280    pub fn caret_token(&self) -> Option<SyntaxToken> {
13281        support::token(&self.syntax, SyntaxKind::CARET)
13282    }
13283    #[inline]
13284    pub fn and_token(&self) -> Option<SyntaxToken> {
13285        support::token(&self.syntax, SyntaxKind::AND_KW)
13286    }
13287    #[inline]
13288    pub fn collate_token(&self) -> Option<SyntaxToken> {
13289        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
13290    }
13291    #[inline]
13292    pub fn ilike_token(&self) -> Option<SyntaxToken> {
13293        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
13294    }
13295    #[inline]
13296    pub fn in_token(&self) -> Option<SyntaxToken> {
13297        support::token(&self.syntax, SyntaxKind::IN_KW)
13298    }
13299    #[inline]
13300    pub fn is_token(&self) -> Option<SyntaxToken> {
13301        support::token(&self.syntax, SyntaxKind::IS_KW)
13302    }
13303    #[inline]
13304    pub fn isnull_token(&self) -> Option<SyntaxToken> {
13305        support::token(&self.syntax, SyntaxKind::ISNULL_KW)
13306    }
13307    #[inline]
13308    pub fn like_token(&self) -> Option<SyntaxToken> {
13309        support::token(&self.syntax, SyntaxKind::LIKE_KW)
13310    }
13311    #[inline]
13312    pub fn or_token(&self) -> Option<SyntaxToken> {
13313        support::token(&self.syntax, SyntaxKind::OR_KW)
13314    }
13315    #[inline]
13316    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
13317        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
13318    }
13319    #[inline]
13320    pub fn value_token(&self) -> Option<SyntaxToken> {
13321        support::token(&self.syntax, SyntaxKind::VALUE_KW)
13322    }
13323}
13324
13325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13326pub struct OpClassOption {
13327    pub(crate) syntax: SyntaxNode,
13328}
13329impl OpClassOption {
13330    #[inline]
13331    pub fn function_sig(&self) -> Option<FunctionSig> {
13332        support::child(&self.syntax)
13333    }
13334    #[inline]
13335    pub fn literal(&self) -> Option<Literal> {
13336        support::child(&self.syntax)
13337    }
13338    #[inline]
13339    pub fn op(&self) -> Option<Op> {
13340        support::child(&self.syntax)
13341    }
13342    #[inline]
13343    pub fn param_list(&self) -> Option<ParamList> {
13344        support::child(&self.syntax)
13345    }
13346    #[inline]
13347    pub fn path(&self) -> Option<Path> {
13348        support::child(&self.syntax)
13349    }
13350    #[inline]
13351    pub fn ty(&self) -> Option<Type> {
13352        support::child(&self.syntax)
13353    }
13354    #[inline]
13355    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13356        support::token(&self.syntax, SyntaxKind::L_PAREN)
13357    }
13358    #[inline]
13359    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13360        support::token(&self.syntax, SyntaxKind::R_PAREN)
13361    }
13362    #[inline]
13363    pub fn comma_token(&self) -> Option<SyntaxToken> {
13364        support::token(&self.syntax, SyntaxKind::COMMA)
13365    }
13366    #[inline]
13367    pub fn by_token(&self) -> Option<SyntaxToken> {
13368        support::token(&self.syntax, SyntaxKind::BY_KW)
13369    }
13370    #[inline]
13371    pub fn for_token(&self) -> Option<SyntaxToken> {
13372        support::token(&self.syntax, SyntaxKind::FOR_KW)
13373    }
13374    #[inline]
13375    pub fn function_token(&self) -> Option<SyntaxToken> {
13376        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13377    }
13378    #[inline]
13379    pub fn operator_token(&self) -> Option<SyntaxToken> {
13380        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
13381    }
13382    #[inline]
13383    pub fn order_token(&self) -> Option<SyntaxToken> {
13384        support::token(&self.syntax, SyntaxKind::ORDER_KW)
13385    }
13386    #[inline]
13387    pub fn search_token(&self) -> Option<SyntaxToken> {
13388        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
13389    }
13390    #[inline]
13391    pub fn storage_token(&self) -> Option<SyntaxToken> {
13392        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
13393    }
13394}
13395
13396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13397pub struct OpSig {
13398    pub(crate) syntax: SyntaxNode,
13399}
13400impl OpSig {
13401    #[inline]
13402    pub fn op(&self) -> Option<Op> {
13403        support::child(&self.syntax)
13404    }
13405    #[inline]
13406    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13407        support::token(&self.syntax, SyntaxKind::L_PAREN)
13408    }
13409    #[inline]
13410    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13411        support::token(&self.syntax, SyntaxKind::R_PAREN)
13412    }
13413    #[inline]
13414    pub fn comma_token(&self) -> Option<SyntaxToken> {
13415        support::token(&self.syntax, SyntaxKind::COMMA)
13416    }
13417    #[inline]
13418    pub fn none_token(&self) -> Option<SyntaxToken> {
13419        support::token(&self.syntax, SyntaxKind::NONE_KW)
13420    }
13421}
13422
13423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13424pub struct OpSigList {
13425    pub(crate) syntax: SyntaxNode,
13426}
13427impl OpSigList {
13428    #[inline]
13429    pub fn op_sigs(&self) -> AstChildren<OpSig> {
13430        support::children(&self.syntax)
13431    }
13432}
13433
13434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13435pub struct OperatorCall {
13436    pub(crate) syntax: SyntaxNode,
13437}
13438impl OperatorCall {
13439    #[inline]
13440    pub fn op(&self) -> Option<Op> {
13441        support::child(&self.syntax)
13442    }
13443    #[inline]
13444    pub fn path(&self) -> Option<Path> {
13445        support::child(&self.syntax)
13446    }
13447    #[inline]
13448    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13449        support::token(&self.syntax, SyntaxKind::L_PAREN)
13450    }
13451    #[inline]
13452    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13453        support::token(&self.syntax, SyntaxKind::R_PAREN)
13454    }
13455    #[inline]
13456    pub fn dot_token(&self) -> Option<SyntaxToken> {
13457        support::token(&self.syntax, SyntaxKind::DOT)
13458    }
13459    #[inline]
13460    pub fn operator_token(&self) -> Option<SyntaxToken> {
13461        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
13462    }
13463}
13464
13465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13466pub struct OperatorClassOptionList {
13467    pub(crate) syntax: SyntaxNode,
13468}
13469impl OperatorClassOptionList {
13470    #[inline]
13471    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
13472        support::children(&self.syntax)
13473    }
13474}
13475
13476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13477pub struct OptionItem {
13478    pub(crate) syntax: SyntaxNode,
13479}
13480impl OptionItem {
13481    #[inline]
13482    pub fn expr(&self) -> Option<Expr> {
13483        support::child(&self.syntax)
13484    }
13485    #[inline]
13486    pub fn default_token(&self) -> Option<SyntaxToken> {
13487        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13488    }
13489}
13490
13491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13492pub struct OptionItemList {
13493    pub(crate) syntax: SyntaxNode,
13494}
13495impl OptionItemList {
13496    #[inline]
13497    pub fn option_items(&self) -> AstChildren<OptionItem> {
13498        support::children(&self.syntax)
13499    }
13500    #[inline]
13501    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13502        support::token(&self.syntax, SyntaxKind::L_PAREN)
13503    }
13504    #[inline]
13505    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13506        support::token(&self.syntax, SyntaxKind::R_PAREN)
13507    }
13508}
13509
13510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13511pub struct OrReplace {
13512    pub(crate) syntax: SyntaxNode,
13513}
13514impl OrReplace {
13515    #[inline]
13516    pub fn or_token(&self) -> Option<SyntaxToken> {
13517        support::token(&self.syntax, SyntaxKind::OR_KW)
13518    }
13519    #[inline]
13520    pub fn replace_token(&self) -> Option<SyntaxToken> {
13521        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
13522    }
13523}
13524
13525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13526pub struct OrderByClause {
13527    pub(crate) syntax: SyntaxNode,
13528}
13529impl OrderByClause {
13530    #[inline]
13531    pub fn sort_by_list(&self) -> Option<SortByList> {
13532        support::child(&self.syntax)
13533    }
13534    #[inline]
13535    pub fn by_token(&self) -> Option<SyntaxToken> {
13536        support::token(&self.syntax, SyntaxKind::BY_KW)
13537    }
13538    #[inline]
13539    pub fn order_token(&self) -> Option<SyntaxToken> {
13540        support::token(&self.syntax, SyntaxKind::ORDER_KW)
13541    }
13542}
13543
13544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13545pub struct OverClause {
13546    pub(crate) syntax: SyntaxNode,
13547}
13548impl OverClause {
13549    #[inline]
13550    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13551        support::token(&self.syntax, SyntaxKind::L_PAREN)
13552    }
13553    #[inline]
13554    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13555        support::token(&self.syntax, SyntaxKind::R_PAREN)
13556    }
13557    #[inline]
13558    pub fn over_token(&self) -> Option<SyntaxToken> {
13559        support::token(&self.syntax, SyntaxKind::OVER_KW)
13560    }
13561}
13562
13563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13564pub struct OverlayFn {
13565    pub(crate) syntax: SyntaxNode,
13566}
13567impl OverlayFn {
13568    #[inline]
13569    pub fn expr(&self) -> Option<Expr> {
13570        support::child(&self.syntax)
13571    }
13572    #[inline]
13573    pub fn exprs(&self) -> AstChildren<Expr> {
13574        support::children(&self.syntax)
13575    }
13576    #[inline]
13577    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13578        support::token(&self.syntax, SyntaxKind::L_PAREN)
13579    }
13580    #[inline]
13581    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13582        support::token(&self.syntax, SyntaxKind::R_PAREN)
13583    }
13584    #[inline]
13585    pub fn for_token(&self) -> Option<SyntaxToken> {
13586        support::token(&self.syntax, SyntaxKind::FOR_KW)
13587    }
13588    #[inline]
13589    pub fn from_token(&self) -> Option<SyntaxToken> {
13590        support::token(&self.syntax, SyntaxKind::FROM_KW)
13591    }
13592    #[inline]
13593    pub fn overlay_token(&self) -> Option<SyntaxToken> {
13594        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
13595    }
13596    #[inline]
13597    pub fn placing_token(&self) -> Option<SyntaxToken> {
13598        support::token(&self.syntax, SyntaxKind::PLACING_KW)
13599    }
13600}
13601
13602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13603pub struct OwnedByRoles {
13604    pub(crate) syntax: SyntaxNode,
13605}
13606impl OwnedByRoles {
13607    #[inline]
13608    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13609        support::child(&self.syntax)
13610    }
13611    #[inline]
13612    pub fn by_token(&self) -> Option<SyntaxToken> {
13613        support::token(&self.syntax, SyntaxKind::BY_KW)
13614    }
13615    #[inline]
13616    pub fn owned_token(&self) -> Option<SyntaxToken> {
13617        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13618    }
13619}
13620
13621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13622pub struct OwnerTo {
13623    pub(crate) syntax: SyntaxNode,
13624}
13625impl OwnerTo {
13626    #[inline]
13627    pub fn role_ref(&self) -> Option<RoleRef> {
13628        support::child(&self.syntax)
13629    }
13630    #[inline]
13631    pub fn owner_token(&self) -> Option<SyntaxToken> {
13632        support::token(&self.syntax, SyntaxKind::OWNER_KW)
13633    }
13634    #[inline]
13635    pub fn to_token(&self) -> Option<SyntaxToken> {
13636        support::token(&self.syntax, SyntaxKind::TO_KW)
13637    }
13638}
13639
13640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13641pub struct ParallelFuncOption {
13642    pub(crate) syntax: SyntaxNode,
13643}
13644impl ParallelFuncOption {
13645    #[inline]
13646    pub fn ident_token(&self) -> Option<SyntaxToken> {
13647        support::token(&self.syntax, SyntaxKind::IDENT)
13648    }
13649    #[inline]
13650    pub fn parallel_token(&self) -> Option<SyntaxToken> {
13651        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
13652    }
13653}
13654
13655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13656pub struct Param {
13657    pub(crate) syntax: SyntaxNode,
13658}
13659impl Param {
13660    #[inline]
13661    pub fn mode(&self) -> Option<ParamMode> {
13662        support::child(&self.syntax)
13663    }
13664    #[inline]
13665    pub fn name(&self) -> Option<Name> {
13666        support::child(&self.syntax)
13667    }
13668    #[inline]
13669    pub fn param_default(&self) -> Option<ParamDefault> {
13670        support::child(&self.syntax)
13671    }
13672    #[inline]
13673    pub fn ty(&self) -> Option<Type> {
13674        support::child(&self.syntax)
13675    }
13676}
13677
13678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13679pub struct ParamDefault {
13680    pub(crate) syntax: SyntaxNode,
13681}
13682impl ParamDefault {
13683    #[inline]
13684    pub fn expr(&self) -> Option<Expr> {
13685        support::child(&self.syntax)
13686    }
13687    #[inline]
13688    pub fn eq_token(&self) -> Option<SyntaxToken> {
13689        support::token(&self.syntax, SyntaxKind::EQ)
13690    }
13691    #[inline]
13692    pub fn default_token(&self) -> Option<SyntaxToken> {
13693        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13694    }
13695}
13696
13697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13698pub struct ParamIn {
13699    pub(crate) syntax: SyntaxNode,
13700}
13701impl ParamIn {
13702    #[inline]
13703    pub fn in_token(&self) -> Option<SyntaxToken> {
13704        support::token(&self.syntax, SyntaxKind::IN_KW)
13705    }
13706}
13707
13708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13709pub struct ParamInOut {
13710    pub(crate) syntax: SyntaxNode,
13711}
13712impl ParamInOut {
13713    #[inline]
13714    pub fn in_token(&self) -> Option<SyntaxToken> {
13715        support::token(&self.syntax, SyntaxKind::IN_KW)
13716    }
13717    #[inline]
13718    pub fn inout_token(&self) -> Option<SyntaxToken> {
13719        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13720    }
13721    #[inline]
13722    pub fn out_token(&self) -> Option<SyntaxToken> {
13723        support::token(&self.syntax, SyntaxKind::OUT_KW)
13724    }
13725}
13726
13727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13728pub struct ParamList {
13729    pub(crate) syntax: SyntaxNode,
13730}
13731impl ParamList {
13732    #[inline]
13733    pub fn params(&self) -> AstChildren<Param> {
13734        support::children(&self.syntax)
13735    }
13736}
13737
13738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13739pub struct ParamOut {
13740    pub(crate) syntax: SyntaxNode,
13741}
13742impl ParamOut {
13743    #[inline]
13744    pub fn out_token(&self) -> Option<SyntaxToken> {
13745        support::token(&self.syntax, SyntaxKind::OUT_KW)
13746    }
13747}
13748
13749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13750pub struct ParamVariadic {
13751    pub(crate) syntax: SyntaxNode,
13752}
13753impl ParamVariadic {
13754    #[inline]
13755    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13756        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13757    }
13758}
13759
13760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13761pub struct ParenExpr {
13762    pub(crate) syntax: SyntaxNode,
13763}
13764impl ParenExpr {
13765    #[inline]
13766    pub fn expr(&self) -> Option<Expr> {
13767        support::child(&self.syntax)
13768    }
13769    #[inline]
13770    pub fn from_item(&self) -> Option<FromItem> {
13771        support::child(&self.syntax)
13772    }
13773    #[inline]
13774    pub fn select(&self) -> Option<Select> {
13775        support::child(&self.syntax)
13776    }
13777    #[inline]
13778    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13779        support::token(&self.syntax, SyntaxKind::L_PAREN)
13780    }
13781    #[inline]
13782    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13783        support::token(&self.syntax, SyntaxKind::R_PAREN)
13784    }
13785}
13786
13787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13788pub struct ParenGraphPattern {
13789    pub(crate) syntax: SyntaxNode,
13790}
13791impl ParenGraphPattern {
13792    #[inline]
13793    pub fn path_pattern(&self) -> Option<PathPattern> {
13794        support::child(&self.syntax)
13795    }
13796    #[inline]
13797    pub fn where_clause(&self) -> Option<WhereClause> {
13798        support::child(&self.syntax)
13799    }
13800    #[inline]
13801    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13802        support::token(&self.syntax, SyntaxKind::L_PAREN)
13803    }
13804    #[inline]
13805    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13806        support::token(&self.syntax, SyntaxKind::R_PAREN)
13807    }
13808}
13809
13810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13811pub struct ParenSelect {
13812    pub(crate) syntax: SyntaxNode,
13813}
13814impl ParenSelect {
13815    #[inline]
13816    pub fn select(&self) -> Option<SelectVariant> {
13817        support::child(&self.syntax)
13818    }
13819    #[inline]
13820    pub fn with_clause(&self) -> Option<WithClause> {
13821        support::child(&self.syntax)
13822    }
13823    #[inline]
13824    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13825        support::token(&self.syntax, SyntaxKind::L_PAREN)
13826    }
13827    #[inline]
13828    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13829        support::token(&self.syntax, SyntaxKind::R_PAREN)
13830    }
13831    #[inline]
13832    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
13833        support::token(&self.syntax, SyntaxKind::SEMICOLON)
13834    }
13835}
13836
13837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13838pub struct Partition {
13839    pub(crate) syntax: SyntaxNode,
13840}
13841impl Partition {
13842    #[inline]
13843    pub fn partition_type(&self) -> Option<PartitionType> {
13844        support::child(&self.syntax)
13845    }
13846    #[inline]
13847    pub fn path(&self) -> Option<Path> {
13848        support::child(&self.syntax)
13849    }
13850    #[inline]
13851    pub fn partition_token(&self) -> Option<SyntaxToken> {
13852        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13853    }
13854}
13855
13856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13857pub struct PartitionBy {
13858    pub(crate) syntax: SyntaxNode,
13859}
13860impl PartitionBy {
13861    #[inline]
13862    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13863        support::child(&self.syntax)
13864    }
13865    #[inline]
13866    pub fn by_token(&self) -> Option<SyntaxToken> {
13867        support::token(&self.syntax, SyntaxKind::BY_KW)
13868    }
13869    #[inline]
13870    pub fn ident_token(&self) -> Option<SyntaxToken> {
13871        support::token(&self.syntax, SyntaxKind::IDENT)
13872    }
13873    #[inline]
13874    pub fn partition_token(&self) -> Option<SyntaxToken> {
13875        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13876    }
13877    #[inline]
13878    pub fn range_token(&self) -> Option<SyntaxToken> {
13879        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13880    }
13881}
13882
13883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13884pub struct PartitionDefault {
13885    pub(crate) syntax: SyntaxNode,
13886}
13887impl PartitionDefault {
13888    #[inline]
13889    pub fn default_token(&self) -> Option<SyntaxToken> {
13890        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13891    }
13892}
13893
13894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13895pub struct PartitionForValuesFrom {
13896    pub(crate) syntax: SyntaxNode,
13897}
13898impl PartitionForValuesFrom {
13899    #[inline]
13900    pub fn exprs(&self) -> AstChildren<Expr> {
13901        support::children(&self.syntax)
13902    }
13903    #[inline]
13904    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13905        support::token(&self.syntax, SyntaxKind::L_PAREN)
13906    }
13907    #[inline]
13908    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13909        support::token(&self.syntax, SyntaxKind::R_PAREN)
13910    }
13911    #[inline]
13912    pub fn for_token(&self) -> Option<SyntaxToken> {
13913        support::token(&self.syntax, SyntaxKind::FOR_KW)
13914    }
13915    #[inline]
13916    pub fn from_token(&self) -> Option<SyntaxToken> {
13917        support::token(&self.syntax, SyntaxKind::FROM_KW)
13918    }
13919    #[inline]
13920    pub fn to_token(&self) -> Option<SyntaxToken> {
13921        support::token(&self.syntax, SyntaxKind::TO_KW)
13922    }
13923    #[inline]
13924    pub fn values_token(&self) -> Option<SyntaxToken> {
13925        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13926    }
13927}
13928
13929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13930pub struct PartitionForValuesIn {
13931    pub(crate) syntax: SyntaxNode,
13932}
13933impl PartitionForValuesIn {
13934    #[inline]
13935    pub fn exprs(&self) -> AstChildren<Expr> {
13936        support::children(&self.syntax)
13937    }
13938    #[inline]
13939    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13940        support::token(&self.syntax, SyntaxKind::L_PAREN)
13941    }
13942    #[inline]
13943    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13944        support::token(&self.syntax, SyntaxKind::R_PAREN)
13945    }
13946    #[inline]
13947    pub fn for_token(&self) -> Option<SyntaxToken> {
13948        support::token(&self.syntax, SyntaxKind::FOR_KW)
13949    }
13950    #[inline]
13951    pub fn in_token(&self) -> Option<SyntaxToken> {
13952        support::token(&self.syntax, SyntaxKind::IN_KW)
13953    }
13954    #[inline]
13955    pub fn values_token(&self) -> Option<SyntaxToken> {
13956        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13957    }
13958}
13959
13960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13961pub struct PartitionForValuesWith {
13962    pub(crate) syntax: SyntaxNode,
13963}
13964impl PartitionForValuesWith {
13965    #[inline]
13966    pub fn literal(&self) -> Option<Literal> {
13967        support::child(&self.syntax)
13968    }
13969    #[inline]
13970    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13971        support::token(&self.syntax, SyntaxKind::L_PAREN)
13972    }
13973    #[inline]
13974    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13975        support::token(&self.syntax, SyntaxKind::R_PAREN)
13976    }
13977    #[inline]
13978    pub fn comma_token(&self) -> Option<SyntaxToken> {
13979        support::token(&self.syntax, SyntaxKind::COMMA)
13980    }
13981    #[inline]
13982    pub fn for_token(&self) -> Option<SyntaxToken> {
13983        support::token(&self.syntax, SyntaxKind::FOR_KW)
13984    }
13985    #[inline]
13986    pub fn ident_token(&self) -> Option<SyntaxToken> {
13987        support::token(&self.syntax, SyntaxKind::IDENT)
13988    }
13989    #[inline]
13990    pub fn values_token(&self) -> Option<SyntaxToken> {
13991        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13992    }
13993    #[inline]
13994    pub fn with_token(&self) -> Option<SyntaxToken> {
13995        support::token(&self.syntax, SyntaxKind::WITH_KW)
13996    }
13997}
13998
13999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14000pub struct PartitionItem {
14001    pub(crate) syntax: SyntaxNode,
14002}
14003impl PartitionItem {
14004    #[inline]
14005    pub fn collate(&self) -> Option<Collate> {
14006        support::child(&self.syntax)
14007    }
14008    #[inline]
14009    pub fn expr(&self) -> Option<Expr> {
14010        support::child(&self.syntax)
14011    }
14012}
14013
14014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14015pub struct PartitionItemList {
14016    pub(crate) syntax: SyntaxNode,
14017}
14018impl PartitionItemList {
14019    #[inline]
14020    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
14021        support::children(&self.syntax)
14022    }
14023    #[inline]
14024    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14025        support::token(&self.syntax, SyntaxKind::L_PAREN)
14026    }
14027    #[inline]
14028    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14029        support::token(&self.syntax, SyntaxKind::R_PAREN)
14030    }
14031}
14032
14033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14034pub struct PartitionList {
14035    pub(crate) syntax: SyntaxNode,
14036}
14037impl PartitionList {
14038    #[inline]
14039    pub fn partitions(&self) -> AstChildren<Partition> {
14040        support::children(&self.syntax)
14041    }
14042    #[inline]
14043    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14044        support::token(&self.syntax, SyntaxKind::L_PAREN)
14045    }
14046    #[inline]
14047    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14048        support::token(&self.syntax, SyntaxKind::R_PAREN)
14049    }
14050}
14051
14052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14053pub struct PartitionOf {
14054    pub(crate) syntax: SyntaxNode,
14055}
14056impl PartitionOf {
14057    #[inline]
14058    pub fn path(&self) -> Option<Path> {
14059        support::child(&self.syntax)
14060    }
14061    #[inline]
14062    pub fn of_token(&self) -> Option<SyntaxToken> {
14063        support::token(&self.syntax, SyntaxKind::OF_KW)
14064    }
14065    #[inline]
14066    pub fn partition_token(&self) -> Option<SyntaxToken> {
14067        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
14068    }
14069}
14070
14071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14072pub struct Path {
14073    pub(crate) syntax: SyntaxNode,
14074}
14075impl Path {
14076    #[inline]
14077    pub fn qualifier(&self) -> Option<Path> {
14078        support::child(&self.syntax)
14079    }
14080    #[inline]
14081    pub fn segment(&self) -> Option<PathSegment> {
14082        support::child(&self.syntax)
14083    }
14084    #[inline]
14085    pub fn dot_token(&self) -> Option<SyntaxToken> {
14086        support::token(&self.syntax, SyntaxKind::DOT)
14087    }
14088}
14089
14090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14091pub struct PathFactor {
14092    pub(crate) syntax: SyntaxNode,
14093}
14094impl PathFactor {
14095    #[inline]
14096    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
14097        support::child(&self.syntax)
14098    }
14099    #[inline]
14100    pub fn path_primary(&self) -> Option<PathPrimary> {
14101        support::child(&self.syntax)
14102    }
14103}
14104
14105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14106pub struct PathPattern {
14107    pub(crate) syntax: SyntaxNode,
14108}
14109impl PathPattern {
14110    #[inline]
14111    pub fn path_factor(&self) -> Option<PathFactor> {
14112        support::child(&self.syntax)
14113    }
14114    #[inline]
14115    pub fn path_factors(&self) -> AstChildren<PathFactor> {
14116        support::children(&self.syntax)
14117    }
14118}
14119
14120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14121pub struct PathPatternList {
14122    pub(crate) syntax: SyntaxNode,
14123}
14124impl PathPatternList {
14125    #[inline]
14126    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
14127        support::children(&self.syntax)
14128    }
14129}
14130
14131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14132pub struct PathSegment {
14133    pub(crate) syntax: SyntaxNode,
14134}
14135impl PathSegment {
14136    #[inline]
14137    pub fn name(&self) -> Option<Name> {
14138        support::child(&self.syntax)
14139    }
14140    #[inline]
14141    pub fn name_ref(&self) -> Option<NameRef> {
14142        support::child(&self.syntax)
14143    }
14144}
14145
14146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14147pub struct PathType {
14148    pub(crate) syntax: SyntaxNode,
14149}
14150impl PathType {
14151    #[inline]
14152    pub fn arg_list(&self) -> Option<ArgList> {
14153        support::child(&self.syntax)
14154    }
14155    #[inline]
14156    pub fn path(&self) -> Option<Path> {
14157        support::child(&self.syntax)
14158    }
14159    #[inline]
14160    pub fn setof_token(&self) -> Option<SyntaxToken> {
14161        support::token(&self.syntax, SyntaxKind::SETOF_KW)
14162    }
14163}
14164
14165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14166pub struct PercentType {
14167    pub(crate) syntax: SyntaxNode,
14168}
14169impl PercentType {
14170    #[inline]
14171    pub fn percent_token(&self) -> Option<SyntaxToken> {
14172        support::token(&self.syntax, SyntaxKind::PERCENT)
14173    }
14174    #[inline]
14175    pub fn type_token(&self) -> Option<SyntaxToken> {
14176        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14177    }
14178}
14179
14180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14181pub struct PercentTypeClause {
14182    pub(crate) syntax: SyntaxNode,
14183}
14184impl PercentTypeClause {
14185    #[inline]
14186    pub fn path(&self) -> Option<Path> {
14187        support::child(&self.syntax)
14188    }
14189    #[inline]
14190    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
14191        support::child(&self.syntax)
14192    }
14193}
14194
14195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14196pub struct PositionFn {
14197    pub(crate) syntax: SyntaxNode,
14198}
14199impl PositionFn {
14200    #[inline]
14201    pub fn expr(&self) -> Option<Expr> {
14202        support::child(&self.syntax)
14203    }
14204    #[inline]
14205    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14206        support::token(&self.syntax, SyntaxKind::L_PAREN)
14207    }
14208    #[inline]
14209    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14210        support::token(&self.syntax, SyntaxKind::R_PAREN)
14211    }
14212    #[inline]
14213    pub fn in_token(&self) -> Option<SyntaxToken> {
14214        support::token(&self.syntax, SyntaxKind::IN_KW)
14215    }
14216    #[inline]
14217    pub fn position_token(&self) -> Option<SyntaxToken> {
14218        support::token(&self.syntax, SyntaxKind::POSITION_KW)
14219    }
14220}
14221
14222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14223pub struct PostfixExpr {
14224    pub(crate) syntax: SyntaxNode,
14225}
14226impl PostfixExpr {
14227    #[inline]
14228    pub fn expr(&self) -> Option<Expr> {
14229        support::child(&self.syntax)
14230    }
14231}
14232
14233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14234pub struct PrefixExpr {
14235    pub(crate) syntax: SyntaxNode,
14236}
14237impl PrefixExpr {
14238    #[inline]
14239    pub fn expr(&self) -> Option<Expr> {
14240        support::child(&self.syntax)
14241    }
14242}
14243
14244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14245pub struct Prepare {
14246    pub(crate) syntax: SyntaxNode,
14247}
14248impl Prepare {
14249    #[inline]
14250    pub fn name(&self) -> Option<Name> {
14251        support::child(&self.syntax)
14252    }
14253    #[inline]
14254    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
14255        support::child(&self.syntax)
14256    }
14257    #[inline]
14258    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14259        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14260    }
14261    #[inline]
14262    pub fn as_token(&self) -> Option<SyntaxToken> {
14263        support::token(&self.syntax, SyntaxKind::AS_KW)
14264    }
14265    #[inline]
14266    pub fn prepare_token(&self) -> Option<SyntaxToken> {
14267        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
14268    }
14269}
14270
14271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14272pub struct PrepareTransaction {
14273    pub(crate) syntax: SyntaxNode,
14274}
14275impl PrepareTransaction {
14276    #[inline]
14277    pub fn literal(&self) -> Option<Literal> {
14278        support::child(&self.syntax)
14279    }
14280    #[inline]
14281    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14282        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14283    }
14284    #[inline]
14285    pub fn prepare_token(&self) -> Option<SyntaxToken> {
14286        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
14287    }
14288    #[inline]
14289    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14290        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14291    }
14292}
14293
14294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14295pub struct PreserveRows {
14296    pub(crate) syntax: SyntaxNode,
14297}
14298impl PreserveRows {
14299    #[inline]
14300    pub fn preserve_token(&self) -> Option<SyntaxToken> {
14301        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
14302    }
14303    #[inline]
14304    pub fn rows_token(&self) -> Option<SyntaxToken> {
14305        support::token(&self.syntax, SyntaxKind::ROWS_KW)
14306    }
14307}
14308
14309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14310pub struct PrimaryKeyConstraint {
14311    pub(crate) syntax: SyntaxNode,
14312}
14313impl PrimaryKeyConstraint {
14314    #[inline]
14315    pub fn column_list(&self) -> Option<ColumnList> {
14316        support::child(&self.syntax)
14317    }
14318    #[inline]
14319    pub fn constraint_name(&self) -> Option<ConstraintName> {
14320        support::child(&self.syntax)
14321    }
14322    #[inline]
14323    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
14324        support::child(&self.syntax)
14325    }
14326    #[inline]
14327    pub fn using_index(&self) -> Option<UsingIndex> {
14328        support::child(&self.syntax)
14329    }
14330    #[inline]
14331    pub fn key_token(&self) -> Option<SyntaxToken> {
14332        support::token(&self.syntax, SyntaxKind::KEY_KW)
14333    }
14334    #[inline]
14335    pub fn primary_token(&self) -> Option<SyntaxToken> {
14336        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
14337    }
14338}
14339
14340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14341pub struct PrivilegeTarget {
14342    pub(crate) syntax: SyntaxNode,
14343}
14344impl PrivilegeTarget {
14345    #[inline]
14346    pub fn functions_token(&self) -> Option<SyntaxToken> {
14347        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
14348    }
14349    #[inline]
14350    pub fn large_token(&self) -> Option<SyntaxToken> {
14351        support::token(&self.syntax, SyntaxKind::LARGE_KW)
14352    }
14353    #[inline]
14354    pub fn objects_token(&self) -> Option<SyntaxToken> {
14355        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
14356    }
14357    #[inline]
14358    pub fn routines_token(&self) -> Option<SyntaxToken> {
14359        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
14360    }
14361    #[inline]
14362    pub fn schemas_token(&self) -> Option<SyntaxToken> {
14363        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
14364    }
14365    #[inline]
14366    pub fn sequences_token(&self) -> Option<SyntaxToken> {
14367        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
14368    }
14369    #[inline]
14370    pub fn tables_token(&self) -> Option<SyntaxToken> {
14371        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14372    }
14373    #[inline]
14374    pub fn types_token(&self) -> Option<SyntaxToken> {
14375        support::token(&self.syntax, SyntaxKind::TYPES_KW)
14376    }
14377}
14378
14379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14380pub struct Privileges {
14381    pub(crate) syntax: SyntaxNode,
14382}
14383impl Privileges {
14384    #[inline]
14385    pub fn column_list(&self) -> Option<ColumnList> {
14386        support::child(&self.syntax)
14387    }
14388    #[inline]
14389    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14390        support::child(&self.syntax)
14391    }
14392    #[inline]
14393    pub fn all_token(&self) -> Option<SyntaxToken> {
14394        support::token(&self.syntax, SyntaxKind::ALL_KW)
14395    }
14396    #[inline]
14397    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14398        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14399    }
14400}
14401
14402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14403pub struct Properties {
14404    pub(crate) syntax: SyntaxNode,
14405}
14406impl Properties {
14407    #[inline]
14408    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
14409        support::child(&self.syntax)
14410    }
14411    #[inline]
14412    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14413        support::token(&self.syntax, SyntaxKind::L_PAREN)
14414    }
14415    #[inline]
14416    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14417        support::token(&self.syntax, SyntaxKind::R_PAREN)
14418    }
14419    #[inline]
14420    pub fn properties_token(&self) -> Option<SyntaxToken> {
14421        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
14422    }
14423}
14424
14425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14426pub struct PublicationObject {
14427    pub(crate) syntax: SyntaxNode,
14428}
14429impl PublicationObject {
14430    #[inline]
14431    pub fn column_list(&self) -> Option<ColumnList> {
14432        support::child(&self.syntax)
14433    }
14434    #[inline]
14435    pub fn name_ref(&self) -> Option<NameRef> {
14436        support::child(&self.syntax)
14437    }
14438    #[inline]
14439    pub fn path(&self) -> Option<Path> {
14440        support::child(&self.syntax)
14441    }
14442    #[inline]
14443    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
14444        support::child(&self.syntax)
14445    }
14446    #[inline]
14447    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14448        support::token(&self.syntax, SyntaxKind::L_PAREN)
14449    }
14450    #[inline]
14451    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14452        support::token(&self.syntax, SyntaxKind::R_PAREN)
14453    }
14454    #[inline]
14455    pub fn star_token(&self) -> Option<SyntaxToken> {
14456        support::token(&self.syntax, SyntaxKind::STAR)
14457    }
14458    #[inline]
14459    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
14460        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
14461    }
14462    #[inline]
14463    pub fn in_token(&self) -> Option<SyntaxToken> {
14464        support::token(&self.syntax, SyntaxKind::IN_KW)
14465    }
14466    #[inline]
14467    pub fn only_token(&self) -> Option<SyntaxToken> {
14468        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14469    }
14470    #[inline]
14471    pub fn schema_token(&self) -> Option<SyntaxToken> {
14472        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14473    }
14474    #[inline]
14475    pub fn table_token(&self) -> Option<SyntaxToken> {
14476        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14477    }
14478    #[inline]
14479    pub fn tables_token(&self) -> Option<SyntaxToken> {
14480        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14481    }
14482}
14483
14484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14485pub struct ReadCommitted {
14486    pub(crate) syntax: SyntaxNode,
14487}
14488impl ReadCommitted {
14489    #[inline]
14490    pub fn committed_token(&self) -> Option<SyntaxToken> {
14491        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
14492    }
14493    #[inline]
14494    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14495        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14496    }
14497    #[inline]
14498    pub fn level_token(&self) -> Option<SyntaxToken> {
14499        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14500    }
14501    #[inline]
14502    pub fn read_token(&self) -> Option<SyntaxToken> {
14503        support::token(&self.syntax, SyntaxKind::READ_KW)
14504    }
14505}
14506
14507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14508pub struct ReadOnly {
14509    pub(crate) syntax: SyntaxNode,
14510}
14511impl ReadOnly {
14512    #[inline]
14513    pub fn only_token(&self) -> Option<SyntaxToken> {
14514        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14515    }
14516    #[inline]
14517    pub fn read_token(&self) -> Option<SyntaxToken> {
14518        support::token(&self.syntax, SyntaxKind::READ_KW)
14519    }
14520}
14521
14522#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14523pub struct ReadUncommitted {
14524    pub(crate) syntax: SyntaxNode,
14525}
14526impl ReadUncommitted {
14527    #[inline]
14528    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14529        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14530    }
14531    #[inline]
14532    pub fn level_token(&self) -> Option<SyntaxToken> {
14533        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14534    }
14535    #[inline]
14536    pub fn read_token(&self) -> Option<SyntaxToken> {
14537        support::token(&self.syntax, SyntaxKind::READ_KW)
14538    }
14539    #[inline]
14540    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
14541        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
14542    }
14543}
14544
14545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14546pub struct ReadWrite {
14547    pub(crate) syntax: SyntaxNode,
14548}
14549impl ReadWrite {
14550    #[inline]
14551    pub fn read_token(&self) -> Option<SyntaxToken> {
14552        support::token(&self.syntax, SyntaxKind::READ_KW)
14553    }
14554    #[inline]
14555    pub fn write_token(&self) -> Option<SyntaxToken> {
14556        support::token(&self.syntax, SyntaxKind::WRITE_KW)
14557    }
14558}
14559
14560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14561pub struct Reassign {
14562    pub(crate) syntax: SyntaxNode,
14563}
14564impl Reassign {
14565    #[inline]
14566    pub fn new_roles(&self) -> Option<RoleRefList> {
14567        support::child(&self.syntax)
14568    }
14569    #[inline]
14570    pub fn old_roles(&self) -> Option<RoleRefList> {
14571        support::child(&self.syntax)
14572    }
14573    #[inline]
14574    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14575        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14576    }
14577    #[inline]
14578    pub fn by_token(&self) -> Option<SyntaxToken> {
14579        support::token(&self.syntax, SyntaxKind::BY_KW)
14580    }
14581    #[inline]
14582    pub fn owned_token(&self) -> Option<SyntaxToken> {
14583        support::token(&self.syntax, SyntaxKind::OWNED_KW)
14584    }
14585    #[inline]
14586    pub fn reassign_token(&self) -> Option<SyntaxToken> {
14587        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
14588    }
14589    #[inline]
14590    pub fn to_token(&self) -> Option<SyntaxToken> {
14591        support::token(&self.syntax, SyntaxKind::TO_KW)
14592    }
14593}
14594
14595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14596pub struct ReferencesConstraint {
14597    pub(crate) syntax: SyntaxNode,
14598}
14599impl ReferencesConstraint {
14600    #[inline]
14601    pub fn column(&self) -> Option<NameRef> {
14602        support::child(&self.syntax)
14603    }
14604    #[inline]
14605    pub fn constraint_name(&self) -> Option<ConstraintName> {
14606        support::child(&self.syntax)
14607    }
14608    #[inline]
14609    pub fn match_type(&self) -> Option<MatchType> {
14610        support::child(&self.syntax)
14611    }
14612    #[inline]
14613    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
14614        support::child(&self.syntax)
14615    }
14616    #[inline]
14617    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
14618        support::child(&self.syntax)
14619    }
14620    #[inline]
14621    pub fn table(&self) -> Option<Path> {
14622        support::child(&self.syntax)
14623    }
14624    #[inline]
14625    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14626        support::token(&self.syntax, SyntaxKind::L_PAREN)
14627    }
14628    #[inline]
14629    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14630        support::token(&self.syntax, SyntaxKind::R_PAREN)
14631    }
14632    #[inline]
14633    pub fn references_token(&self) -> Option<SyntaxToken> {
14634        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14635    }
14636}
14637
14638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14639pub struct ReferencesTable {
14640    pub(crate) syntax: SyntaxNode,
14641}
14642impl ReferencesTable {
14643    #[inline]
14644    pub fn column_list(&self) -> Option<ColumnList> {
14645        support::child(&self.syntax)
14646    }
14647    #[inline]
14648    pub fn name_ref(&self) -> Option<NameRef> {
14649        support::child(&self.syntax)
14650    }
14651    #[inline]
14652    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14653        support::token(&self.syntax, SyntaxKind::L_PAREN)
14654    }
14655    #[inline]
14656    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14657        support::token(&self.syntax, SyntaxKind::R_PAREN)
14658    }
14659    #[inline]
14660    pub fn references_token(&self) -> Option<SyntaxToken> {
14661        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14662    }
14663}
14664
14665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14666pub struct Referencing {
14667    pub(crate) syntax: SyntaxNode,
14668}
14669impl Referencing {
14670    #[inline]
14671    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
14672        support::children(&self.syntax)
14673    }
14674    #[inline]
14675    pub fn referencing_token(&self) -> Option<SyntaxToken> {
14676        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
14677    }
14678}
14679
14680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14681pub struct ReferencingTable {
14682    pub(crate) syntax: SyntaxNode,
14683}
14684impl ReferencingTable {
14685    #[inline]
14686    pub fn name_ref(&self) -> Option<NameRef> {
14687        support::child(&self.syntax)
14688    }
14689    #[inline]
14690    pub fn as_token(&self) -> Option<SyntaxToken> {
14691        support::token(&self.syntax, SyntaxKind::AS_KW)
14692    }
14693    #[inline]
14694    pub fn new_token(&self) -> Option<SyntaxToken> {
14695        support::token(&self.syntax, SyntaxKind::NEW_KW)
14696    }
14697    #[inline]
14698    pub fn old_token(&self) -> Option<SyntaxToken> {
14699        support::token(&self.syntax, SyntaxKind::OLD_KW)
14700    }
14701    #[inline]
14702    pub fn table_token(&self) -> Option<SyntaxToken> {
14703        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14704    }
14705}
14706
14707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14708pub struct Refresh {
14709    pub(crate) syntax: SyntaxNode,
14710}
14711impl Refresh {
14712    #[inline]
14713    pub fn path(&self) -> Option<Path> {
14714        support::child(&self.syntax)
14715    }
14716    #[inline]
14717    pub fn with_data(&self) -> Option<WithData> {
14718        support::child(&self.syntax)
14719    }
14720    #[inline]
14721    pub fn with_no_data(&self) -> Option<WithNoData> {
14722        support::child(&self.syntax)
14723    }
14724    #[inline]
14725    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14726        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14727    }
14728    #[inline]
14729    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14730        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14731    }
14732    #[inline]
14733    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14734        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14735    }
14736    #[inline]
14737    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14738        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14739    }
14740    #[inline]
14741    pub fn view_token(&self) -> Option<SyntaxToken> {
14742        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14743    }
14744}
14745
14746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14747pub struct RefreshCollationVersion {
14748    pub(crate) syntax: SyntaxNode,
14749}
14750impl RefreshCollationVersion {
14751    #[inline]
14752    pub fn collation_token(&self) -> Option<SyntaxToken> {
14753        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14754    }
14755    #[inline]
14756    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14757        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14758    }
14759    #[inline]
14760    pub fn version_token(&self) -> Option<SyntaxToken> {
14761        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14762    }
14763}
14764
14765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14766pub struct RefreshVersion {
14767    pub(crate) syntax: SyntaxNode,
14768}
14769impl RefreshVersion {
14770    #[inline]
14771    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14772        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14773    }
14774    #[inline]
14775    pub fn version_token(&self) -> Option<SyntaxToken> {
14776        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14777    }
14778}
14779
14780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14781pub struct Reindex {
14782    pub(crate) syntax: SyntaxNode,
14783}
14784impl Reindex {
14785    #[inline]
14786    pub fn path(&self) -> Option<Path> {
14787        support::child(&self.syntax)
14788    }
14789    #[inline]
14790    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14791        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14792    }
14793    #[inline]
14794    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14795        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14796    }
14797    #[inline]
14798    pub fn database_token(&self) -> Option<SyntaxToken> {
14799        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14800    }
14801    #[inline]
14802    pub fn index_token(&self) -> Option<SyntaxToken> {
14803        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14804    }
14805    #[inline]
14806    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14807        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14808    }
14809    #[inline]
14810    pub fn schema_token(&self) -> Option<SyntaxToken> {
14811        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14812    }
14813    #[inline]
14814    pub fn system_token(&self) -> Option<SyntaxToken> {
14815        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14816    }
14817    #[inline]
14818    pub fn table_token(&self) -> Option<SyntaxToken> {
14819        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14820    }
14821}
14822
14823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14824pub struct RelationName {
14825    pub(crate) syntax: SyntaxNode,
14826}
14827impl RelationName {
14828    #[inline]
14829    pub fn path(&self) -> Option<Path> {
14830        support::child(&self.syntax)
14831    }
14832    #[inline]
14833    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14834        support::token(&self.syntax, SyntaxKind::L_PAREN)
14835    }
14836    #[inline]
14837    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14838        support::token(&self.syntax, SyntaxKind::R_PAREN)
14839    }
14840    #[inline]
14841    pub fn star_token(&self) -> Option<SyntaxToken> {
14842        support::token(&self.syntax, SyntaxKind::STAR)
14843    }
14844    #[inline]
14845    pub fn only_token(&self) -> Option<SyntaxToken> {
14846        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14847    }
14848}
14849
14850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14851pub struct ReleaseSavepoint {
14852    pub(crate) syntax: SyntaxNode,
14853}
14854impl ReleaseSavepoint {
14855    #[inline]
14856    pub fn name_ref(&self) -> Option<NameRef> {
14857        support::child(&self.syntax)
14858    }
14859    #[inline]
14860    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
14861        support::token(&self.syntax, SyntaxKind::SEMICOLON)
14862    }
14863    #[inline]
14864    pub fn release_token(&self) -> Option<SyntaxToken> {
14865        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14866    }
14867    #[inline]
14868    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14869        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14870    }
14871}
14872
14873#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14874pub struct RenameAttribute {
14875    pub(crate) syntax: SyntaxNode,
14876}
14877impl RenameAttribute {
14878    #[inline]
14879    pub fn name(&self) -> Option<Name> {
14880        support::child(&self.syntax)
14881    }
14882    #[inline]
14883    pub fn name_ref(&self) -> Option<NameRef> {
14884        support::child(&self.syntax)
14885    }
14886    #[inline]
14887    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14888        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14889    }
14890    #[inline]
14891    pub fn rename_token(&self) -> Option<SyntaxToken> {
14892        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14893    }
14894    #[inline]
14895    pub fn to_token(&self) -> Option<SyntaxToken> {
14896        support::token(&self.syntax, SyntaxKind::TO_KW)
14897    }
14898}
14899
14900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14901pub struct RenameColumn {
14902    pub(crate) syntax: SyntaxNode,
14903}
14904impl RenameColumn {
14905    #[inline]
14906    pub fn column_token(&self) -> Option<SyntaxToken> {
14907        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14908    }
14909    #[inline]
14910    pub fn rename_token(&self) -> Option<SyntaxToken> {
14911        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14912    }
14913    #[inline]
14914    pub fn to_token(&self) -> Option<SyntaxToken> {
14915        support::token(&self.syntax, SyntaxKind::TO_KW)
14916    }
14917}
14918
14919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14920pub struct RenameConstraint {
14921    pub(crate) syntax: SyntaxNode,
14922}
14923impl RenameConstraint {
14924    #[inline]
14925    pub fn name(&self) -> Option<Name> {
14926        support::child(&self.syntax)
14927    }
14928    #[inline]
14929    pub fn name_ref(&self) -> Option<NameRef> {
14930        support::child(&self.syntax)
14931    }
14932    #[inline]
14933    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14934        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14935    }
14936    #[inline]
14937    pub fn rename_token(&self) -> Option<SyntaxToken> {
14938        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14939    }
14940    #[inline]
14941    pub fn to_token(&self) -> Option<SyntaxToken> {
14942        support::token(&self.syntax, SyntaxKind::TO_KW)
14943    }
14944}
14945
14946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14947pub struct RenameTo {
14948    pub(crate) syntax: SyntaxNode,
14949}
14950impl RenameTo {
14951    #[inline]
14952    pub fn name(&self) -> Option<Name> {
14953        support::child(&self.syntax)
14954    }
14955    #[inline]
14956    pub fn rename_token(&self) -> Option<SyntaxToken> {
14957        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14958    }
14959    #[inline]
14960    pub fn to_token(&self) -> Option<SyntaxToken> {
14961        support::token(&self.syntax, SyntaxKind::TO_KW)
14962    }
14963}
14964
14965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14966pub struct RenameValue {
14967    pub(crate) syntax: SyntaxNode,
14968}
14969impl RenameValue {
14970    #[inline]
14971    pub fn literal(&self) -> Option<Literal> {
14972        support::child(&self.syntax)
14973    }
14974    #[inline]
14975    pub fn rename_token(&self) -> Option<SyntaxToken> {
14976        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14977    }
14978    #[inline]
14979    pub fn to_token(&self) -> Option<SyntaxToken> {
14980        support::token(&self.syntax, SyntaxKind::TO_KW)
14981    }
14982    #[inline]
14983    pub fn value_token(&self) -> Option<SyntaxToken> {
14984        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14985    }
14986}
14987
14988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14989pub struct Repack {
14990    pub(crate) syntax: SyntaxNode,
14991}
14992impl Repack {
14993    #[inline]
14994    pub fn name_ref(&self) -> Option<NameRef> {
14995        support::child(&self.syntax)
14996    }
14997    #[inline]
14998    pub fn option_item_list(&self) -> Option<OptionItemList> {
14999        support::child(&self.syntax)
15000    }
15001    #[inline]
15002    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15003        support::child(&self.syntax)
15004    }
15005    #[inline]
15006    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15007        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15008    }
15009    #[inline]
15010    pub fn index_token(&self) -> Option<SyntaxToken> {
15011        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15012    }
15013    #[inline]
15014    pub fn repack_token(&self) -> Option<SyntaxToken> {
15015        support::token(&self.syntax, SyntaxKind::REPACK_KW)
15016    }
15017    #[inline]
15018    pub fn using_token(&self) -> Option<SyntaxToken> {
15019        support::token(&self.syntax, SyntaxKind::USING_KW)
15020    }
15021}
15022
15023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15024pub struct RepeatableClause {
15025    pub(crate) syntax: SyntaxNode,
15026}
15027impl RepeatableClause {
15028    #[inline]
15029    pub fn expr(&self) -> Option<Expr> {
15030        support::child(&self.syntax)
15031    }
15032    #[inline]
15033    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15034        support::token(&self.syntax, SyntaxKind::L_PAREN)
15035    }
15036    #[inline]
15037    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15038        support::token(&self.syntax, SyntaxKind::R_PAREN)
15039    }
15040    #[inline]
15041    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
15042        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
15043    }
15044}
15045
15046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15047pub struct RepeatableRead {
15048    pub(crate) syntax: SyntaxNode,
15049}
15050impl RepeatableRead {
15051    #[inline]
15052    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15053        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15054    }
15055    #[inline]
15056    pub fn level_token(&self) -> Option<SyntaxToken> {
15057        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15058    }
15059    #[inline]
15060    pub fn read_token(&self) -> Option<SyntaxToken> {
15061        support::token(&self.syntax, SyntaxKind::READ_KW)
15062    }
15063    #[inline]
15064    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
15065        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
15066    }
15067}
15068
15069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15070pub struct ReplicaIdentity {
15071    pub(crate) syntax: SyntaxNode,
15072}
15073impl ReplicaIdentity {
15074    #[inline]
15075    pub fn identity_token(&self) -> Option<SyntaxToken> {
15076        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15077    }
15078    #[inline]
15079    pub fn replica_token(&self) -> Option<SyntaxToken> {
15080        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
15081    }
15082}
15083
15084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15085pub struct Reset {
15086    pub(crate) syntax: SyntaxNode,
15087}
15088impl Reset {
15089    #[inline]
15090    pub fn name_ref(&self) -> Option<NameRef> {
15091        support::child(&self.syntax)
15092    }
15093    #[inline]
15094    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15095        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15096    }
15097    #[inline]
15098    pub fn all_token(&self) -> Option<SyntaxToken> {
15099        support::token(&self.syntax, SyntaxKind::ALL_KW)
15100    }
15101    #[inline]
15102    pub fn reset_token(&self) -> Option<SyntaxToken> {
15103        support::token(&self.syntax, SyntaxKind::RESET_KW)
15104    }
15105}
15106
15107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15108pub struct ResetConfigParam {
15109    pub(crate) syntax: SyntaxNode,
15110}
15111impl ResetConfigParam {
15112    #[inline]
15113    pub fn path(&self) -> Option<Path> {
15114        support::child(&self.syntax)
15115    }
15116    #[inline]
15117    pub fn all_token(&self) -> Option<SyntaxToken> {
15118        support::token(&self.syntax, SyntaxKind::ALL_KW)
15119    }
15120    #[inline]
15121    pub fn reset_token(&self) -> Option<SyntaxToken> {
15122        support::token(&self.syntax, SyntaxKind::RESET_KW)
15123    }
15124}
15125
15126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15127pub struct ResetFuncOption {
15128    pub(crate) syntax: SyntaxNode,
15129}
15130impl ResetFuncOption {
15131    #[inline]
15132    pub fn name_ref(&self) -> Option<NameRef> {
15133        support::child(&self.syntax)
15134    }
15135    #[inline]
15136    pub fn reset_token(&self) -> Option<SyntaxToken> {
15137        support::token(&self.syntax, SyntaxKind::RESET_KW)
15138    }
15139}
15140
15141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15142pub struct ResetOptions {
15143    pub(crate) syntax: SyntaxNode,
15144}
15145impl ResetOptions {
15146    #[inline]
15147    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15148        support::token(&self.syntax, SyntaxKind::L_PAREN)
15149    }
15150    #[inline]
15151    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15152        support::token(&self.syntax, SyntaxKind::R_PAREN)
15153    }
15154    #[inline]
15155    pub fn reset_token(&self) -> Option<SyntaxToken> {
15156        support::token(&self.syntax, SyntaxKind::RESET_KW)
15157    }
15158}
15159
15160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15161pub struct ResetSessionAuth {
15162    pub(crate) syntax: SyntaxNode,
15163}
15164impl ResetSessionAuth {
15165    #[inline]
15166    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15167        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15168    }
15169    #[inline]
15170    pub fn authorization_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
15172    }
15173    #[inline]
15174    pub fn reset_token(&self) -> Option<SyntaxToken> {
15175        support::token(&self.syntax, SyntaxKind::RESET_KW)
15176    }
15177    #[inline]
15178    pub fn session_token(&self) -> Option<SyntaxToken> {
15179        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15180    }
15181}
15182
15183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15184pub struct Restart {
15185    pub(crate) syntax: SyntaxNode,
15186}
15187impl Restart {
15188    #[inline]
15189    pub fn restart_token(&self) -> Option<SyntaxToken> {
15190        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15191    }
15192    #[inline]
15193    pub fn with_token(&self) -> Option<SyntaxToken> {
15194        support::token(&self.syntax, SyntaxKind::WITH_KW)
15195    }
15196}
15197
15198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15199pub struct Restrict {
15200    pub(crate) syntax: SyntaxNode,
15201}
15202impl Restrict {
15203    #[inline]
15204    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15205        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15206    }
15207}
15208
15209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15210pub struct RetType {
15211    pub(crate) syntax: SyntaxNode,
15212}
15213impl RetType {
15214    #[inline]
15215    pub fn table_arg_list(&self) -> Option<TableArgList> {
15216        support::child(&self.syntax)
15217    }
15218    #[inline]
15219    pub fn ty(&self) -> Option<Type> {
15220        support::child(&self.syntax)
15221    }
15222    #[inline]
15223    pub fn returns_token(&self) -> Option<SyntaxToken> {
15224        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
15225    }
15226    #[inline]
15227    pub fn table_token(&self) -> Option<SyntaxToken> {
15228        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15229    }
15230}
15231
15232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15233pub struct ReturnFuncOption {
15234    pub(crate) syntax: SyntaxNode,
15235}
15236impl ReturnFuncOption {
15237    #[inline]
15238    pub fn expr(&self) -> Option<Expr> {
15239        support::child(&self.syntax)
15240    }
15241    #[inline]
15242    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15243        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15244    }
15245    #[inline]
15246    pub fn return_token(&self) -> Option<SyntaxToken> {
15247        support::token(&self.syntax, SyntaxKind::RETURN_KW)
15248    }
15249}
15250
15251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15252pub struct ReturningClause {
15253    pub(crate) syntax: SyntaxNode,
15254}
15255impl ReturningClause {
15256    #[inline]
15257    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
15258        support::child(&self.syntax)
15259    }
15260    #[inline]
15261    pub fn target_list(&self) -> Option<TargetList> {
15262        support::child(&self.syntax)
15263    }
15264    #[inline]
15265    pub fn returning_token(&self) -> Option<SyntaxToken> {
15266        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
15267    }
15268}
15269
15270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15271pub struct ReturningOption {
15272    pub(crate) syntax: SyntaxNode,
15273}
15274impl ReturningOption {
15275    #[inline]
15276    pub fn name(&self) -> Option<Name> {
15277        support::child(&self.syntax)
15278    }
15279    #[inline]
15280    pub fn as_token(&self) -> Option<SyntaxToken> {
15281        support::token(&self.syntax, SyntaxKind::AS_KW)
15282    }
15283    #[inline]
15284    pub fn new_token(&self) -> Option<SyntaxToken> {
15285        support::token(&self.syntax, SyntaxKind::NEW_KW)
15286    }
15287    #[inline]
15288    pub fn old_token(&self) -> Option<SyntaxToken> {
15289        support::token(&self.syntax, SyntaxKind::OLD_KW)
15290    }
15291}
15292
15293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15294pub struct ReturningOptionList {
15295    pub(crate) syntax: SyntaxNode,
15296}
15297impl ReturningOptionList {
15298    #[inline]
15299    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
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    #[inline]
15311    pub fn with_token(&self) -> Option<SyntaxToken> {
15312        support::token(&self.syntax, SyntaxKind::WITH_KW)
15313    }
15314}
15315
15316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15317pub struct Revoke {
15318    pub(crate) syntax: SyntaxNode,
15319}
15320impl Revoke {
15321    #[inline]
15322    pub fn name_refs(&self) -> AstChildren<NameRef> {
15323        support::children(&self.syntax)
15324    }
15325    #[inline]
15326    pub fn paths(&self) -> AstChildren<Path> {
15327        support::children(&self.syntax)
15328    }
15329    #[inline]
15330    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
15331        support::child(&self.syntax)
15332    }
15333    #[inline]
15334    pub fn role_ref(&self) -> Option<RoleRef> {
15335        support::child(&self.syntax)
15336    }
15337    #[inline]
15338    pub fn role_ref_list(&self) -> Option<RoleRefList> {
15339        support::child(&self.syntax)
15340    }
15341    #[inline]
15342    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15343        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15344    }
15345    #[inline]
15346    pub fn all_token(&self) -> Option<SyntaxToken> {
15347        support::token(&self.syntax, SyntaxKind::ALL_KW)
15348    }
15349    #[inline]
15350    pub fn by_token(&self) -> Option<SyntaxToken> {
15351        support::token(&self.syntax, SyntaxKind::BY_KW)
15352    }
15353    #[inline]
15354    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15355        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15356    }
15357    #[inline]
15358    pub fn for_token(&self) -> Option<SyntaxToken> {
15359        support::token(&self.syntax, SyntaxKind::FOR_KW)
15360    }
15361    #[inline]
15362    pub fn from_token(&self) -> Option<SyntaxToken> {
15363        support::token(&self.syntax, SyntaxKind::FROM_KW)
15364    }
15365    #[inline]
15366    pub fn grant_token(&self) -> Option<SyntaxToken> {
15367        support::token(&self.syntax, SyntaxKind::GRANT_KW)
15368    }
15369    #[inline]
15370    pub fn granted_token(&self) -> Option<SyntaxToken> {
15371        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
15372    }
15373    #[inline]
15374    pub fn in_token(&self) -> Option<SyntaxToken> {
15375        support::token(&self.syntax, SyntaxKind::IN_KW)
15376    }
15377    #[inline]
15378    pub fn on_token(&self) -> Option<SyntaxToken> {
15379        support::token(&self.syntax, SyntaxKind::ON_KW)
15380    }
15381    #[inline]
15382    pub fn option_token(&self) -> Option<SyntaxToken> {
15383        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15384    }
15385    #[inline]
15386    pub fn privileges_token(&self) -> Option<SyntaxToken> {
15387        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
15388    }
15389    #[inline]
15390    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15391        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15392    }
15393    #[inline]
15394    pub fn revoke_token(&self) -> Option<SyntaxToken> {
15395        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
15396    }
15397    #[inline]
15398    pub fn schema_token(&self) -> Option<SyntaxToken> {
15399        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15400    }
15401    #[inline]
15402    pub fn table_token(&self) -> Option<SyntaxToken> {
15403        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15404    }
15405    #[inline]
15406    pub fn tables_token(&self) -> Option<SyntaxToken> {
15407        support::token(&self.syntax, SyntaxKind::TABLES_KW)
15408    }
15409}
15410
15411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15412pub struct RevokeCommand {
15413    pub(crate) syntax: SyntaxNode,
15414}
15415impl RevokeCommand {
15416    #[inline]
15417    pub fn role_ref(&self) -> Option<RoleRef> {
15418        support::child(&self.syntax)
15419    }
15420    #[inline]
15421    pub fn all_token(&self) -> Option<SyntaxToken> {
15422        support::token(&self.syntax, SyntaxKind::ALL_KW)
15423    }
15424    #[inline]
15425    pub fn alter_token(&self) -> Option<SyntaxToken> {
15426        support::token(&self.syntax, SyntaxKind::ALTER_KW)
15427    }
15428    #[inline]
15429    pub fn create_token(&self) -> Option<SyntaxToken> {
15430        support::token(&self.syntax, SyntaxKind::CREATE_KW)
15431    }
15432    #[inline]
15433    pub fn delete_token(&self) -> Option<SyntaxToken> {
15434        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15435    }
15436    #[inline]
15437    pub fn execute_token(&self) -> Option<SyntaxToken> {
15438        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
15439    }
15440    #[inline]
15441    pub fn ident_token(&self) -> Option<SyntaxToken> {
15442        support::token(&self.syntax, SyntaxKind::IDENT)
15443    }
15444    #[inline]
15445    pub fn insert_token(&self) -> Option<SyntaxToken> {
15446        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15447    }
15448    #[inline]
15449    pub fn references_token(&self) -> Option<SyntaxToken> {
15450        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
15451    }
15452    #[inline]
15453    pub fn select_token(&self) -> Option<SyntaxToken> {
15454        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15455    }
15456    #[inline]
15457    pub fn system_token(&self) -> Option<SyntaxToken> {
15458        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
15459    }
15460    #[inline]
15461    pub fn temp_token(&self) -> Option<SyntaxToken> {
15462        support::token(&self.syntax, SyntaxKind::TEMP_KW)
15463    }
15464    #[inline]
15465    pub fn temporary_token(&self) -> Option<SyntaxToken> {
15466        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
15467    }
15468    #[inline]
15469    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15470        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15471    }
15472    #[inline]
15473    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15474        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15475    }
15476    #[inline]
15477    pub fn update_token(&self) -> Option<SyntaxToken> {
15478        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15479    }
15480}
15481
15482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15483pub struct RevokeCommandList {
15484    pub(crate) syntax: SyntaxNode,
15485}
15486impl RevokeCommandList {
15487    #[inline]
15488    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
15489        support::children(&self.syntax)
15490    }
15491}
15492
15493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15494pub struct RevokeDefaultPrivileges {
15495    pub(crate) syntax: SyntaxNode,
15496}
15497impl RevokeDefaultPrivileges {
15498    #[inline]
15499    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
15500        support::child(&self.syntax)
15501    }
15502    #[inline]
15503    pub fn privileges(&self) -> Option<Privileges> {
15504        support::child(&self.syntax)
15505    }
15506    #[inline]
15507    pub fn role_ref_list(&self) -> Option<RoleRefList> {
15508        support::child(&self.syntax)
15509    }
15510    #[inline]
15511    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15512        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15513    }
15514    #[inline]
15515    pub fn for_token(&self) -> Option<SyntaxToken> {
15516        support::token(&self.syntax, SyntaxKind::FOR_KW)
15517    }
15518    #[inline]
15519    pub fn from_token(&self) -> Option<SyntaxToken> {
15520        support::token(&self.syntax, SyntaxKind::FROM_KW)
15521    }
15522    #[inline]
15523    pub fn grant_token(&self) -> Option<SyntaxToken> {
15524        support::token(&self.syntax, SyntaxKind::GRANT_KW)
15525    }
15526    #[inline]
15527    pub fn on_token(&self) -> Option<SyntaxToken> {
15528        support::token(&self.syntax, SyntaxKind::ON_KW)
15529    }
15530    #[inline]
15531    pub fn option_token(&self) -> Option<SyntaxToken> {
15532        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15533    }
15534    #[inline]
15535    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15536        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15537    }
15538    #[inline]
15539    pub fn revoke_token(&self) -> Option<SyntaxToken> {
15540        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
15541    }
15542}
15543
15544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15545pub struct Role {
15546    pub(crate) syntax: SyntaxNode,
15547}
15548impl Role {
15549    #[inline]
15550    pub fn name(&self) -> Option<Name> {
15551        support::child(&self.syntax)
15552    }
15553    #[inline]
15554    pub fn current_role_token(&self) -> Option<SyntaxToken> {
15555        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
15556    }
15557    #[inline]
15558    pub fn current_user_token(&self) -> Option<SyntaxToken> {
15559        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
15560    }
15561    #[inline]
15562    pub fn group_token(&self) -> Option<SyntaxToken> {
15563        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15564    }
15565    #[inline]
15566    pub fn session_user_token(&self) -> Option<SyntaxToken> {
15567        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
15568    }
15569}
15570
15571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15572pub struct RoleOption {
15573    pub(crate) syntax: SyntaxNode,
15574}
15575impl RoleOption {
15576    #[inline]
15577    pub fn inherit_token(&self) -> Option<SyntaxToken> {
15578        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
15579    }
15580}
15581
15582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15583pub struct RoleOptionList {
15584    pub(crate) syntax: SyntaxNode,
15585}
15586impl RoleOptionList {
15587    #[inline]
15588    pub fn role_options(&self) -> AstChildren<RoleOption> {
15589        support::children(&self.syntax)
15590    }
15591    #[inline]
15592    pub fn with_token(&self) -> Option<SyntaxToken> {
15593        support::token(&self.syntax, SyntaxKind::WITH_KW)
15594    }
15595}
15596
15597#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15598pub struct RoleRef {
15599    pub(crate) syntax: SyntaxNode,
15600}
15601impl RoleRef {
15602    #[inline]
15603    pub fn name_ref(&self) -> Option<NameRef> {
15604        support::child(&self.syntax)
15605    }
15606    #[inline]
15607    pub fn current_role_token(&self) -> Option<SyntaxToken> {
15608        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
15609    }
15610    #[inline]
15611    pub fn current_user_token(&self) -> Option<SyntaxToken> {
15612        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
15613    }
15614    #[inline]
15615    pub fn group_token(&self) -> Option<SyntaxToken> {
15616        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15617    }
15618    #[inline]
15619    pub fn session_user_token(&self) -> Option<SyntaxToken> {
15620        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
15621    }
15622}
15623
15624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15625pub struct RoleRefList {
15626    pub(crate) syntax: SyntaxNode,
15627}
15628impl RoleRefList {
15629    #[inline]
15630    pub fn role_refs(&self) -> AstChildren<RoleRef> {
15631        support::children(&self.syntax)
15632    }
15633}
15634
15635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15636pub struct Rollback {
15637    pub(crate) syntax: SyntaxNode,
15638}
15639impl Rollback {
15640    #[inline]
15641    pub fn literal(&self) -> Option<Literal> {
15642        support::child(&self.syntax)
15643    }
15644    #[inline]
15645    pub fn name_ref(&self) -> Option<NameRef> {
15646        support::child(&self.syntax)
15647    }
15648    #[inline]
15649    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15650        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15651    }
15652    #[inline]
15653    pub fn abort_token(&self) -> Option<SyntaxToken> {
15654        support::token(&self.syntax, SyntaxKind::ABORT_KW)
15655    }
15656    #[inline]
15657    pub fn and_token(&self) -> Option<SyntaxToken> {
15658        support::token(&self.syntax, SyntaxKind::AND_KW)
15659    }
15660    #[inline]
15661    pub fn chain_token(&self) -> Option<SyntaxToken> {
15662        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
15663    }
15664    #[inline]
15665    pub fn no_token(&self) -> Option<SyntaxToken> {
15666        support::token(&self.syntax, SyntaxKind::NO_KW)
15667    }
15668    #[inline]
15669    pub fn prepared_token(&self) -> Option<SyntaxToken> {
15670        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
15671    }
15672    #[inline]
15673    pub fn rollback_token(&self) -> Option<SyntaxToken> {
15674        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
15675    }
15676    #[inline]
15677    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15678        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15679    }
15680    #[inline]
15681    pub fn to_token(&self) -> Option<SyntaxToken> {
15682        support::token(&self.syntax, SyntaxKind::TO_KW)
15683    }
15684    #[inline]
15685    pub fn transaction_token(&self) -> Option<SyntaxToken> {
15686        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
15687    }
15688    #[inline]
15689    pub fn work_token(&self) -> Option<SyntaxToken> {
15690        support::token(&self.syntax, SyntaxKind::WORK_KW)
15691    }
15692}
15693
15694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15695pub struct Row {
15696    pub(crate) syntax: SyntaxNode,
15697}
15698impl Row {
15699    #[inline]
15700    pub fn exprs(&self) -> AstChildren<Expr> {
15701        support::children(&self.syntax)
15702    }
15703}
15704
15705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15706pub struct RowList {
15707    pub(crate) syntax: SyntaxNode,
15708}
15709impl RowList {
15710    #[inline]
15711    pub fn rows(&self) -> AstChildren<Row> {
15712        support::children(&self.syntax)
15713    }
15714}
15715
15716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15717pub struct RowsFuncOption {
15718    pub(crate) syntax: SyntaxNode,
15719}
15720impl RowsFuncOption {
15721    #[inline]
15722    pub fn rows_token(&self) -> Option<SyntaxToken> {
15723        support::token(&self.syntax, SyntaxKind::ROWS_KW)
15724    }
15725}
15726
15727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15728pub struct RuleDo {
15729    pub(crate) syntax: SyntaxNode,
15730}
15731impl RuleDo {
15732    #[inline]
15733    pub fn rule_action(&self) -> Option<RuleAction> {
15734        support::child(&self.syntax)
15735    }
15736    #[inline]
15737    pub fn also_token(&self) -> Option<SyntaxToken> {
15738        support::token(&self.syntax, SyntaxKind::ALSO_KW)
15739    }
15740    #[inline]
15741    pub fn do_token(&self) -> Option<SyntaxToken> {
15742        support::token(&self.syntax, SyntaxKind::DO_KW)
15743    }
15744    #[inline]
15745    pub fn instead_token(&self) -> Option<SyntaxToken> {
15746        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15747    }
15748}
15749
15750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15751pub struct RuleOn {
15752    pub(crate) syntax: SyntaxNode,
15753}
15754impl RuleOn {
15755    #[inline]
15756    pub fn path(&self) -> Option<Path> {
15757        support::child(&self.syntax)
15758    }
15759    #[inline]
15760    pub fn where_clause(&self) -> Option<WhereClause> {
15761        support::child(&self.syntax)
15762    }
15763    #[inline]
15764    pub fn delete_token(&self) -> Option<SyntaxToken> {
15765        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15766    }
15767    #[inline]
15768    pub fn ident_token(&self) -> Option<SyntaxToken> {
15769        support::token(&self.syntax, SyntaxKind::IDENT)
15770    }
15771    #[inline]
15772    pub fn insert_token(&self) -> Option<SyntaxToken> {
15773        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15774    }
15775    #[inline]
15776    pub fn on_token(&self) -> Option<SyntaxToken> {
15777        support::token(&self.syntax, SyntaxKind::ON_KW)
15778    }
15779    #[inline]
15780    pub fn select_token(&self) -> Option<SyntaxToken> {
15781        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15782    }
15783    #[inline]
15784    pub fn to_token(&self) -> Option<SyntaxToken> {
15785        support::token(&self.syntax, SyntaxKind::TO_KW)
15786    }
15787    #[inline]
15788    pub fn update_token(&self) -> Option<SyntaxToken> {
15789        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15790    }
15791}
15792
15793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15794pub struct RuleStmtList {
15795    pub(crate) syntax: SyntaxNode,
15796}
15797impl RuleStmtList {
15798    #[inline]
15799    pub fn rule_stmts(&self) -> AstChildren<RuleStmt> {
15800        support::children(&self.syntax)
15801    }
15802    #[inline]
15803    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15804        support::token(&self.syntax, SyntaxKind::L_PAREN)
15805    }
15806    #[inline]
15807    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15808        support::token(&self.syntax, SyntaxKind::R_PAREN)
15809    }
15810}
15811
15812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15813pub struct Savepoint {
15814    pub(crate) syntax: SyntaxNode,
15815}
15816impl Savepoint {
15817    #[inline]
15818    pub fn name(&self) -> Option<Name> {
15819        support::child(&self.syntax)
15820    }
15821    #[inline]
15822    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15823        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15824    }
15825    #[inline]
15826    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15827        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15828    }
15829}
15830
15831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15832pub struct SecurityFuncOption {
15833    pub(crate) syntax: SyntaxNode,
15834}
15835impl SecurityFuncOption {
15836    #[inline]
15837    pub fn definer_token(&self) -> Option<SyntaxToken> {
15838        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15839    }
15840    #[inline]
15841    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15842        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15843    }
15844    #[inline]
15845    pub fn security_token(&self) -> Option<SyntaxToken> {
15846        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15847    }
15848}
15849
15850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15851pub struct SecurityLabel {
15852    pub(crate) syntax: SyntaxNode,
15853}
15854impl SecurityLabel {
15855    #[inline]
15856    pub fn aggregate(&self) -> Option<Aggregate> {
15857        support::child(&self.syntax)
15858    }
15859    #[inline]
15860    pub fn for_provider(&self) -> Option<ForProvider> {
15861        support::child(&self.syntax)
15862    }
15863    #[inline]
15864    pub fn function_sig(&self) -> Option<FunctionSig> {
15865        support::child(&self.syntax)
15866    }
15867    #[inline]
15868    pub fn literal(&self) -> Option<Literal> {
15869        support::child(&self.syntax)
15870    }
15871    #[inline]
15872    pub fn path(&self) -> Option<Path> {
15873        support::child(&self.syntax)
15874    }
15875    #[inline]
15876    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
15877        support::token(&self.syntax, SyntaxKind::SEMICOLON)
15878    }
15879    #[inline]
15880    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15881        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15882    }
15883    #[inline]
15884    pub fn column_token(&self) -> Option<SyntaxToken> {
15885        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15886    }
15887    #[inline]
15888    pub fn database_token(&self) -> Option<SyntaxToken> {
15889        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15890    }
15891    #[inline]
15892    pub fn domain_token(&self) -> Option<SyntaxToken> {
15893        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15894    }
15895    #[inline]
15896    pub fn event_token(&self) -> Option<SyntaxToken> {
15897        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15898    }
15899    #[inline]
15900    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15901        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15902    }
15903    #[inline]
15904    pub fn function_token(&self) -> Option<SyntaxToken> {
15905        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15906    }
15907    #[inline]
15908    pub fn is_token(&self) -> Option<SyntaxToken> {
15909        support::token(&self.syntax, SyntaxKind::IS_KW)
15910    }
15911    #[inline]
15912    pub fn label_token(&self) -> Option<SyntaxToken> {
15913        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15914    }
15915    #[inline]
15916    pub fn language_token(&self) -> Option<SyntaxToken> {
15917        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15918    }
15919    #[inline]
15920    pub fn large_token(&self) -> Option<SyntaxToken> {
15921        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15922    }
15923    #[inline]
15924    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15925        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15926    }
15927    #[inline]
15928    pub fn null_token(&self) -> Option<SyntaxToken> {
15929        support::token(&self.syntax, SyntaxKind::NULL_KW)
15930    }
15931    #[inline]
15932    pub fn object_token(&self) -> Option<SyntaxToken> {
15933        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15934    }
15935    #[inline]
15936    pub fn on_token(&self) -> Option<SyntaxToken> {
15937        support::token(&self.syntax, SyntaxKind::ON_KW)
15938    }
15939    #[inline]
15940    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15941        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15942    }
15943    #[inline]
15944    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15945        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15946    }
15947    #[inline]
15948    pub fn publication_token(&self) -> Option<SyntaxToken> {
15949        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15950    }
15951    #[inline]
15952    pub fn role_token(&self) -> Option<SyntaxToken> {
15953        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15954    }
15955    #[inline]
15956    pub fn routine_token(&self) -> Option<SyntaxToken> {
15957        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15958    }
15959    #[inline]
15960    pub fn schema_token(&self) -> Option<SyntaxToken> {
15961        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15962    }
15963    #[inline]
15964    pub fn security_token(&self) -> Option<SyntaxToken> {
15965        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15966    }
15967    #[inline]
15968    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15969        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15970    }
15971    #[inline]
15972    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15973        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15974    }
15975    #[inline]
15976    pub fn table_token(&self) -> Option<SyntaxToken> {
15977        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15978    }
15979    #[inline]
15980    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15981        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15982    }
15983    #[inline]
15984    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15985        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15986    }
15987    #[inline]
15988    pub fn type_token(&self) -> Option<SyntaxToken> {
15989        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15990    }
15991    #[inline]
15992    pub fn view_token(&self) -> Option<SyntaxToken> {
15993        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15994    }
15995}
15996
15997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15998pub struct Select {
15999    pub(crate) syntax: SyntaxNode,
16000}
16001impl Select {
16002    #[inline]
16003    pub fn fetch_clause(&self) -> Option<FetchClause> {
16004        support::child(&self.syntax)
16005    }
16006    #[inline]
16007    pub fn filter_clause(&self) -> Option<FilterClause> {
16008        support::child(&self.syntax)
16009    }
16010    #[inline]
16011    pub fn from_clause(&self) -> Option<FromClause> {
16012        support::child(&self.syntax)
16013    }
16014    #[inline]
16015    pub fn group_by_clause(&self) -> Option<GroupByClause> {
16016        support::child(&self.syntax)
16017    }
16018    #[inline]
16019    pub fn having_clause(&self) -> Option<HavingClause> {
16020        support::child(&self.syntax)
16021    }
16022    #[inline]
16023    pub fn limit_clause(&self) -> Option<LimitClause> {
16024        support::child(&self.syntax)
16025    }
16026    #[inline]
16027    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
16028        support::children(&self.syntax)
16029    }
16030    #[inline]
16031    pub fn offset_clause(&self) -> Option<OffsetClause> {
16032        support::child(&self.syntax)
16033    }
16034    #[inline]
16035    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16036        support::child(&self.syntax)
16037    }
16038    #[inline]
16039    pub fn select_clause(&self) -> Option<SelectClause> {
16040        support::child(&self.syntax)
16041    }
16042    #[inline]
16043    pub fn where_clause(&self) -> Option<WhereClause> {
16044        support::child(&self.syntax)
16045    }
16046    #[inline]
16047    pub fn window_clause(&self) -> Option<WindowClause> {
16048        support::child(&self.syntax)
16049    }
16050    #[inline]
16051    pub fn with_clause(&self) -> Option<WithClause> {
16052        support::child(&self.syntax)
16053    }
16054    #[inline]
16055    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16056        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16057    }
16058}
16059
16060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16061pub struct SelectClause {
16062    pub(crate) syntax: SyntaxNode,
16063}
16064impl SelectClause {
16065    #[inline]
16066    pub fn distinct_clause(&self) -> Option<DistinctClause> {
16067        support::child(&self.syntax)
16068    }
16069    #[inline]
16070    pub fn target_list(&self) -> Option<TargetList> {
16071        support::child(&self.syntax)
16072    }
16073    #[inline]
16074    pub fn all_token(&self) -> Option<SyntaxToken> {
16075        support::token(&self.syntax, SyntaxKind::ALL_KW)
16076    }
16077    #[inline]
16078    pub fn select_token(&self) -> Option<SyntaxToken> {
16079        support::token(&self.syntax, SyntaxKind::SELECT_KW)
16080    }
16081}
16082
16083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16084pub struct SelectInto {
16085    pub(crate) syntax: SyntaxNode,
16086}
16087impl SelectInto {
16088    #[inline]
16089    pub fn filter_clause(&self) -> Option<FilterClause> {
16090        support::child(&self.syntax)
16091    }
16092    #[inline]
16093    pub fn from_clause(&self) -> Option<FromClause> {
16094        support::child(&self.syntax)
16095    }
16096    #[inline]
16097    pub fn group_by_clause(&self) -> Option<GroupByClause> {
16098        support::child(&self.syntax)
16099    }
16100    #[inline]
16101    pub fn having_clause(&self) -> Option<HavingClause> {
16102        support::child(&self.syntax)
16103    }
16104    #[inline]
16105    pub fn into_clause(&self) -> Option<IntoClause> {
16106        support::child(&self.syntax)
16107    }
16108    #[inline]
16109    pub fn limit_clause(&self) -> Option<LimitClause> {
16110        support::child(&self.syntax)
16111    }
16112    #[inline]
16113    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
16114        support::children(&self.syntax)
16115    }
16116    #[inline]
16117    pub fn offset_clause(&self) -> Option<OffsetClause> {
16118        support::child(&self.syntax)
16119    }
16120    #[inline]
16121    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16122        support::child(&self.syntax)
16123    }
16124    #[inline]
16125    pub fn select_clause(&self) -> Option<SelectClause> {
16126        support::child(&self.syntax)
16127    }
16128    #[inline]
16129    pub fn where_clause(&self) -> Option<WhereClause> {
16130        support::child(&self.syntax)
16131    }
16132    #[inline]
16133    pub fn window_clause(&self) -> Option<WindowClause> {
16134        support::child(&self.syntax)
16135    }
16136    #[inline]
16137    pub fn with_clause(&self) -> Option<WithClause> {
16138        support::child(&self.syntax)
16139    }
16140    #[inline]
16141    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16142        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16143    }
16144}
16145
16146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16147pub struct SequenceOption {
16148    pub(crate) syntax: SyntaxNode,
16149}
16150impl SequenceOption {
16151    #[inline]
16152    pub fn literal(&self) -> Option<Literal> {
16153        support::child(&self.syntax)
16154    }
16155    #[inline]
16156    pub fn name_ref(&self) -> Option<NameRef> {
16157        support::child(&self.syntax)
16158    }
16159    #[inline]
16160    pub fn path(&self) -> Option<Path> {
16161        support::child(&self.syntax)
16162    }
16163    #[inline]
16164    pub fn ty(&self) -> Option<Type> {
16165        support::child(&self.syntax)
16166    }
16167    #[inline]
16168    pub fn as_token(&self) -> Option<SyntaxToken> {
16169        support::token(&self.syntax, SyntaxKind::AS_KW)
16170    }
16171    #[inline]
16172    pub fn by_token(&self) -> Option<SyntaxToken> {
16173        support::token(&self.syntax, SyntaxKind::BY_KW)
16174    }
16175    #[inline]
16176    pub fn cycle_token(&self) -> Option<SyntaxToken> {
16177        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
16178    }
16179    #[inline]
16180    pub fn increment_token(&self) -> Option<SyntaxToken> {
16181        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
16182    }
16183    #[inline]
16184    pub fn logged_token(&self) -> Option<SyntaxToken> {
16185        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
16186    }
16187    #[inline]
16188    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
16189        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
16190    }
16191    #[inline]
16192    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
16193        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
16194    }
16195    #[inline]
16196    pub fn name_token(&self) -> Option<SyntaxToken> {
16197        support::token(&self.syntax, SyntaxKind::NAME_KW)
16198    }
16199    #[inline]
16200    pub fn no_token(&self) -> Option<SyntaxToken> {
16201        support::token(&self.syntax, SyntaxKind::NO_KW)
16202    }
16203    #[inline]
16204    pub fn none_token(&self) -> Option<SyntaxToken> {
16205        support::token(&self.syntax, SyntaxKind::NONE_KW)
16206    }
16207    #[inline]
16208    pub fn owned_token(&self) -> Option<SyntaxToken> {
16209        support::token(&self.syntax, SyntaxKind::OWNED_KW)
16210    }
16211    #[inline]
16212    pub fn restart_token(&self) -> Option<SyntaxToken> {
16213        support::token(&self.syntax, SyntaxKind::RESTART_KW)
16214    }
16215    #[inline]
16216    pub fn sequence_token(&self) -> Option<SyntaxToken> {
16217        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
16218    }
16219    #[inline]
16220    pub fn start_token(&self) -> Option<SyntaxToken> {
16221        support::token(&self.syntax, SyntaxKind::START_KW)
16222    }
16223    #[inline]
16224    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16225        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16226    }
16227    #[inline]
16228    pub fn with_token(&self) -> Option<SyntaxToken> {
16229        support::token(&self.syntax, SyntaxKind::WITH_KW)
16230    }
16231}
16232
16233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16234pub struct SequenceOptionList {
16235    pub(crate) syntax: SyntaxNode,
16236}
16237impl SequenceOptionList {
16238    #[inline]
16239    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
16240        support::children(&self.syntax)
16241    }
16242    #[inline]
16243    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16244        support::token(&self.syntax, SyntaxKind::L_PAREN)
16245    }
16246    #[inline]
16247    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16248        support::token(&self.syntax, SyntaxKind::R_PAREN)
16249    }
16250}
16251
16252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16253pub struct Serializable {
16254    pub(crate) syntax: SyntaxNode,
16255}
16256impl Serializable {
16257    #[inline]
16258    pub fn isolation_token(&self) -> Option<SyntaxToken> {
16259        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
16260    }
16261    #[inline]
16262    pub fn level_token(&self) -> Option<SyntaxToken> {
16263        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
16264    }
16265    #[inline]
16266    pub fn serializable_token(&self) -> Option<SyntaxToken> {
16267        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
16268    }
16269}
16270
16271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16272pub struct ServerName {
16273    pub(crate) syntax: SyntaxNode,
16274}
16275impl ServerName {
16276    #[inline]
16277    pub fn name_ref(&self) -> Option<NameRef> {
16278        support::child(&self.syntax)
16279    }
16280    #[inline]
16281    pub fn server_token(&self) -> Option<SyntaxToken> {
16282        support::token(&self.syntax, SyntaxKind::SERVER_KW)
16283    }
16284}
16285
16286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16287pub struct Set {
16288    pub(crate) syntax: SyntaxNode,
16289}
16290impl Set {
16291    #[inline]
16292    pub fn config_value(&self) -> Option<ConfigValue> {
16293        support::child(&self.syntax)
16294    }
16295    #[inline]
16296    pub fn config_values(&self) -> AstChildren<ConfigValue> {
16297        support::children(&self.syntax)
16298    }
16299    #[inline]
16300    pub fn literal(&self) -> Option<Literal> {
16301        support::child(&self.syntax)
16302    }
16303    #[inline]
16304    pub fn path(&self) -> Option<Path> {
16305        support::child(&self.syntax)
16306    }
16307    #[inline]
16308    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16309        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16310    }
16311    #[inline]
16312    pub fn eq_token(&self) -> Option<SyntaxToken> {
16313        support::token(&self.syntax, SyntaxKind::EQ)
16314    }
16315    #[inline]
16316    pub fn catalog_token(&self) -> Option<SyntaxToken> {
16317        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
16318    }
16319    #[inline]
16320    pub fn content_token(&self) -> Option<SyntaxToken> {
16321        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16322    }
16323    #[inline]
16324    pub fn current_token(&self) -> Option<SyntaxToken> {
16325        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
16326    }
16327    #[inline]
16328    pub fn default_token(&self) -> Option<SyntaxToken> {
16329        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16330    }
16331    #[inline]
16332    pub fn document_token(&self) -> Option<SyntaxToken> {
16333        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16334    }
16335    #[inline]
16336    pub fn from_token(&self) -> Option<SyntaxToken> {
16337        support::token(&self.syntax, SyntaxKind::FROM_KW)
16338    }
16339    #[inline]
16340    pub fn local_token(&self) -> Option<SyntaxToken> {
16341        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16342    }
16343    #[inline]
16344    pub fn option_token(&self) -> Option<SyntaxToken> {
16345        support::token(&self.syntax, SyntaxKind::OPTION_KW)
16346    }
16347    #[inline]
16348    pub fn schema_token(&self) -> Option<SyntaxToken> {
16349        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16350    }
16351    #[inline]
16352    pub fn session_token(&self) -> Option<SyntaxToken> {
16353        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16354    }
16355    #[inline]
16356    pub fn set_token(&self) -> Option<SyntaxToken> {
16357        support::token(&self.syntax, SyntaxKind::SET_KW)
16358    }
16359    #[inline]
16360    pub fn time_token(&self) -> Option<SyntaxToken> {
16361        support::token(&self.syntax, SyntaxKind::TIME_KW)
16362    }
16363    #[inline]
16364    pub fn to_token(&self) -> Option<SyntaxToken> {
16365        support::token(&self.syntax, SyntaxKind::TO_KW)
16366    }
16367    #[inline]
16368    pub fn xml_token(&self) -> Option<SyntaxToken> {
16369        support::token(&self.syntax, SyntaxKind::XML_KW)
16370    }
16371    #[inline]
16372    pub fn zone_token(&self) -> Option<SyntaxToken> {
16373        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16374    }
16375}
16376
16377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16378pub struct SetAccessMethod {
16379    pub(crate) syntax: SyntaxNode,
16380}
16381impl SetAccessMethod {
16382    #[inline]
16383    pub fn name_ref(&self) -> Option<NameRef> {
16384        support::child(&self.syntax)
16385    }
16386    #[inline]
16387    pub fn access_token(&self) -> Option<SyntaxToken> {
16388        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
16389    }
16390    #[inline]
16391    pub fn method_token(&self) -> Option<SyntaxToken> {
16392        support::token(&self.syntax, SyntaxKind::METHOD_KW)
16393    }
16394    #[inline]
16395    pub fn set_token(&self) -> Option<SyntaxToken> {
16396        support::token(&self.syntax, SyntaxKind::SET_KW)
16397    }
16398}
16399
16400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16401pub struct SetClause {
16402    pub(crate) syntax: SyntaxNode,
16403}
16404impl SetClause {
16405    #[inline]
16406    pub fn set_column_list(&self) -> Option<SetColumnList> {
16407        support::child(&self.syntax)
16408    }
16409    #[inline]
16410    pub fn set_token(&self) -> Option<SyntaxToken> {
16411        support::token(&self.syntax, SyntaxKind::SET_KW)
16412    }
16413}
16414
16415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16416pub struct SetColumnList {
16417    pub(crate) syntax: SyntaxNode,
16418}
16419impl SetColumnList {
16420    #[inline]
16421    pub fn set_columns(&self) -> AstChildren<SetColumn> {
16422        support::children(&self.syntax)
16423    }
16424}
16425
16426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16427pub struct SetCompression {
16428    pub(crate) syntax: SyntaxNode,
16429}
16430impl SetCompression {
16431    #[inline]
16432    pub fn compression_token(&self) -> Option<SyntaxToken> {
16433        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
16434    }
16435    #[inline]
16436    pub fn set_token(&self) -> Option<SyntaxToken> {
16437        support::token(&self.syntax, SyntaxKind::SET_KW)
16438    }
16439}
16440
16441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16442pub struct SetConfigParam {
16443    pub(crate) syntax: SyntaxNode,
16444}
16445impl SetConfigParam {
16446    #[inline]
16447    pub fn path(&self) -> Option<Path> {
16448        support::child(&self.syntax)
16449    }
16450    #[inline]
16451    pub fn set_token(&self) -> Option<SyntaxToken> {
16452        support::token(&self.syntax, SyntaxKind::SET_KW)
16453    }
16454}
16455
16456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16457pub struct SetConstraints {
16458    pub(crate) syntax: SyntaxNode,
16459}
16460impl SetConstraints {
16461    #[inline]
16462    pub fn paths(&self) -> AstChildren<Path> {
16463        support::children(&self.syntax)
16464    }
16465    #[inline]
16466    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16467        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16468    }
16469    #[inline]
16470    pub fn all_token(&self) -> Option<SyntaxToken> {
16471        support::token(&self.syntax, SyntaxKind::ALL_KW)
16472    }
16473    #[inline]
16474    pub fn constraints_token(&self) -> Option<SyntaxToken> {
16475        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
16476    }
16477    #[inline]
16478    pub fn deferred_token(&self) -> Option<SyntaxToken> {
16479        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
16480    }
16481    #[inline]
16482    pub fn immediate_token(&self) -> Option<SyntaxToken> {
16483        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
16484    }
16485    #[inline]
16486    pub fn set_token(&self) -> Option<SyntaxToken> {
16487        support::token(&self.syntax, SyntaxKind::SET_KW)
16488    }
16489}
16490
16491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16492pub struct SetDefault {
16493    pub(crate) syntax: SyntaxNode,
16494}
16495impl SetDefault {
16496    #[inline]
16497    pub fn expr(&self) -> Option<Expr> {
16498        support::child(&self.syntax)
16499    }
16500    #[inline]
16501    pub fn default_token(&self) -> Option<SyntaxToken> {
16502        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16503    }
16504    #[inline]
16505    pub fn set_token(&self) -> Option<SyntaxToken> {
16506        support::token(&self.syntax, SyntaxKind::SET_KW)
16507    }
16508}
16509
16510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16511pub struct SetDefaultColumns {
16512    pub(crate) syntax: SyntaxNode,
16513}
16514impl SetDefaultColumns {
16515    #[inline]
16516    pub fn column_list(&self) -> Option<ColumnList> {
16517        support::child(&self.syntax)
16518    }
16519    #[inline]
16520    pub fn default_token(&self) -> Option<SyntaxToken> {
16521        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16522    }
16523    #[inline]
16524    pub fn set_token(&self) -> Option<SyntaxToken> {
16525        support::token(&self.syntax, SyntaxKind::SET_KW)
16526    }
16527}
16528
16529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16530pub struct SetExpr {
16531    pub(crate) syntax: SyntaxNode,
16532}
16533impl SetExpr {
16534    #[inline]
16535    pub fn expr(&self) -> Option<Expr> {
16536        support::child(&self.syntax)
16537    }
16538    #[inline]
16539    pub fn default_token(&self) -> Option<SyntaxToken> {
16540        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16541    }
16542}
16543
16544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16545pub struct SetExprList {
16546    pub(crate) syntax: SyntaxNode,
16547}
16548impl SetExprList {
16549    #[inline]
16550    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
16551        support::children(&self.syntax)
16552    }
16553    #[inline]
16554    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16555        support::token(&self.syntax, SyntaxKind::L_PAREN)
16556    }
16557    #[inline]
16558    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16559        support::token(&self.syntax, SyntaxKind::R_PAREN)
16560    }
16561    #[inline]
16562    pub fn row_token(&self) -> Option<SyntaxToken> {
16563        support::token(&self.syntax, SyntaxKind::ROW_KW)
16564    }
16565}
16566
16567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16568pub struct SetExpression {
16569    pub(crate) syntax: SyntaxNode,
16570}
16571impl SetExpression {
16572    #[inline]
16573    pub fn expr(&self) -> Option<Expr> {
16574        support::child(&self.syntax)
16575    }
16576    #[inline]
16577    pub fn expression_token(&self) -> Option<SyntaxToken> {
16578        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
16579    }
16580    #[inline]
16581    pub fn set_token(&self) -> Option<SyntaxToken> {
16582        support::token(&self.syntax, SyntaxKind::SET_KW)
16583    }
16584}
16585
16586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16587pub struct SetFuncOption {
16588    pub(crate) syntax: SyntaxNode,
16589}
16590impl SetFuncOption {
16591    #[inline]
16592    pub fn set_token(&self) -> Option<SyntaxToken> {
16593        support::token(&self.syntax, SyntaxKind::SET_KW)
16594    }
16595}
16596
16597#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16598pub struct SetGenerated {
16599    pub(crate) syntax: SyntaxNode,
16600}
16601impl SetGenerated {
16602    #[inline]
16603    pub fn set_token(&self) -> Option<SyntaxToken> {
16604        support::token(&self.syntax, SyntaxKind::SET_KW)
16605    }
16606}
16607
16608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16609pub struct SetGeneratedOptions {
16610    pub(crate) syntax: SyntaxNode,
16611}
16612impl SetGeneratedOptions {
16613    #[inline]
16614    pub fn generated_token(&self) -> Option<SyntaxToken> {
16615        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
16616    }
16617    #[inline]
16618    pub fn set_token(&self) -> Option<SyntaxToken> {
16619        support::token(&self.syntax, SyntaxKind::SET_KW)
16620    }
16621}
16622
16623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16624pub struct SetLogged {
16625    pub(crate) syntax: SyntaxNode,
16626}
16627impl SetLogged {
16628    #[inline]
16629    pub fn logged_token(&self) -> Option<SyntaxToken> {
16630        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
16631    }
16632    #[inline]
16633    pub fn set_token(&self) -> Option<SyntaxToken> {
16634        support::token(&self.syntax, SyntaxKind::SET_KW)
16635    }
16636}
16637
16638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16639pub struct SetMultipleColumns {
16640    pub(crate) syntax: SyntaxNode,
16641}
16642impl SetMultipleColumns {
16643    #[inline]
16644    pub fn column_list(&self) -> Option<ColumnList> {
16645        support::child(&self.syntax)
16646    }
16647    #[inline]
16648    pub fn paren_select(&self) -> Option<ParenSelect> {
16649        support::child(&self.syntax)
16650    }
16651    #[inline]
16652    pub fn set_expr_list(&self) -> Option<SetExprList> {
16653        support::child(&self.syntax)
16654    }
16655    #[inline]
16656    pub fn eq_token(&self) -> Option<SyntaxToken> {
16657        support::token(&self.syntax, SyntaxKind::EQ)
16658    }
16659}
16660
16661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16662pub struct SetNotNull {
16663    pub(crate) syntax: SyntaxNode,
16664}
16665impl SetNotNull {
16666    #[inline]
16667    pub fn not_token(&self) -> Option<SyntaxToken> {
16668        support::token(&self.syntax, SyntaxKind::NOT_KW)
16669    }
16670    #[inline]
16671    pub fn null_token(&self) -> Option<SyntaxToken> {
16672        support::token(&self.syntax, SyntaxKind::NULL_KW)
16673    }
16674    #[inline]
16675    pub fn set_token(&self) -> Option<SyntaxToken> {
16676        support::token(&self.syntax, SyntaxKind::SET_KW)
16677    }
16678}
16679
16680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16681pub struct SetNullColumns {
16682    pub(crate) syntax: SyntaxNode,
16683}
16684impl SetNullColumns {
16685    #[inline]
16686    pub fn column_list(&self) -> Option<ColumnList> {
16687        support::child(&self.syntax)
16688    }
16689    #[inline]
16690    pub fn null_token(&self) -> Option<SyntaxToken> {
16691        support::token(&self.syntax, SyntaxKind::NULL_KW)
16692    }
16693    #[inline]
16694    pub fn set_token(&self) -> Option<SyntaxToken> {
16695        support::token(&self.syntax, SyntaxKind::SET_KW)
16696    }
16697}
16698
16699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16700pub struct SetOptions {
16701    pub(crate) syntax: SyntaxNode,
16702}
16703impl SetOptions {
16704    #[inline]
16705    pub fn attribute_list(&self) -> Option<AttributeList> {
16706        support::child(&self.syntax)
16707    }
16708    #[inline]
16709    pub fn set_token(&self) -> Option<SyntaxToken> {
16710        support::token(&self.syntax, SyntaxKind::SET_KW)
16711    }
16712}
16713
16714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16715pub struct SetOptionsList {
16716    pub(crate) syntax: SyntaxNode,
16717}
16718impl SetOptionsList {
16719    #[inline]
16720    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
16721        support::child(&self.syntax)
16722    }
16723    #[inline]
16724    pub fn options_token(&self) -> Option<SyntaxToken> {
16725        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
16726    }
16727    #[inline]
16728    pub fn set_token(&self) -> Option<SyntaxToken> {
16729        support::token(&self.syntax, SyntaxKind::SET_KW)
16730    }
16731}
16732
16733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16734pub struct SetRole {
16735    pub(crate) syntax: SyntaxNode,
16736}
16737impl SetRole {
16738    #[inline]
16739    pub fn role_ref(&self) -> Option<RoleRef> {
16740        support::child(&self.syntax)
16741    }
16742    #[inline]
16743    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16744        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16745    }
16746    #[inline]
16747    pub fn local_token(&self) -> Option<SyntaxToken> {
16748        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16749    }
16750    #[inline]
16751    pub fn none_token(&self) -> Option<SyntaxToken> {
16752        support::token(&self.syntax, SyntaxKind::NONE_KW)
16753    }
16754    #[inline]
16755    pub fn reset_token(&self) -> Option<SyntaxToken> {
16756        support::token(&self.syntax, SyntaxKind::RESET_KW)
16757    }
16758    #[inline]
16759    pub fn role_token(&self) -> Option<SyntaxToken> {
16760        support::token(&self.syntax, SyntaxKind::ROLE_KW)
16761    }
16762    #[inline]
16763    pub fn session_token(&self) -> Option<SyntaxToken> {
16764        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16765    }
16766    #[inline]
16767    pub fn set_token(&self) -> Option<SyntaxToken> {
16768        support::token(&self.syntax, SyntaxKind::SET_KW)
16769    }
16770}
16771
16772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16773pub struct SetSchema {
16774    pub(crate) syntax: SyntaxNode,
16775}
16776impl SetSchema {
16777    #[inline]
16778    pub fn name_ref(&self) -> Option<NameRef> {
16779        support::child(&self.syntax)
16780    }
16781    #[inline]
16782    pub fn schema_token(&self) -> Option<SyntaxToken> {
16783        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16784    }
16785    #[inline]
16786    pub fn set_token(&self) -> Option<SyntaxToken> {
16787        support::token(&self.syntax, SyntaxKind::SET_KW)
16788    }
16789}
16790
16791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16792pub struct SetSequenceOption {
16793    pub(crate) syntax: SyntaxNode,
16794}
16795impl SetSequenceOption {
16796    #[inline]
16797    pub fn set_token(&self) -> Option<SyntaxToken> {
16798        support::token(&self.syntax, SyntaxKind::SET_KW)
16799    }
16800}
16801
16802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16803pub struct SetSessionAuth {
16804    pub(crate) syntax: SyntaxNode,
16805}
16806impl SetSessionAuth {
16807    #[inline]
16808    pub fn literal(&self) -> Option<Literal> {
16809        support::child(&self.syntax)
16810    }
16811    #[inline]
16812    pub fn role_ref(&self) -> Option<RoleRef> {
16813        support::child(&self.syntax)
16814    }
16815    #[inline]
16816    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16817        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16818    }
16819    #[inline]
16820    pub fn authorization_token(&self) -> Option<SyntaxToken> {
16821        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
16822    }
16823    #[inline]
16824    pub fn default_token(&self) -> Option<SyntaxToken> {
16825        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16826    }
16827    #[inline]
16828    pub fn local_token(&self) -> Option<SyntaxToken> {
16829        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16830    }
16831    #[inline]
16832    pub fn session_token(&self) -> Option<SyntaxToken> {
16833        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16834    }
16835    #[inline]
16836    pub fn set_token(&self) -> Option<SyntaxToken> {
16837        support::token(&self.syntax, SyntaxKind::SET_KW)
16838    }
16839}
16840
16841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16842pub struct SetSingleColumn {
16843    pub(crate) syntax: SyntaxNode,
16844}
16845impl SetSingleColumn {
16846    #[inline]
16847    pub fn column(&self) -> Option<Column> {
16848        support::child(&self.syntax)
16849    }
16850    #[inline]
16851    pub fn set_expr(&self) -> Option<SetExpr> {
16852        support::child(&self.syntax)
16853    }
16854    #[inline]
16855    pub fn eq_token(&self) -> Option<SyntaxToken> {
16856        support::token(&self.syntax, SyntaxKind::EQ)
16857    }
16858}
16859
16860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16861pub struct SetStatistics {
16862    pub(crate) syntax: SyntaxNode,
16863}
16864impl SetStatistics {
16865    #[inline]
16866    pub fn set_token(&self) -> Option<SyntaxToken> {
16867        support::token(&self.syntax, SyntaxKind::SET_KW)
16868    }
16869    #[inline]
16870    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16871        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16872    }
16873}
16874
16875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16876pub struct SetStorage {
16877    pub(crate) syntax: SyntaxNode,
16878}
16879impl SetStorage {
16880    #[inline]
16881    pub fn set_token(&self) -> Option<SyntaxToken> {
16882        support::token(&self.syntax, SyntaxKind::SET_KW)
16883    }
16884    #[inline]
16885    pub fn storage_token(&self) -> Option<SyntaxToken> {
16886        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16887    }
16888}
16889
16890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16891pub struct SetTablespace {
16892    pub(crate) syntax: SyntaxNode,
16893}
16894impl SetTablespace {
16895    #[inline]
16896    pub fn path(&self) -> Option<Path> {
16897        support::child(&self.syntax)
16898    }
16899    #[inline]
16900    pub fn set_token(&self) -> Option<SyntaxToken> {
16901        support::token(&self.syntax, SyntaxKind::SET_KW)
16902    }
16903    #[inline]
16904    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16905        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16906    }
16907}
16908
16909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16910pub struct SetTransaction {
16911    pub(crate) syntax: SyntaxNode,
16912}
16913impl SetTransaction {
16914    #[inline]
16915    pub fn literal(&self) -> Option<Literal> {
16916        support::child(&self.syntax)
16917    }
16918    #[inline]
16919    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16920        support::child(&self.syntax)
16921    }
16922    #[inline]
16923    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
16924        support::token(&self.syntax, SyntaxKind::SEMICOLON)
16925    }
16926    #[inline]
16927    pub fn as_token(&self) -> Option<SyntaxToken> {
16928        support::token(&self.syntax, SyntaxKind::AS_KW)
16929    }
16930    #[inline]
16931    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16932        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16933    }
16934    #[inline]
16935    pub fn session_token(&self) -> Option<SyntaxToken> {
16936        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16937    }
16938    #[inline]
16939    pub fn set_token(&self) -> Option<SyntaxToken> {
16940        support::token(&self.syntax, SyntaxKind::SET_KW)
16941    }
16942    #[inline]
16943    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
16944        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16945    }
16946    #[inline]
16947    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16948        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16949    }
16950}
16951
16952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16953pub struct SetType {
16954    pub(crate) syntax: SyntaxNode,
16955}
16956impl SetType {
16957    #[inline]
16958    pub fn collate(&self) -> Option<Collate> {
16959        support::child(&self.syntax)
16960    }
16961    #[inline]
16962    pub fn ty(&self) -> Option<Type> {
16963        support::child(&self.syntax)
16964    }
16965    #[inline]
16966    pub fn set_token(&self) -> Option<SyntaxToken> {
16967        support::token(&self.syntax, SyntaxKind::SET_KW)
16968    }
16969    #[inline]
16970    pub fn type_token(&self) -> Option<SyntaxToken> {
16971        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16972    }
16973}
16974
16975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16976pub struct SetUnlogged {
16977    pub(crate) syntax: SyntaxNode,
16978}
16979impl SetUnlogged {
16980    #[inline]
16981    pub fn set_token(&self) -> Option<SyntaxToken> {
16982        support::token(&self.syntax, SyntaxKind::SET_KW)
16983    }
16984    #[inline]
16985    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16986        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16987    }
16988}
16989
16990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16991pub struct SetWithoutCluster {
16992    pub(crate) syntax: SyntaxNode,
16993}
16994impl SetWithoutCluster {
16995    #[inline]
16996    pub fn cluster_token(&self) -> Option<SyntaxToken> {
16997        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
16998    }
16999    #[inline]
17000    pub fn set_token(&self) -> Option<SyntaxToken> {
17001        support::token(&self.syntax, SyntaxKind::SET_KW)
17002    }
17003    #[inline]
17004    pub fn without_token(&self) -> Option<SyntaxToken> {
17005        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17006    }
17007}
17008
17009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17010pub struct SetWithoutOids {
17011    pub(crate) syntax: SyntaxNode,
17012}
17013impl SetWithoutOids {
17014    #[inline]
17015    pub fn oids_token(&self) -> Option<SyntaxToken> {
17016        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17017    }
17018    #[inline]
17019    pub fn set_token(&self) -> Option<SyntaxToken> {
17020        support::token(&self.syntax, SyntaxKind::SET_KW)
17021    }
17022    #[inline]
17023    pub fn without_token(&self) -> Option<SyntaxToken> {
17024        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17025    }
17026}
17027
17028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17029pub struct Show {
17030    pub(crate) syntax: SyntaxNode,
17031}
17032impl Show {
17033    #[inline]
17034    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17035        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17036    }
17037    #[inline]
17038    pub fn show_token(&self) -> Option<SyntaxToken> {
17039        support::token(&self.syntax, SyntaxKind::SHOW_KW)
17040    }
17041}
17042
17043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17044pub struct SimilarTo {
17045    pub(crate) syntax: SyntaxNode,
17046}
17047impl SimilarTo {
17048    #[inline]
17049    pub fn similar_token(&self) -> Option<SyntaxToken> {
17050        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
17051    }
17052    #[inline]
17053    pub fn to_token(&self) -> Option<SyntaxToken> {
17054        support::token(&self.syntax, SyntaxKind::TO_KW)
17055    }
17056}
17057
17058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17059pub struct SliceExpr {
17060    pub(crate) syntax: SyntaxNode,
17061}
17062impl SliceExpr {
17063    #[inline]
17064    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
17065        support::token(&self.syntax, SyntaxKind::L_BRACK)
17066    }
17067    #[inline]
17068    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
17069        support::token(&self.syntax, SyntaxKind::R_BRACK)
17070    }
17071    #[inline]
17072    pub fn colon_token(&self) -> Option<SyntaxToken> {
17073        support::token(&self.syntax, SyntaxKind::COLON)
17074    }
17075}
17076
17077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17078pub struct SomeFn {
17079    pub(crate) syntax: SyntaxNode,
17080}
17081impl SomeFn {
17082    #[inline]
17083    pub fn expr(&self) -> Option<Expr> {
17084        support::child(&self.syntax)
17085    }
17086    #[inline]
17087    pub fn select_variant(&self) -> Option<SelectVariant> {
17088        support::child(&self.syntax)
17089    }
17090    #[inline]
17091    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17092        support::token(&self.syntax, SyntaxKind::L_PAREN)
17093    }
17094    #[inline]
17095    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17096        support::token(&self.syntax, SyntaxKind::R_PAREN)
17097    }
17098    #[inline]
17099    pub fn some_token(&self) -> Option<SyntaxToken> {
17100        support::token(&self.syntax, SyntaxKind::SOME_KW)
17101    }
17102}
17103
17104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17105pub struct SortAsc {
17106    pub(crate) syntax: SyntaxNode,
17107}
17108impl SortAsc {
17109    #[inline]
17110    pub fn asc_token(&self) -> Option<SyntaxToken> {
17111        support::token(&self.syntax, SyntaxKind::ASC_KW)
17112    }
17113}
17114
17115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17116pub struct SortBy {
17117    pub(crate) syntax: SyntaxNode,
17118}
17119impl SortBy {
17120    #[inline]
17121    pub fn expr(&self) -> Option<Expr> {
17122        support::child(&self.syntax)
17123    }
17124    #[inline]
17125    pub fn nulls_first(&self) -> Option<NullsFirst> {
17126        support::child(&self.syntax)
17127    }
17128    #[inline]
17129    pub fn nulls_last(&self) -> Option<NullsLast> {
17130        support::child(&self.syntax)
17131    }
17132    #[inline]
17133    pub fn sort_asc(&self) -> Option<SortAsc> {
17134        support::child(&self.syntax)
17135    }
17136    #[inline]
17137    pub fn sort_desc(&self) -> Option<SortDesc> {
17138        support::child(&self.syntax)
17139    }
17140    #[inline]
17141    pub fn sort_using(&self) -> Option<SortUsing> {
17142        support::child(&self.syntax)
17143    }
17144}
17145
17146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17147pub struct SortByList {
17148    pub(crate) syntax: SyntaxNode,
17149}
17150impl SortByList {
17151    #[inline]
17152    pub fn sort_bys(&self) -> AstChildren<SortBy> {
17153        support::children(&self.syntax)
17154    }
17155}
17156
17157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17158pub struct SortDesc {
17159    pub(crate) syntax: SyntaxNode,
17160}
17161impl SortDesc {
17162    #[inline]
17163    pub fn desc_token(&self) -> Option<SyntaxToken> {
17164        support::token(&self.syntax, SyntaxKind::DESC_KW)
17165    }
17166}
17167
17168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17169pub struct SortUsing {
17170    pub(crate) syntax: SyntaxNode,
17171}
17172impl SortUsing {
17173    #[inline]
17174    pub fn op(&self) -> Option<Op> {
17175        support::child(&self.syntax)
17176    }
17177    #[inline]
17178    pub fn using_token(&self) -> Option<SyntaxToken> {
17179        support::token(&self.syntax, SyntaxKind::USING_KW)
17180    }
17181}
17182
17183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17184pub struct SourceFile {
17185    pub(crate) syntax: SyntaxNode,
17186}
17187impl SourceFile {
17188    #[inline]
17189    pub fn stmts(&self) -> AstChildren<Stmt> {
17190        support::children(&self.syntax)
17191    }
17192}
17193
17194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17195pub struct SourceVertexTable {
17196    pub(crate) syntax: SyntaxNode,
17197}
17198impl SourceVertexTable {
17199    #[inline]
17200    pub fn column_list(&self) -> Option<ColumnList> {
17201        support::child(&self.syntax)
17202    }
17203    #[inline]
17204    pub fn name_ref(&self) -> Option<NameRef> {
17205        support::child(&self.syntax)
17206    }
17207    #[inline]
17208    pub fn references_table(&self) -> Option<ReferencesTable> {
17209        support::child(&self.syntax)
17210    }
17211    #[inline]
17212    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17213        support::token(&self.syntax, SyntaxKind::L_PAREN)
17214    }
17215    #[inline]
17216    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17217        support::token(&self.syntax, SyntaxKind::R_PAREN)
17218    }
17219    #[inline]
17220    pub fn key_token(&self) -> Option<SyntaxToken> {
17221        support::token(&self.syntax, SyntaxKind::KEY_KW)
17222    }
17223    #[inline]
17224    pub fn source_token(&self) -> Option<SyntaxToken> {
17225        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
17226    }
17227}
17228
17229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17230pub struct SplitPartition {
17231    pub(crate) syntax: SyntaxNode,
17232}
17233impl SplitPartition {
17234    #[inline]
17235    pub fn partition_list(&self) -> Option<PartitionList> {
17236        support::child(&self.syntax)
17237    }
17238    #[inline]
17239    pub fn into_token(&self) -> Option<SyntaxToken> {
17240        support::token(&self.syntax, SyntaxKind::INTO_KW)
17241    }
17242    #[inline]
17243    pub fn partition_token(&self) -> Option<SyntaxToken> {
17244        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17245    }
17246    #[inline]
17247    pub fn split_token(&self) -> Option<SyntaxToken> {
17248        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
17249    }
17250}
17251
17252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17253pub struct Storage {
17254    pub(crate) syntax: SyntaxNode,
17255}
17256impl Storage {
17257    #[inline]
17258    pub fn default_token(&self) -> Option<SyntaxToken> {
17259        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17260    }
17261    #[inline]
17262    pub fn external_token(&self) -> Option<SyntaxToken> {
17263        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
17264    }
17265    #[inline]
17266    pub fn ident_token(&self) -> Option<SyntaxToken> {
17267        support::token(&self.syntax, SyntaxKind::IDENT)
17268    }
17269    #[inline]
17270    pub fn storage_token(&self) -> Option<SyntaxToken> {
17271        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
17272    }
17273}
17274
17275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17276pub struct StrictFuncOption {
17277    pub(crate) syntax: SyntaxNode,
17278}
17279impl StrictFuncOption {
17280    #[inline]
17281    pub fn called_token(&self) -> Option<SyntaxToken> {
17282        support::token(&self.syntax, SyntaxKind::CALLED_KW)
17283    }
17284    #[inline]
17285    pub fn input_token(&self) -> Option<SyntaxToken> {
17286        support::token(&self.syntax, SyntaxKind::INPUT_KW)
17287    }
17288    #[inline]
17289    pub fn null_token(&self) -> Option<SyntaxToken> {
17290        support::token(&self.syntax, SyntaxKind::NULL_KW)
17291    }
17292    #[inline]
17293    pub fn on_token(&self) -> Option<SyntaxToken> {
17294        support::token(&self.syntax, SyntaxKind::ON_KW)
17295    }
17296    #[inline]
17297    pub fn returns_token(&self) -> Option<SyntaxToken> {
17298        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
17299    }
17300    #[inline]
17301    pub fn strict_token(&self) -> Option<SyntaxToken> {
17302        support::token(&self.syntax, SyntaxKind::STRICT_KW)
17303    }
17304}
17305
17306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17307pub struct SubstringFn {
17308    pub(crate) syntax: SyntaxNode,
17309}
17310impl SubstringFn {
17311    #[inline]
17312    pub fn expr(&self) -> Option<Expr> {
17313        support::child(&self.syntax)
17314    }
17315    #[inline]
17316    pub fn exprs(&self) -> AstChildren<Expr> {
17317        support::children(&self.syntax)
17318    }
17319    #[inline]
17320    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17321        support::token(&self.syntax, SyntaxKind::L_PAREN)
17322    }
17323    #[inline]
17324    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17325        support::token(&self.syntax, SyntaxKind::R_PAREN)
17326    }
17327    #[inline]
17328    pub fn escape_token(&self) -> Option<SyntaxToken> {
17329        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
17330    }
17331    #[inline]
17332    pub fn for_token(&self) -> Option<SyntaxToken> {
17333        support::token(&self.syntax, SyntaxKind::FOR_KW)
17334    }
17335    #[inline]
17336    pub fn from_token(&self) -> Option<SyntaxToken> {
17337        support::token(&self.syntax, SyntaxKind::FROM_KW)
17338    }
17339    #[inline]
17340    pub fn similar_token(&self) -> Option<SyntaxToken> {
17341        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
17342    }
17343    #[inline]
17344    pub fn substring_token(&self) -> Option<SyntaxToken> {
17345        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
17346    }
17347}
17348
17349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17350pub struct SupportFuncOption {
17351    pub(crate) syntax: SyntaxNode,
17352}
17353impl SupportFuncOption {
17354    #[inline]
17355    pub fn support_token(&self) -> Option<SyntaxToken> {
17356        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
17357    }
17358}
17359
17360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17361pub struct Table {
17362    pub(crate) syntax: SyntaxNode,
17363}
17364impl Table {
17365    #[inline]
17366    pub fn relation_name(&self) -> Option<RelationName> {
17367        support::child(&self.syntax)
17368    }
17369    #[inline]
17370    pub fn with_clause(&self) -> Option<WithClause> {
17371        support::child(&self.syntax)
17372    }
17373    #[inline]
17374    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17375        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17376    }
17377    #[inline]
17378    pub fn table_token(&self) -> Option<SyntaxToken> {
17379        support::token(&self.syntax, SyntaxKind::TABLE_KW)
17380    }
17381}
17382
17383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17384pub struct TableAndColumns {
17385    pub(crate) syntax: SyntaxNode,
17386}
17387impl TableAndColumns {
17388    #[inline]
17389    pub fn column_list(&self) -> Option<ColumnList> {
17390        support::child(&self.syntax)
17391    }
17392    #[inline]
17393    pub fn relation_name(&self) -> Option<RelationName> {
17394        support::child(&self.syntax)
17395    }
17396}
17397
17398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17399pub struct TableAndColumnsList {
17400    pub(crate) syntax: SyntaxNode,
17401}
17402impl TableAndColumnsList {
17403    #[inline]
17404    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
17405        support::children(&self.syntax)
17406    }
17407}
17408
17409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17410pub struct TableArgList {
17411    pub(crate) syntax: SyntaxNode,
17412}
17413impl TableArgList {
17414    #[inline]
17415    pub fn args(&self) -> AstChildren<TableArg> {
17416        support::children(&self.syntax)
17417    }
17418    #[inline]
17419    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17420        support::token(&self.syntax, SyntaxKind::L_PAREN)
17421    }
17422    #[inline]
17423    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17424        support::token(&self.syntax, SyntaxKind::R_PAREN)
17425    }
17426}
17427
17428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17429pub struct TableList {
17430    pub(crate) syntax: SyntaxNode,
17431}
17432impl TableList {
17433    #[inline]
17434    pub fn relation_names(&self) -> AstChildren<RelationName> {
17435        support::children(&self.syntax)
17436    }
17437}
17438
17439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17440pub struct TablesampleClause {
17441    pub(crate) syntax: SyntaxNode,
17442}
17443impl TablesampleClause {
17444    #[inline]
17445    pub fn call_expr(&self) -> Option<CallExpr> {
17446        support::child(&self.syntax)
17447    }
17448    #[inline]
17449    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
17450        support::child(&self.syntax)
17451    }
17452    #[inline]
17453    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
17454        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
17455    }
17456}
17457
17458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17459pub struct Tablespace {
17460    pub(crate) syntax: SyntaxNode,
17461}
17462impl Tablespace {
17463    #[inline]
17464    pub fn name_ref(&self) -> Option<NameRef> {
17465        support::child(&self.syntax)
17466    }
17467    #[inline]
17468    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
17469        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
17470    }
17471}
17472
17473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17474pub struct Target {
17475    pub(crate) syntax: SyntaxNode,
17476}
17477impl Target {
17478    #[inline]
17479    pub fn as_name(&self) -> Option<AsName> {
17480        support::child(&self.syntax)
17481    }
17482    #[inline]
17483    pub fn expr(&self) -> Option<Expr> {
17484        support::child(&self.syntax)
17485    }
17486    #[inline]
17487    pub fn star_token(&self) -> Option<SyntaxToken> {
17488        support::token(&self.syntax, SyntaxKind::STAR)
17489    }
17490}
17491
17492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17493pub struct TargetList {
17494    pub(crate) syntax: SyntaxNode,
17495}
17496impl TargetList {
17497    #[inline]
17498    pub fn targets(&self) -> AstChildren<Target> {
17499        support::children(&self.syntax)
17500    }
17501}
17502
17503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17504pub struct Temp {
17505    pub(crate) syntax: SyntaxNode,
17506}
17507impl Temp {
17508    #[inline]
17509    pub fn global_token(&self) -> Option<SyntaxToken> {
17510        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
17511    }
17512    #[inline]
17513    pub fn local_token(&self) -> Option<SyntaxToken> {
17514        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
17515    }
17516    #[inline]
17517    pub fn temp_token(&self) -> Option<SyntaxToken> {
17518        support::token(&self.syntax, SyntaxKind::TEMP_KW)
17519    }
17520    #[inline]
17521    pub fn temporary_token(&self) -> Option<SyntaxToken> {
17522        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
17523    }
17524}
17525
17526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17527pub struct TimeType {
17528    pub(crate) syntax: SyntaxNode,
17529}
17530impl TimeType {
17531    #[inline]
17532    pub fn literal(&self) -> Option<Literal> {
17533        support::child(&self.syntax)
17534    }
17535    #[inline]
17536    pub fn timezone(&self) -> Option<Timezone> {
17537        support::child(&self.syntax)
17538    }
17539    #[inline]
17540    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17541        support::token(&self.syntax, SyntaxKind::L_PAREN)
17542    }
17543    #[inline]
17544    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17545        support::token(&self.syntax, SyntaxKind::R_PAREN)
17546    }
17547    #[inline]
17548    pub fn setof_token(&self) -> Option<SyntaxToken> {
17549        support::token(&self.syntax, SyntaxKind::SETOF_KW)
17550    }
17551    #[inline]
17552    pub fn time_token(&self) -> Option<SyntaxToken> {
17553        support::token(&self.syntax, SyntaxKind::TIME_KW)
17554    }
17555    #[inline]
17556    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
17557        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
17558    }
17559}
17560
17561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17562pub struct Timing {
17563    pub(crate) syntax: SyntaxNode,
17564}
17565impl Timing {
17566    #[inline]
17567    pub fn after_token(&self) -> Option<SyntaxToken> {
17568        support::token(&self.syntax, SyntaxKind::AFTER_KW)
17569    }
17570    #[inline]
17571    pub fn before_token(&self) -> Option<SyntaxToken> {
17572        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
17573    }
17574    #[inline]
17575    pub fn instead_token(&self) -> Option<SyntaxToken> {
17576        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
17577    }
17578    #[inline]
17579    pub fn of_token(&self) -> Option<SyntaxToken> {
17580        support::token(&self.syntax, SyntaxKind::OF_KW)
17581    }
17582}
17583
17584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17585pub struct TransactionModeList {
17586    pub(crate) syntax: SyntaxNode,
17587}
17588impl TransactionModeList {
17589    #[inline]
17590    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
17591        support::children(&self.syntax)
17592    }
17593}
17594
17595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17596pub struct TransformFromFunc {
17597    pub(crate) syntax: SyntaxNode,
17598}
17599impl TransformFromFunc {
17600    #[inline]
17601    pub fn function_sig(&self) -> Option<FunctionSig> {
17602        support::child(&self.syntax)
17603    }
17604    #[inline]
17605    pub fn from_token(&self) -> Option<SyntaxToken> {
17606        support::token(&self.syntax, SyntaxKind::FROM_KW)
17607    }
17608    #[inline]
17609    pub fn function_token(&self) -> Option<SyntaxToken> {
17610        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
17611    }
17612    #[inline]
17613    pub fn sql_token(&self) -> Option<SyntaxToken> {
17614        support::token(&self.syntax, SyntaxKind::SQL_KW)
17615    }
17616    #[inline]
17617    pub fn with_token(&self) -> Option<SyntaxToken> {
17618        support::token(&self.syntax, SyntaxKind::WITH_KW)
17619    }
17620}
17621
17622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17623pub struct TransformFuncOption {
17624    pub(crate) syntax: SyntaxNode,
17625}
17626impl TransformFuncOption {
17627    #[inline]
17628    pub fn transform_token(&self) -> Option<SyntaxToken> {
17629        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
17630    }
17631}
17632
17633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17634pub struct TransformToFunc {
17635    pub(crate) syntax: SyntaxNode,
17636}
17637impl TransformToFunc {
17638    #[inline]
17639    pub fn function_sig(&self) -> Option<FunctionSig> {
17640        support::child(&self.syntax)
17641    }
17642    #[inline]
17643    pub fn function_token(&self) -> Option<SyntaxToken> {
17644        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
17645    }
17646    #[inline]
17647    pub fn sql_token(&self) -> Option<SyntaxToken> {
17648        support::token(&self.syntax, SyntaxKind::SQL_KW)
17649    }
17650    #[inline]
17651    pub fn to_token(&self) -> Option<SyntaxToken> {
17652        support::token(&self.syntax, SyntaxKind::TO_KW)
17653    }
17654    #[inline]
17655    pub fn with_token(&self) -> Option<SyntaxToken> {
17656        support::token(&self.syntax, SyntaxKind::WITH_KW)
17657    }
17658}
17659
17660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17661pub struct TriggerEvent {
17662    pub(crate) syntax: SyntaxNode,
17663}
17664impl TriggerEvent {
17665    #[inline]
17666    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
17667        support::child(&self.syntax)
17668    }
17669    #[inline]
17670    pub fn delete_token(&self) -> Option<SyntaxToken> {
17671        support::token(&self.syntax, SyntaxKind::DELETE_KW)
17672    }
17673    #[inline]
17674    pub fn insert_token(&self) -> Option<SyntaxToken> {
17675        support::token(&self.syntax, SyntaxKind::INSERT_KW)
17676    }
17677    #[inline]
17678    pub fn truncate_token(&self) -> Option<SyntaxToken> {
17679        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
17680    }
17681}
17682
17683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17684pub struct TriggerEventList {
17685    pub(crate) syntax: SyntaxNode,
17686}
17687impl TriggerEventList {
17688    #[inline]
17689    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
17690        support::children(&self.syntax)
17691    }
17692}
17693
17694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17695pub struct TriggerEventUpdate {
17696    pub(crate) syntax: SyntaxNode,
17697}
17698impl TriggerEventUpdate {
17699    #[inline]
17700    pub fn name_refs(&self) -> AstChildren<NameRef> {
17701        support::children(&self.syntax)
17702    }
17703    #[inline]
17704    pub fn of_token(&self) -> Option<SyntaxToken> {
17705        support::token(&self.syntax, SyntaxKind::OF_KW)
17706    }
17707    #[inline]
17708    pub fn update_token(&self) -> Option<SyntaxToken> {
17709        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17710    }
17711}
17712
17713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17714pub struct TrimFn {
17715    pub(crate) syntax: SyntaxNode,
17716}
17717impl TrimFn {
17718    #[inline]
17719    pub fn expr(&self) -> Option<Expr> {
17720        support::child(&self.syntax)
17721    }
17722    #[inline]
17723    pub fn exprs(&self) -> AstChildren<Expr> {
17724        support::children(&self.syntax)
17725    }
17726    #[inline]
17727    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17728        support::token(&self.syntax, SyntaxKind::L_PAREN)
17729    }
17730    #[inline]
17731    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17732        support::token(&self.syntax, SyntaxKind::R_PAREN)
17733    }
17734    #[inline]
17735    pub fn both_token(&self) -> Option<SyntaxToken> {
17736        support::token(&self.syntax, SyntaxKind::BOTH_KW)
17737    }
17738    #[inline]
17739    pub fn from_token(&self) -> Option<SyntaxToken> {
17740        support::token(&self.syntax, SyntaxKind::FROM_KW)
17741    }
17742    #[inline]
17743    pub fn leading_token(&self) -> Option<SyntaxToken> {
17744        support::token(&self.syntax, SyntaxKind::LEADING_KW)
17745    }
17746    #[inline]
17747    pub fn trailing_token(&self) -> Option<SyntaxToken> {
17748        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
17749    }
17750    #[inline]
17751    pub fn trim_token(&self) -> Option<SyntaxToken> {
17752        support::token(&self.syntax, SyntaxKind::TRIM_KW)
17753    }
17754}
17755
17756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17757pub struct Truncate {
17758    pub(crate) syntax: SyntaxNode,
17759}
17760impl Truncate {
17761    #[inline]
17762    pub fn table_list(&self) -> Option<TableList> {
17763        support::child(&self.syntax)
17764    }
17765    #[inline]
17766    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17767        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17768    }
17769    #[inline]
17770    pub fn cascade_token(&self) -> Option<SyntaxToken> {
17771        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
17772    }
17773    #[inline]
17774    pub fn continue_token(&self) -> Option<SyntaxToken> {
17775        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
17776    }
17777    #[inline]
17778    pub fn identity_token(&self) -> Option<SyntaxToken> {
17779        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
17780    }
17781    #[inline]
17782    pub fn restart_token(&self) -> Option<SyntaxToken> {
17783        support::token(&self.syntax, SyntaxKind::RESTART_KW)
17784    }
17785    #[inline]
17786    pub fn restrict_token(&self) -> Option<SyntaxToken> {
17787        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
17788    }
17789    #[inline]
17790    pub fn table_token(&self) -> Option<SyntaxToken> {
17791        support::token(&self.syntax, SyntaxKind::TABLE_KW)
17792    }
17793    #[inline]
17794    pub fn truncate_token(&self) -> Option<SyntaxToken> {
17795        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
17796    }
17797}
17798
17799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17800pub struct TupleExpr {
17801    pub(crate) syntax: SyntaxNode,
17802}
17803impl TupleExpr {
17804    #[inline]
17805    pub fn exprs(&self) -> AstChildren<Expr> {
17806        support::children(&self.syntax)
17807    }
17808    #[inline]
17809    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17810        support::token(&self.syntax, SyntaxKind::L_PAREN)
17811    }
17812    #[inline]
17813    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17814        support::token(&self.syntax, SyntaxKind::R_PAREN)
17815    }
17816}
17817
17818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17819pub struct UnicodeNormalForm {
17820    pub(crate) syntax: SyntaxNode,
17821}
17822impl UnicodeNormalForm {
17823    #[inline]
17824    pub fn nfc_token(&self) -> Option<SyntaxToken> {
17825        support::token(&self.syntax, SyntaxKind::NFC_KW)
17826    }
17827    #[inline]
17828    pub fn nfd_token(&self) -> Option<SyntaxToken> {
17829        support::token(&self.syntax, SyntaxKind::NFD_KW)
17830    }
17831    #[inline]
17832    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
17833        support::token(&self.syntax, SyntaxKind::NFKC_KW)
17834    }
17835    #[inline]
17836    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
17837        support::token(&self.syntax, SyntaxKind::NFKD_KW)
17838    }
17839}
17840
17841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17842pub struct UniqueConstraint {
17843    pub(crate) syntax: SyntaxNode,
17844}
17845impl UniqueConstraint {
17846    #[inline]
17847    pub fn column_list(&self) -> Option<ColumnList> {
17848        support::child(&self.syntax)
17849    }
17850    #[inline]
17851    pub fn constraint_name(&self) -> Option<ConstraintName> {
17852        support::child(&self.syntax)
17853    }
17854    #[inline]
17855    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
17856        support::child(&self.syntax)
17857    }
17858    #[inline]
17859    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
17860        support::child(&self.syntax)
17861    }
17862    #[inline]
17863    pub fn using_index(&self) -> Option<UsingIndex> {
17864        support::child(&self.syntax)
17865    }
17866    #[inline]
17867    pub fn unique_token(&self) -> Option<SyntaxToken> {
17868        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17869    }
17870}
17871
17872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17873pub struct Unlisten {
17874    pub(crate) syntax: SyntaxNode,
17875}
17876impl Unlisten {
17877    #[inline]
17878    pub fn name_ref(&self) -> Option<NameRef> {
17879        support::child(&self.syntax)
17880    }
17881    #[inline]
17882    pub fn star_token(&self) -> Option<SyntaxToken> {
17883        support::token(&self.syntax, SyntaxKind::STAR)
17884    }
17885    #[inline]
17886    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17887        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17888    }
17889    #[inline]
17890    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17891        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17892    }
17893}
17894
17895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17896pub struct Unlogged {
17897    pub(crate) syntax: SyntaxNode,
17898}
17899impl Unlogged {
17900    #[inline]
17901    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
17902        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
17903    }
17904}
17905
17906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17907pub struct Update {
17908    pub(crate) syntax: SyntaxNode,
17909}
17910impl Update {
17911    #[inline]
17912    pub fn alias(&self) -> Option<Alias> {
17913        support::child(&self.syntax)
17914    }
17915    #[inline]
17916    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
17917        support::child(&self.syntax)
17918    }
17919    #[inline]
17920    pub fn from_clause(&self) -> Option<FromClause> {
17921        support::child(&self.syntax)
17922    }
17923    #[inline]
17924    pub fn relation_name(&self) -> Option<RelationName> {
17925        support::child(&self.syntax)
17926    }
17927    #[inline]
17928    pub fn returning_clause(&self) -> Option<ReturningClause> {
17929        support::child(&self.syntax)
17930    }
17931    #[inline]
17932    pub fn set_clause(&self) -> Option<SetClause> {
17933        support::child(&self.syntax)
17934    }
17935    #[inline]
17936    pub fn where_clause(&self) -> Option<WhereClause> {
17937        support::child(&self.syntax)
17938    }
17939    #[inline]
17940    pub fn with_clause(&self) -> Option<WithClause> {
17941        support::child(&self.syntax)
17942    }
17943    #[inline]
17944    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
17945        support::token(&self.syntax, SyntaxKind::SEMICOLON)
17946    }
17947    #[inline]
17948    pub fn update_token(&self) -> Option<SyntaxToken> {
17949        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17950    }
17951}
17952
17953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17954pub struct UsingClause {
17955    pub(crate) syntax: SyntaxNode,
17956}
17957impl UsingClause {
17958    #[inline]
17959    pub fn from_items(&self) -> AstChildren<FromItem> {
17960        support::children(&self.syntax)
17961    }
17962    #[inline]
17963    pub fn using_token(&self) -> Option<SyntaxToken> {
17964        support::token(&self.syntax, SyntaxKind::USING_KW)
17965    }
17966}
17967
17968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17969pub struct UsingExprClause {
17970    pub(crate) syntax: SyntaxNode,
17971}
17972impl UsingExprClause {
17973    #[inline]
17974    pub fn expr(&self) -> Option<Expr> {
17975        support::child(&self.syntax)
17976    }
17977    #[inline]
17978    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17979        support::token(&self.syntax, SyntaxKind::L_PAREN)
17980    }
17981    #[inline]
17982    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17983        support::token(&self.syntax, SyntaxKind::R_PAREN)
17984    }
17985    #[inline]
17986    pub fn using_token(&self) -> Option<SyntaxToken> {
17987        support::token(&self.syntax, SyntaxKind::USING_KW)
17988    }
17989}
17990
17991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17992pub struct UsingIndex {
17993    pub(crate) syntax: SyntaxNode,
17994}
17995impl UsingIndex {
17996    #[inline]
17997    pub fn name_ref(&self) -> Option<NameRef> {
17998        support::child(&self.syntax)
17999    }
18000    #[inline]
18001    pub fn index_token(&self) -> Option<SyntaxToken> {
18002        support::token(&self.syntax, SyntaxKind::INDEX_KW)
18003    }
18004    #[inline]
18005    pub fn using_token(&self) -> Option<SyntaxToken> {
18006        support::token(&self.syntax, SyntaxKind::USING_KW)
18007    }
18008}
18009
18010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18011pub struct UsingMethod {
18012    pub(crate) syntax: SyntaxNode,
18013}
18014impl UsingMethod {
18015    #[inline]
18016    pub fn name_ref(&self) -> Option<NameRef> {
18017        support::child(&self.syntax)
18018    }
18019    #[inline]
18020    pub fn using_token(&self) -> Option<SyntaxToken> {
18021        support::token(&self.syntax, SyntaxKind::USING_KW)
18022    }
18023}
18024
18025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18026pub struct UsingOnClause {
18027    pub(crate) syntax: SyntaxNode,
18028}
18029impl UsingOnClause {
18030    #[inline]
18031    pub fn from_item(&self) -> Option<FromItem> {
18032        support::child(&self.syntax)
18033    }
18034    #[inline]
18035    pub fn on_clause(&self) -> Option<OnClause> {
18036        support::child(&self.syntax)
18037    }
18038    #[inline]
18039    pub fn using_token(&self) -> Option<SyntaxToken> {
18040        support::token(&self.syntax, SyntaxKind::USING_KW)
18041    }
18042}
18043
18044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18045pub struct Vacuum {
18046    pub(crate) syntax: SyntaxNode,
18047}
18048impl Vacuum {
18049    #[inline]
18050    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
18051        support::child(&self.syntax)
18052    }
18053    #[inline]
18054    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
18055        support::child(&self.syntax)
18056    }
18057    #[inline]
18058    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18059        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18060    }
18061    #[inline]
18062    pub fn analyse_token(&self) -> Option<SyntaxToken> {
18063        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
18064    }
18065    #[inline]
18066    pub fn analyze_token(&self) -> Option<SyntaxToken> {
18067        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
18068    }
18069    #[inline]
18070    pub fn freeze_token(&self) -> Option<SyntaxToken> {
18071        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
18072    }
18073    #[inline]
18074    pub fn full_token(&self) -> Option<SyntaxToken> {
18075        support::token(&self.syntax, SyntaxKind::FULL_KW)
18076    }
18077    #[inline]
18078    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
18079        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
18080    }
18081    #[inline]
18082    pub fn verbose_token(&self) -> Option<SyntaxToken> {
18083        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
18084    }
18085}
18086
18087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18088pub struct VacuumOption {
18089    pub(crate) syntax: SyntaxNode,
18090}
18091impl VacuumOption {
18092    #[inline]
18093    pub fn literal(&self) -> Option<Literal> {
18094        support::child(&self.syntax)
18095    }
18096}
18097
18098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18099pub struct VacuumOptionList {
18100    pub(crate) syntax: SyntaxNode,
18101}
18102impl VacuumOptionList {
18103    #[inline]
18104    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
18105        support::children(&self.syntax)
18106    }
18107    #[inline]
18108    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18109        support::token(&self.syntax, SyntaxKind::L_PAREN)
18110    }
18111    #[inline]
18112    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18113        support::token(&self.syntax, SyntaxKind::R_PAREN)
18114    }
18115}
18116
18117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18118pub struct ValidateConstraint {
18119    pub(crate) syntax: SyntaxNode,
18120}
18121impl ValidateConstraint {
18122    #[inline]
18123    pub fn name_ref(&self) -> Option<NameRef> {
18124        support::child(&self.syntax)
18125    }
18126    #[inline]
18127    pub fn constraint_token(&self) -> Option<SyntaxToken> {
18128        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
18129    }
18130    #[inline]
18131    pub fn validate_token(&self) -> Option<SyntaxToken> {
18132        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
18133    }
18134}
18135
18136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18137pub struct Values {
18138    pub(crate) syntax: SyntaxNode,
18139}
18140impl Values {
18141    #[inline]
18142    pub fn row_list(&self) -> Option<RowList> {
18143        support::child(&self.syntax)
18144    }
18145    #[inline]
18146    pub fn with_clause(&self) -> Option<WithClause> {
18147        support::child(&self.syntax)
18148    }
18149    #[inline]
18150    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
18151        support::token(&self.syntax, SyntaxKind::SEMICOLON)
18152    }
18153    #[inline]
18154    pub fn values_token(&self) -> Option<SyntaxToken> {
18155        support::token(&self.syntax, SyntaxKind::VALUES_KW)
18156    }
18157}
18158
18159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18160pub struct Variant {
18161    pub(crate) syntax: SyntaxNode,
18162}
18163impl Variant {
18164    #[inline]
18165    pub fn literal(&self) -> Option<Literal> {
18166        support::child(&self.syntax)
18167    }
18168}
18169
18170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18171pub struct VariantList {
18172    pub(crate) syntax: SyntaxNode,
18173}
18174impl VariantList {
18175    #[inline]
18176    pub fn variants(&self) -> AstChildren<Variant> {
18177        support::children(&self.syntax)
18178    }
18179    #[inline]
18180    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18181        support::token(&self.syntax, SyntaxKind::L_PAREN)
18182    }
18183    #[inline]
18184    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18185        support::token(&self.syntax, SyntaxKind::R_PAREN)
18186    }
18187}
18188
18189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18190pub struct VertexPattern {
18191    pub(crate) syntax: SyntaxNode,
18192}
18193impl VertexPattern {
18194    #[inline]
18195    pub fn is_label(&self) -> Option<IsLabel> {
18196        support::child(&self.syntax)
18197    }
18198    #[inline]
18199    pub fn name(&self) -> Option<Name> {
18200        support::child(&self.syntax)
18201    }
18202    #[inline]
18203    pub fn where_clause(&self) -> Option<WhereClause> {
18204        support::child(&self.syntax)
18205    }
18206    #[inline]
18207    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18208        support::token(&self.syntax, SyntaxKind::L_PAREN)
18209    }
18210    #[inline]
18211    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18212        support::token(&self.syntax, SyntaxKind::R_PAREN)
18213    }
18214}
18215
18216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18217pub struct VertexTableDef {
18218    pub(crate) syntax: SyntaxNode,
18219}
18220impl VertexTableDef {
18221    #[inline]
18222    pub fn column_list(&self) -> Option<ColumnList> {
18223        support::child(&self.syntax)
18224    }
18225    #[inline]
18226    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
18227        support::child(&self.syntax)
18228    }
18229    #[inline]
18230    pub fn name(&self) -> Option<Name> {
18231        support::child(&self.syntax)
18232    }
18233    #[inline]
18234    pub fn path(&self) -> Option<Path> {
18235        support::child(&self.syntax)
18236    }
18237    #[inline]
18238    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18239        support::token(&self.syntax, SyntaxKind::L_PAREN)
18240    }
18241    #[inline]
18242    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18243        support::token(&self.syntax, SyntaxKind::R_PAREN)
18244    }
18245    #[inline]
18246    pub fn as_token(&self) -> Option<SyntaxToken> {
18247        support::token(&self.syntax, SyntaxKind::AS_KW)
18248    }
18249    #[inline]
18250    pub fn key_token(&self) -> Option<SyntaxToken> {
18251        support::token(&self.syntax, SyntaxKind::KEY_KW)
18252    }
18253}
18254
18255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18256pub struct VertexTables {
18257    pub(crate) syntax: SyntaxNode,
18258}
18259impl VertexTables {
18260    #[inline]
18261    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
18262        support::children(&self.syntax)
18263    }
18264    #[inline]
18265    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18266        support::token(&self.syntax, SyntaxKind::L_PAREN)
18267    }
18268    #[inline]
18269    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18270        support::token(&self.syntax, SyntaxKind::R_PAREN)
18271    }
18272    #[inline]
18273    pub fn node_token(&self) -> Option<SyntaxToken> {
18274        support::token(&self.syntax, SyntaxKind::NODE_KW)
18275    }
18276    #[inline]
18277    pub fn tables_token(&self) -> Option<SyntaxToken> {
18278        support::token(&self.syntax, SyntaxKind::TABLES_KW)
18279    }
18280    #[inline]
18281    pub fn vertex_token(&self) -> Option<SyntaxToken> {
18282        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
18283    }
18284}
18285
18286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18287pub struct VolatilityFuncOption {
18288    pub(crate) syntax: SyntaxNode,
18289}
18290impl VolatilityFuncOption {
18291    #[inline]
18292    pub fn immutable_token(&self) -> Option<SyntaxToken> {
18293        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
18294    }
18295    #[inline]
18296    pub fn stable_token(&self) -> Option<SyntaxToken> {
18297        support::token(&self.syntax, SyntaxKind::STABLE_KW)
18298    }
18299    #[inline]
18300    pub fn volatile_token(&self) -> Option<SyntaxToken> {
18301        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
18302    }
18303}
18304
18305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18306pub struct WhenClause {
18307    pub(crate) syntax: SyntaxNode,
18308}
18309impl WhenClause {
18310    #[inline]
18311    pub fn then_token(&self) -> Option<SyntaxToken> {
18312        support::token(&self.syntax, SyntaxKind::THEN_KW)
18313    }
18314    #[inline]
18315    pub fn when_token(&self) -> Option<SyntaxToken> {
18316        support::token(&self.syntax, SyntaxKind::WHEN_KW)
18317    }
18318}
18319
18320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18321pub struct WhenClauseList {
18322    pub(crate) syntax: SyntaxNode,
18323}
18324impl WhenClauseList {
18325    #[inline]
18326    pub fn when_clause(&self) -> Option<WhenClause> {
18327        support::child(&self.syntax)
18328    }
18329    #[inline]
18330    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
18331        support::children(&self.syntax)
18332    }
18333}
18334
18335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18336pub struct WhenCondition {
18337    pub(crate) syntax: SyntaxNode,
18338}
18339impl WhenCondition {
18340    #[inline]
18341    pub fn expr(&self) -> Option<Expr> {
18342        support::child(&self.syntax)
18343    }
18344    #[inline]
18345    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18346        support::token(&self.syntax, SyntaxKind::L_PAREN)
18347    }
18348    #[inline]
18349    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18350        support::token(&self.syntax, SyntaxKind::R_PAREN)
18351    }
18352    #[inline]
18353    pub fn when_token(&self) -> Option<SyntaxToken> {
18354        support::token(&self.syntax, SyntaxKind::WHEN_KW)
18355    }
18356}
18357
18358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18359pub struct WhereClause {
18360    pub(crate) syntax: SyntaxNode,
18361}
18362impl WhereClause {
18363    #[inline]
18364    pub fn expr(&self) -> Option<Expr> {
18365        support::child(&self.syntax)
18366    }
18367    #[inline]
18368    pub fn where_token(&self) -> Option<SyntaxToken> {
18369        support::token(&self.syntax, SyntaxKind::WHERE_KW)
18370    }
18371}
18372
18373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18374pub struct WhereConditionClause {
18375    pub(crate) syntax: SyntaxNode,
18376}
18377impl WhereConditionClause {
18378    #[inline]
18379    pub fn expr(&self) -> Option<Expr> {
18380        support::child(&self.syntax)
18381    }
18382    #[inline]
18383    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18384        support::token(&self.syntax, SyntaxKind::L_PAREN)
18385    }
18386    #[inline]
18387    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18388        support::token(&self.syntax, SyntaxKind::R_PAREN)
18389    }
18390    #[inline]
18391    pub fn where_token(&self) -> Option<SyntaxToken> {
18392        support::token(&self.syntax, SyntaxKind::WHERE_KW)
18393    }
18394}
18395
18396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18397pub struct WhereCurrentOf {
18398    pub(crate) syntax: SyntaxNode,
18399}
18400impl WhereCurrentOf {
18401    #[inline]
18402    pub fn name_ref(&self) -> Option<NameRef> {
18403        support::child(&self.syntax)
18404    }
18405    #[inline]
18406    pub fn current_token(&self) -> Option<SyntaxToken> {
18407        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
18408    }
18409    #[inline]
18410    pub fn of_token(&self) -> Option<SyntaxToken> {
18411        support::token(&self.syntax, SyntaxKind::OF_KW)
18412    }
18413    #[inline]
18414    pub fn where_token(&self) -> Option<SyntaxToken> {
18415        support::token(&self.syntax, SyntaxKind::WHERE_KW)
18416    }
18417}
18418
18419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18420pub struct WindowClause {
18421    pub(crate) syntax: SyntaxNode,
18422}
18423impl WindowClause {
18424    #[inline]
18425    pub fn window_defs(&self) -> AstChildren<WindowDef> {
18426        support::children(&self.syntax)
18427    }
18428    #[inline]
18429    pub fn window_token(&self) -> Option<SyntaxToken> {
18430        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
18431    }
18432}
18433
18434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18435pub struct WindowDef {
18436    pub(crate) syntax: SyntaxNode,
18437}
18438impl WindowDef {
18439    #[inline]
18440    pub fn name(&self) -> Option<Name> {
18441        support::child(&self.syntax)
18442    }
18443    #[inline]
18444    pub fn window_spec(&self) -> Option<WindowSpec> {
18445        support::child(&self.syntax)
18446    }
18447    #[inline]
18448    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18449        support::token(&self.syntax, SyntaxKind::L_PAREN)
18450    }
18451    #[inline]
18452    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18453        support::token(&self.syntax, SyntaxKind::R_PAREN)
18454    }
18455    #[inline]
18456    pub fn as_token(&self) -> Option<SyntaxToken> {
18457        support::token(&self.syntax, SyntaxKind::AS_KW)
18458    }
18459}
18460
18461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18462pub struct WindowFuncOption {
18463    pub(crate) syntax: SyntaxNode,
18464}
18465impl WindowFuncOption {
18466    #[inline]
18467    pub fn window_token(&self) -> Option<SyntaxToken> {
18468        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
18469    }
18470}
18471
18472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18473pub struct WindowSpec {
18474    pub(crate) syntax: SyntaxNode,
18475}
18476impl WindowSpec {
18477    #[inline]
18478    pub fn exprs(&self) -> AstChildren<Expr> {
18479        support::children(&self.syntax)
18480    }
18481    #[inline]
18482    pub fn frame_clause(&self) -> Option<FrameClause> {
18483        support::child(&self.syntax)
18484    }
18485    #[inline]
18486    pub fn order_by_clause(&self) -> Option<OrderByClause> {
18487        support::child(&self.syntax)
18488    }
18489    #[inline]
18490    pub fn by_token(&self) -> Option<SyntaxToken> {
18491        support::token(&self.syntax, SyntaxKind::BY_KW)
18492    }
18493    #[inline]
18494    pub fn ident_token(&self) -> Option<SyntaxToken> {
18495        support::token(&self.syntax, SyntaxKind::IDENT)
18496    }
18497    #[inline]
18498    pub fn partition_token(&self) -> Option<SyntaxToken> {
18499        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
18500    }
18501}
18502
18503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18504pub struct WithCheckExprClause {
18505    pub(crate) syntax: SyntaxNode,
18506}
18507impl WithCheckExprClause {
18508    #[inline]
18509    pub fn expr(&self) -> Option<Expr> {
18510        support::child(&self.syntax)
18511    }
18512    #[inline]
18513    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18514        support::token(&self.syntax, SyntaxKind::L_PAREN)
18515    }
18516    #[inline]
18517    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18518        support::token(&self.syntax, SyntaxKind::R_PAREN)
18519    }
18520    #[inline]
18521    pub fn check_token(&self) -> Option<SyntaxToken> {
18522        support::token(&self.syntax, SyntaxKind::CHECK_KW)
18523    }
18524    #[inline]
18525    pub fn with_token(&self) -> Option<SyntaxToken> {
18526        support::token(&self.syntax, SyntaxKind::WITH_KW)
18527    }
18528}
18529
18530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18531pub struct WithClause {
18532    pub(crate) syntax: SyntaxNode,
18533}
18534impl WithClause {
18535    #[inline]
18536    pub fn with_tables(&self) -> AstChildren<WithTable> {
18537        support::children(&self.syntax)
18538    }
18539    #[inline]
18540    pub fn recursive_token(&self) -> Option<SyntaxToken> {
18541        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
18542    }
18543    #[inline]
18544    pub fn with_token(&self) -> Option<SyntaxToken> {
18545        support::token(&self.syntax, SyntaxKind::WITH_KW)
18546    }
18547}
18548
18549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18550pub struct WithData {
18551    pub(crate) syntax: SyntaxNode,
18552}
18553impl WithData {
18554    #[inline]
18555    pub fn data_token(&self) -> Option<SyntaxToken> {
18556        support::token(&self.syntax, SyntaxKind::DATA_KW)
18557    }
18558    #[inline]
18559    pub fn with_token(&self) -> Option<SyntaxToken> {
18560        support::token(&self.syntax, SyntaxKind::WITH_KW)
18561    }
18562}
18563
18564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18565pub struct WithNoData {
18566    pub(crate) syntax: SyntaxNode,
18567}
18568impl WithNoData {
18569    #[inline]
18570    pub fn data_token(&self) -> Option<SyntaxToken> {
18571        support::token(&self.syntax, SyntaxKind::DATA_KW)
18572    }
18573    #[inline]
18574    pub fn no_token(&self) -> Option<SyntaxToken> {
18575        support::token(&self.syntax, SyntaxKind::NO_KW)
18576    }
18577    #[inline]
18578    pub fn with_token(&self) -> Option<SyntaxToken> {
18579        support::token(&self.syntax, SyntaxKind::WITH_KW)
18580    }
18581}
18582
18583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18584pub struct WithOptions {
18585    pub(crate) syntax: SyntaxNode,
18586}
18587impl WithOptions {
18588    #[inline]
18589    pub fn options_token(&self) -> Option<SyntaxToken> {
18590        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
18591    }
18592    #[inline]
18593    pub fn with_token(&self) -> Option<SyntaxToken> {
18594        support::token(&self.syntax, SyntaxKind::WITH_KW)
18595    }
18596}
18597
18598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18599pub struct WithParams {
18600    pub(crate) syntax: SyntaxNode,
18601}
18602impl WithParams {
18603    #[inline]
18604    pub fn attribute_list(&self) -> Option<AttributeList> {
18605        support::child(&self.syntax)
18606    }
18607    #[inline]
18608    pub fn with_token(&self) -> Option<SyntaxToken> {
18609        support::token(&self.syntax, SyntaxKind::WITH_KW)
18610    }
18611}
18612
18613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18614pub struct WithTable {
18615    pub(crate) syntax: SyntaxNode,
18616}
18617impl WithTable {
18618    #[inline]
18619    pub fn column_list(&self) -> Option<ColumnList> {
18620        support::child(&self.syntax)
18621    }
18622    #[inline]
18623    pub fn materialized(&self) -> Option<Materialized> {
18624        support::child(&self.syntax)
18625    }
18626    #[inline]
18627    pub fn name(&self) -> Option<Name> {
18628        support::child(&self.syntax)
18629    }
18630    #[inline]
18631    pub fn not_materialized(&self) -> Option<NotMaterialized> {
18632        support::child(&self.syntax)
18633    }
18634    #[inline]
18635    pub fn query(&self) -> Option<WithQuery> {
18636        support::child(&self.syntax)
18637    }
18638    #[inline]
18639    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18640        support::token(&self.syntax, SyntaxKind::L_PAREN)
18641    }
18642    #[inline]
18643    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18644        support::token(&self.syntax, SyntaxKind::R_PAREN)
18645    }
18646    #[inline]
18647    pub fn as_token(&self) -> Option<SyntaxToken> {
18648        support::token(&self.syntax, SyntaxKind::AS_KW)
18649    }
18650}
18651
18652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18653pub struct WithTimezone {
18654    pub(crate) syntax: SyntaxNode,
18655}
18656impl WithTimezone {
18657    #[inline]
18658    pub fn time_token(&self) -> Option<SyntaxToken> {
18659        support::token(&self.syntax, SyntaxKind::TIME_KW)
18660    }
18661    #[inline]
18662    pub fn with_token(&self) -> Option<SyntaxToken> {
18663        support::token(&self.syntax, SyntaxKind::WITH_KW)
18664    }
18665    #[inline]
18666    pub fn zone_token(&self) -> Option<SyntaxToken> {
18667        support::token(&self.syntax, SyntaxKind::ZONE_KW)
18668    }
18669}
18670
18671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18672pub struct WithinClause {
18673    pub(crate) syntax: SyntaxNode,
18674}
18675impl WithinClause {
18676    #[inline]
18677    pub fn order_by_clause(&self) -> Option<OrderByClause> {
18678        support::child(&self.syntax)
18679    }
18680    #[inline]
18681    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18682        support::token(&self.syntax, SyntaxKind::L_PAREN)
18683    }
18684    #[inline]
18685    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18686        support::token(&self.syntax, SyntaxKind::R_PAREN)
18687    }
18688    #[inline]
18689    pub fn group_token(&self) -> Option<SyntaxToken> {
18690        support::token(&self.syntax, SyntaxKind::GROUP_KW)
18691    }
18692    #[inline]
18693    pub fn within_token(&self) -> Option<SyntaxToken> {
18694        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
18695    }
18696}
18697
18698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18699pub struct WithoutOids {
18700    pub(crate) syntax: SyntaxNode,
18701}
18702impl WithoutOids {
18703    #[inline]
18704    pub fn oids_token(&self) -> Option<SyntaxToken> {
18705        support::token(&self.syntax, SyntaxKind::OIDS_KW)
18706    }
18707    #[inline]
18708    pub fn without_token(&self) -> Option<SyntaxToken> {
18709        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
18710    }
18711}
18712
18713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18714pub struct WithoutTimezone {
18715    pub(crate) syntax: SyntaxNode,
18716}
18717impl WithoutTimezone {
18718    #[inline]
18719    pub fn time_token(&self) -> Option<SyntaxToken> {
18720        support::token(&self.syntax, SyntaxKind::TIME_KW)
18721    }
18722    #[inline]
18723    pub fn without_token(&self) -> Option<SyntaxToken> {
18724        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
18725    }
18726    #[inline]
18727    pub fn zone_token(&self) -> Option<SyntaxToken> {
18728        support::token(&self.syntax, SyntaxKind::ZONE_KW)
18729    }
18730}
18731
18732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18733pub struct XmlColumnOption {
18734    pub(crate) syntax: SyntaxNode,
18735}
18736impl XmlColumnOption {
18737    #[inline]
18738    pub fn expr(&self) -> Option<Expr> {
18739        support::child(&self.syntax)
18740    }
18741    #[inline]
18742    pub fn default_token(&self) -> Option<SyntaxToken> {
18743        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18744    }
18745    #[inline]
18746    pub fn ident_token(&self) -> Option<SyntaxToken> {
18747        support::token(&self.syntax, SyntaxKind::IDENT)
18748    }
18749    #[inline]
18750    pub fn not_token(&self) -> Option<SyntaxToken> {
18751        support::token(&self.syntax, SyntaxKind::NOT_KW)
18752    }
18753    #[inline]
18754    pub fn null_token(&self) -> Option<SyntaxToken> {
18755        support::token(&self.syntax, SyntaxKind::NULL_KW)
18756    }
18757    #[inline]
18758    pub fn path_token(&self) -> Option<SyntaxToken> {
18759        support::token(&self.syntax, SyntaxKind::PATH_KW)
18760    }
18761}
18762
18763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18764pub struct XmlColumnOptionList {
18765    pub(crate) syntax: SyntaxNode,
18766}
18767impl XmlColumnOptionList {
18768    #[inline]
18769    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
18770        support::child(&self.syntax)
18771    }
18772    #[inline]
18773    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
18774        support::children(&self.syntax)
18775    }
18776}
18777
18778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18779pub struct XmlElementFn {
18780    pub(crate) syntax: SyntaxNode,
18781}
18782impl XmlElementFn {
18783    #[inline]
18784    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18785        support::child(&self.syntax)
18786    }
18787    #[inline]
18788    pub fn exprs(&self) -> AstChildren<Expr> {
18789        support::children(&self.syntax)
18790    }
18791    #[inline]
18792    pub fn name(&self) -> Option<Name> {
18793        support::child(&self.syntax)
18794    }
18795    #[inline]
18796    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18797        support::token(&self.syntax, SyntaxKind::L_PAREN)
18798    }
18799    #[inline]
18800    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18801        support::token(&self.syntax, SyntaxKind::R_PAREN)
18802    }
18803    #[inline]
18804    pub fn comma_token(&self) -> Option<SyntaxToken> {
18805        support::token(&self.syntax, SyntaxKind::COMMA)
18806    }
18807    #[inline]
18808    pub fn name_token(&self) -> Option<SyntaxToken> {
18809        support::token(&self.syntax, SyntaxKind::NAME_KW)
18810    }
18811    #[inline]
18812    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
18813        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
18814    }
18815    #[inline]
18816    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
18817        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
18818    }
18819}
18820
18821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18822pub struct XmlExistsFn {
18823    pub(crate) syntax: SyntaxNode,
18824}
18825impl XmlExistsFn {
18826    #[inline]
18827    pub fn expr(&self) -> Option<Expr> {
18828        support::child(&self.syntax)
18829    }
18830    #[inline]
18831    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18832        support::child(&self.syntax)
18833    }
18834    #[inline]
18835    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18836        support::token(&self.syntax, SyntaxKind::L_PAREN)
18837    }
18838    #[inline]
18839    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18840        support::token(&self.syntax, SyntaxKind::R_PAREN)
18841    }
18842    #[inline]
18843    pub fn passing_token(&self) -> Option<SyntaxToken> {
18844        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18845    }
18846    #[inline]
18847    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
18848        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
18849    }
18850}
18851
18852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18853pub struct XmlForestFn {
18854    pub(crate) syntax: SyntaxNode,
18855}
18856impl XmlForestFn {
18857    #[inline]
18858    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18859        support::child(&self.syntax)
18860    }
18861    #[inline]
18862    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18863        support::token(&self.syntax, SyntaxKind::L_PAREN)
18864    }
18865    #[inline]
18866    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18867        support::token(&self.syntax, SyntaxKind::R_PAREN)
18868    }
18869    #[inline]
18870    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
18871        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
18872    }
18873}
18874
18875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18876pub struct XmlNamespace {
18877    pub(crate) syntax: SyntaxNode,
18878}
18879impl XmlNamespace {
18880    #[inline]
18881    pub fn expr(&self) -> Option<Expr> {
18882        support::child(&self.syntax)
18883    }
18884    #[inline]
18885    pub fn name(&self) -> Option<Name> {
18886        support::child(&self.syntax)
18887    }
18888    #[inline]
18889    pub fn as_token(&self) -> Option<SyntaxToken> {
18890        support::token(&self.syntax, SyntaxKind::AS_KW)
18891    }
18892    #[inline]
18893    pub fn default_token(&self) -> Option<SyntaxToken> {
18894        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18895    }
18896}
18897
18898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18899pub struct XmlNamespaceList {
18900    pub(crate) syntax: SyntaxNode,
18901}
18902impl XmlNamespaceList {
18903    #[inline]
18904    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18905        support::children(&self.syntax)
18906    }
18907    #[inline]
18908    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18909        support::token(&self.syntax, SyntaxKind::L_PAREN)
18910    }
18911    #[inline]
18912    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18913        support::token(&self.syntax, SyntaxKind::R_PAREN)
18914    }
18915}
18916
18917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18918pub struct XmlParseFn {
18919    pub(crate) syntax: SyntaxNode,
18920}
18921impl XmlParseFn {
18922    #[inline]
18923    pub fn expr(&self) -> Option<Expr> {
18924        support::child(&self.syntax)
18925    }
18926    #[inline]
18927    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18928        support::token(&self.syntax, SyntaxKind::L_PAREN)
18929    }
18930    #[inline]
18931    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18932        support::token(&self.syntax, SyntaxKind::R_PAREN)
18933    }
18934    #[inline]
18935    pub fn content_token(&self) -> Option<SyntaxToken> {
18936        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18937    }
18938    #[inline]
18939    pub fn document_token(&self) -> Option<SyntaxToken> {
18940        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18941    }
18942    #[inline]
18943    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18944        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18945    }
18946    #[inline]
18947    pub fn strip_token(&self) -> Option<SyntaxToken> {
18948        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18949    }
18950    #[inline]
18951    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18952        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18953    }
18954    #[inline]
18955    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18956        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18957    }
18958}
18959
18960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18961pub struct XmlPassingMech {
18962    pub(crate) syntax: SyntaxNode,
18963}
18964impl XmlPassingMech {
18965    #[inline]
18966    pub fn by_token(&self) -> Option<SyntaxToken> {
18967        support::token(&self.syntax, SyntaxKind::BY_KW)
18968    }
18969    #[inline]
18970    pub fn ref_token(&self) -> Option<SyntaxToken> {
18971        support::token(&self.syntax, SyntaxKind::REF_KW)
18972    }
18973    #[inline]
18974    pub fn value_token(&self) -> Option<SyntaxToken> {
18975        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18976    }
18977}
18978
18979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18980pub struct XmlPiFn {
18981    pub(crate) syntax: SyntaxNode,
18982}
18983impl XmlPiFn {
18984    #[inline]
18985    pub fn expr(&self) -> Option<Expr> {
18986        support::child(&self.syntax)
18987    }
18988    #[inline]
18989    pub fn name(&self) -> Option<Name> {
18990        support::child(&self.syntax)
18991    }
18992    #[inline]
18993    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18994        support::token(&self.syntax, SyntaxKind::L_PAREN)
18995    }
18996    #[inline]
18997    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18998        support::token(&self.syntax, SyntaxKind::R_PAREN)
18999    }
19000    #[inline]
19001    pub fn comma_token(&self) -> Option<SyntaxToken> {
19002        support::token(&self.syntax, SyntaxKind::COMMA)
19003    }
19004    #[inline]
19005    pub fn name_token(&self) -> Option<SyntaxToken> {
19006        support::token(&self.syntax, SyntaxKind::NAME_KW)
19007    }
19008    #[inline]
19009    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
19010        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
19011    }
19012}
19013
19014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19015pub struct XmlRootFn {
19016    pub(crate) syntax: SyntaxNode,
19017}
19018impl XmlRootFn {
19019    #[inline]
19020    pub fn expr(&self) -> Option<Expr> {
19021        support::child(&self.syntax)
19022    }
19023    #[inline]
19024    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19025        support::token(&self.syntax, SyntaxKind::L_PAREN)
19026    }
19027    #[inline]
19028    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19029        support::token(&self.syntax, SyntaxKind::R_PAREN)
19030    }
19031    #[inline]
19032    pub fn comma_token(&self) -> Option<SyntaxToken> {
19033        support::token(&self.syntax, SyntaxKind::COMMA)
19034    }
19035    #[inline]
19036    pub fn no_token(&self) -> Option<SyntaxToken> {
19037        support::token(&self.syntax, SyntaxKind::NO_KW)
19038    }
19039    #[inline]
19040    pub fn standalone_token(&self) -> Option<SyntaxToken> {
19041        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
19042    }
19043    #[inline]
19044    pub fn value_token(&self) -> Option<SyntaxToken> {
19045        support::token(&self.syntax, SyntaxKind::VALUE_KW)
19046    }
19047    #[inline]
19048    pub fn version_token(&self) -> Option<SyntaxToken> {
19049        support::token(&self.syntax, SyntaxKind::VERSION_KW)
19050    }
19051    #[inline]
19052    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
19053        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
19054    }
19055    #[inline]
19056    pub fn yes_token(&self) -> Option<SyntaxToken> {
19057        support::token(&self.syntax, SyntaxKind::YES_KW)
19058    }
19059}
19060
19061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19062pub struct XmlRowPassingClause {
19063    pub(crate) syntax: SyntaxNode,
19064}
19065impl XmlRowPassingClause {
19066    #[inline]
19067    pub fn expr(&self) -> Option<Expr> {
19068        support::child(&self.syntax)
19069    }
19070    #[inline]
19071    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
19072        support::child(&self.syntax)
19073    }
19074    #[inline]
19075    pub fn passing_token(&self) -> Option<SyntaxToken> {
19076        support::token(&self.syntax, SyntaxKind::PASSING_KW)
19077    }
19078}
19079
19080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19081pub struct XmlSerializeFn {
19082    pub(crate) syntax: SyntaxNode,
19083}
19084impl XmlSerializeFn {
19085    #[inline]
19086    pub fn expr(&self) -> Option<Expr> {
19087        support::child(&self.syntax)
19088    }
19089    #[inline]
19090    pub fn ty(&self) -> Option<Type> {
19091        support::child(&self.syntax)
19092    }
19093    #[inline]
19094    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19095        support::token(&self.syntax, SyntaxKind::L_PAREN)
19096    }
19097    #[inline]
19098    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19099        support::token(&self.syntax, SyntaxKind::R_PAREN)
19100    }
19101    #[inline]
19102    pub fn as_token(&self) -> Option<SyntaxToken> {
19103        support::token(&self.syntax, SyntaxKind::AS_KW)
19104    }
19105    #[inline]
19106    pub fn content_token(&self) -> Option<SyntaxToken> {
19107        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
19108    }
19109    #[inline]
19110    pub fn document_token(&self) -> Option<SyntaxToken> {
19111        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
19112    }
19113    #[inline]
19114    pub fn indent_token(&self) -> Option<SyntaxToken> {
19115        support::token(&self.syntax, SyntaxKind::INDENT_KW)
19116    }
19117    #[inline]
19118    pub fn no_token(&self) -> Option<SyntaxToken> {
19119        support::token(&self.syntax, SyntaxKind::NO_KW)
19120    }
19121    #[inline]
19122    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
19123        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
19124    }
19125}
19126
19127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19128pub struct XmlTable {
19129    pub(crate) syntax: SyntaxNode,
19130}
19131impl XmlTable {
19132    #[inline]
19133    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
19134        support::child(&self.syntax)
19135    }
19136    #[inline]
19137    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
19138        support::child(&self.syntax)
19139    }
19140    #[inline]
19141    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
19142        support::child(&self.syntax)
19143    }
19144    #[inline]
19145    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
19146        support::token(&self.syntax, SyntaxKind::L_PAREN)
19147    }
19148    #[inline]
19149    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
19150        support::token(&self.syntax, SyntaxKind::R_PAREN)
19151    }
19152    #[inline]
19153    pub fn comma_token(&self) -> Option<SyntaxToken> {
19154        support::token(&self.syntax, SyntaxKind::COMMA)
19155    }
19156    #[inline]
19157    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
19158        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
19159    }
19160    #[inline]
19161    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
19162        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
19163    }
19164}
19165
19166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19167pub struct XmlTableColumn {
19168    pub(crate) syntax: SyntaxNode,
19169}
19170impl XmlTableColumn {
19171    #[inline]
19172    pub fn name(&self) -> Option<Name> {
19173        support::child(&self.syntax)
19174    }
19175    #[inline]
19176    pub fn ty(&self) -> Option<Type> {
19177        support::child(&self.syntax)
19178    }
19179    #[inline]
19180    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
19181        support::child(&self.syntax)
19182    }
19183    #[inline]
19184    pub fn for_token(&self) -> Option<SyntaxToken> {
19185        support::token(&self.syntax, SyntaxKind::FOR_KW)
19186    }
19187    #[inline]
19188    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
19189        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
19190    }
19191}
19192
19193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19194pub struct XmlTableColumnList {
19195    pub(crate) syntax: SyntaxNode,
19196}
19197impl XmlTableColumnList {
19198    #[inline]
19199    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
19200        support::children(&self.syntax)
19201    }
19202    #[inline]
19203    pub fn columns_token(&self) -> Option<SyntaxToken> {
19204        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
19205    }
19206}
19207
19208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19209pub enum AlterColumnOption {
19210    AddGenerated(AddGenerated),
19211    DropDefault(DropDefault),
19212    DropExpression(DropExpression),
19213    DropIdentity(DropIdentity),
19214    DropNotNull(DropNotNull),
19215    Inherit(Inherit),
19216    NoInherit(NoInherit),
19217    ResetOptions(ResetOptions),
19218    Restart(Restart),
19219    SetCompression(SetCompression),
19220    SetDefault(SetDefault),
19221    SetExpression(SetExpression),
19222    SetGenerated(SetGenerated),
19223    SetGeneratedOptions(SetGeneratedOptions),
19224    SetNotNull(SetNotNull),
19225    SetOptions(SetOptions),
19226    SetOptionsList(SetOptionsList),
19227    SetSequenceOption(SetSequenceOption),
19228    SetStatistics(SetStatistics),
19229    SetStorage(SetStorage),
19230    SetType(SetType),
19231}
19232
19233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19234pub enum AlterDomainAction {
19235    AddConstraint(AddConstraint),
19236    DropConstraint(DropConstraint),
19237    DropDefault(DropDefault),
19238    DropNotNull(DropNotNull),
19239    OwnerTo(OwnerTo),
19240    RenameConstraint(RenameConstraint),
19241    RenameTo(RenameTo),
19242    SetDefault(SetDefault),
19243    SetNotNull(SetNotNull),
19244    SetSchema(SetSchema),
19245    ValidateConstraint(ValidateConstraint),
19246}
19247
19248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19249pub enum AlterIndexAction {
19250    AlterSetStatistics(AlterSetStatistics),
19251    AttachPartition(AttachPartition),
19252    DependsOnExtension(DependsOnExtension),
19253    NoDependsOnExtension(NoDependsOnExtension),
19254    RenameTo(RenameTo),
19255    ResetOptions(ResetOptions),
19256    SetOptions(SetOptions),
19257    SetTablespace(SetTablespace),
19258}
19259
19260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19261pub enum AlterMaterializedViewAction {
19262    DependsOnExtension(DependsOnExtension),
19263    NoDependsOnExtension(NoDependsOnExtension),
19264    RenameColumn(RenameColumn),
19265    RenameTo(RenameTo),
19266    SetSchema(SetSchema),
19267    AlterTableAction(AlterTableAction),
19268}
19269
19270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19271pub enum AlterPropertyGraphAction {
19272    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
19273    AddVertexEdgeTables(AddVertexEdgeTables),
19274    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
19275    DropEdgeTables(DropEdgeTables),
19276    DropVertexEdgeLabel(DropVertexEdgeLabel),
19277    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
19278    DropVertexTables(DropVertexTables),
19279    OwnerTo(OwnerTo),
19280    RenameTo(RenameTo),
19281    SetSchema(SetSchema),
19282}
19283
19284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19285pub enum AlterTableAction {
19286    AddColumn(AddColumn),
19287    AddConstraint(AddConstraint),
19288    AlterColumn(AlterColumn),
19289    AlterConstraint(AlterConstraint),
19290    AttachPartition(AttachPartition),
19291    ClusterOn(ClusterOn),
19292    DetachPartition(DetachPartition),
19293    DisableRls(DisableRls),
19294    DisableRule(DisableRule),
19295    DisableTrigger(DisableTrigger),
19296    DropColumn(DropColumn),
19297    DropConstraint(DropConstraint),
19298    EnableAlwaysRule(EnableAlwaysRule),
19299    EnableAlwaysTrigger(EnableAlwaysTrigger),
19300    EnableReplicaRule(EnableReplicaRule),
19301    EnableReplicaTrigger(EnableReplicaTrigger),
19302    EnableRls(EnableRls),
19303    EnableRule(EnableRule),
19304    EnableTrigger(EnableTrigger),
19305    ForceRls(ForceRls),
19306    InheritTable(InheritTable),
19307    MergePartitions(MergePartitions),
19308    NoForceRls(NoForceRls),
19309    NoInheritTable(NoInheritTable),
19310    NotOf(NotOf),
19311    OfType(OfType),
19312    OptionItemList(OptionItemList),
19313    OwnerTo(OwnerTo),
19314    RenameColumn(RenameColumn),
19315    RenameConstraint(RenameConstraint),
19316    RenameTo(RenameTo),
19317    ReplicaIdentity(ReplicaIdentity),
19318    ResetOptions(ResetOptions),
19319    SetAccessMethod(SetAccessMethod),
19320    SetLogged(SetLogged),
19321    SetOptions(SetOptions),
19322    SetSchema(SetSchema),
19323    SetTablespace(SetTablespace),
19324    SetUnlogged(SetUnlogged),
19325    SetWithoutCluster(SetWithoutCluster),
19326    SetWithoutOids(SetWithoutOids),
19327    SplitPartition(SplitPartition),
19328    ValidateConstraint(ValidateConstraint),
19329}
19330
19331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19332pub enum AlterTypeAction {
19333    AddAttribute(AddAttribute),
19334    AlterAttribute(AlterAttribute),
19335    DropAttribute(DropAttribute),
19336}
19337
19338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19339pub enum BeginFuncOption {
19340    ReturnFuncOption(ReturnFuncOption),
19341    Stmt(Stmt),
19342}
19343
19344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19345pub enum ColumnConstraint {
19346    CheckConstraint(CheckConstraint),
19347    DefaultConstraint(DefaultConstraint),
19348    ExcludeConstraint(ExcludeConstraint),
19349    NotNullConstraint(NotNullConstraint),
19350    PrimaryKeyConstraint(PrimaryKeyConstraint),
19351    ReferencesConstraint(ReferencesConstraint),
19352    UniqueConstraint(UniqueConstraint),
19353}
19354
19355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19356pub enum ConfigValue {
19357    Literal(Literal),
19358    NameRef(NameRef),
19359}
19360
19361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19362pub enum ConflictAction {
19363    ConflictDoNothing(ConflictDoNothing),
19364    ConflictDoSelect(ConflictDoSelect),
19365    ConflictDoUpdateSet(ConflictDoUpdateSet),
19366}
19367
19368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19369pub enum ConflictTarget {
19370    ConflictOnConstraint(ConflictOnConstraint),
19371    ConflictOnIndex(ConflictOnIndex),
19372}
19373
19374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19375pub enum Constraint {
19376    CheckConstraint(CheckConstraint),
19377    DefaultConstraint(DefaultConstraint),
19378    ForeignKeyConstraint(ForeignKeyConstraint),
19379    GeneratedConstraint(GeneratedConstraint),
19380    NotNullConstraint(NotNullConstraint),
19381    NullConstraint(NullConstraint),
19382    PrimaryKeyConstraint(PrimaryKeyConstraint),
19383    ReferencesConstraint(ReferencesConstraint),
19384    UniqueConstraint(UniqueConstraint),
19385}
19386
19387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19388pub enum ElementTableLabelAndProperties {
19389    LabelAndPropertiesList(LabelAndPropertiesList),
19390    ElementTableProperties(ElementTableProperties),
19391}
19392
19393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19394pub enum ElementTableProperties {
19395    AllProperties(AllProperties),
19396    NoProperties(NoProperties),
19397    Properties(Properties),
19398}
19399
19400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19401pub enum ExplainStmt {
19402    CompoundSelect(CompoundSelect),
19403    CreateMaterializedView(CreateMaterializedView),
19404    CreateTableAs(CreateTableAs),
19405    Declare(Declare),
19406    Delete(Delete),
19407    Execute(Execute),
19408    Insert(Insert),
19409    Merge(Merge),
19410    ParenSelect(ParenSelect),
19411    Select(Select),
19412    SelectInto(SelectInto),
19413    Table(Table),
19414    Update(Update),
19415    Values(Values),
19416}
19417
19418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19419pub enum Expr {
19420    ArrayExpr(ArrayExpr),
19421    BetweenExpr(BetweenExpr),
19422    BinExpr(BinExpr),
19423    CallExpr(CallExpr),
19424    CaseExpr(CaseExpr),
19425    CastExpr(CastExpr),
19426    FieldExpr(FieldExpr),
19427    IndexExpr(IndexExpr),
19428    Literal(Literal),
19429    NameRef(NameRef),
19430    ParenExpr(ParenExpr),
19431    PostfixExpr(PostfixExpr),
19432    PrefixExpr(PrefixExpr),
19433    SliceExpr(SliceExpr),
19434    TupleExpr(TupleExpr),
19435}
19436
19437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19438pub enum FuncOption {
19439    AsFuncOption(AsFuncOption),
19440    BeginFuncOptionList(BeginFuncOptionList),
19441    CostFuncOption(CostFuncOption),
19442    LanguageFuncOption(LanguageFuncOption),
19443    LeakproofFuncOption(LeakproofFuncOption),
19444    ParallelFuncOption(ParallelFuncOption),
19445    ResetFuncOption(ResetFuncOption),
19446    ReturnFuncOption(ReturnFuncOption),
19447    RowsFuncOption(RowsFuncOption),
19448    SecurityFuncOption(SecurityFuncOption),
19449    SetFuncOption(SetFuncOption),
19450    StrictFuncOption(StrictFuncOption),
19451    SupportFuncOption(SupportFuncOption),
19452    TransformFuncOption(TransformFuncOption),
19453    VolatilityFuncOption(VolatilityFuncOption),
19454    WindowFuncOption(WindowFuncOption),
19455}
19456
19457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19458pub enum GroupBy {
19459    GroupingCube(GroupingCube),
19460    GroupingExpr(GroupingExpr),
19461    GroupingRollup(GroupingRollup),
19462    GroupingSets(GroupingSets),
19463}
19464
19465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19466pub enum JoinType {
19467    JoinCross(JoinCross),
19468    JoinFull(JoinFull),
19469    JoinInner(JoinInner),
19470    JoinLeft(JoinLeft),
19471    JoinRight(JoinRight),
19472}
19473
19474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19475pub enum JsonBehavior {
19476    JsonBehaviorDefault(JsonBehaviorDefault),
19477    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
19478    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
19479    JsonBehaviorError(JsonBehaviorError),
19480    JsonBehaviorFalse(JsonBehaviorFalse),
19481    JsonBehaviorNull(JsonBehaviorNull),
19482    JsonBehaviorTrue(JsonBehaviorTrue),
19483    JsonBehaviorUnknown(JsonBehaviorUnknown),
19484}
19485
19486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19487pub enum MatchType {
19488    MatchFull(MatchFull),
19489    MatchPartial(MatchPartial),
19490    MatchSimple(MatchSimple),
19491}
19492
19493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19494pub enum MergeAction {
19495    MergeDelete(MergeDelete),
19496    MergeDoNothing(MergeDoNothing),
19497    MergeInsert(MergeInsert),
19498    MergeUpdate(MergeUpdate),
19499}
19500
19501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19502pub enum MergeWhenClause {
19503    MergeWhenMatched(MergeWhenMatched),
19504    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
19505    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
19506}
19507
19508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19509pub enum OnCommitAction {
19510    DeleteRows(DeleteRows),
19511    Drop(Drop),
19512    PreserveRows(PreserveRows),
19513}
19514
19515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19516pub enum ParamMode {
19517    ParamIn(ParamIn),
19518    ParamInOut(ParamInOut),
19519    ParamOut(ParamOut),
19520    ParamVariadic(ParamVariadic),
19521}
19522
19523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19524pub enum PartitionType {
19525    PartitionDefault(PartitionDefault),
19526    PartitionForValuesFrom(PartitionForValuesFrom),
19527    PartitionForValuesIn(PartitionForValuesIn),
19528    PartitionForValuesWith(PartitionForValuesWith),
19529}
19530
19531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19532pub enum PathPrimary {
19533    EdgeAny(EdgeAny),
19534    EdgeLeft(EdgeLeft),
19535    EdgeRight(EdgeRight),
19536    ParenGraphPattern(ParenGraphPattern),
19537    VertexPattern(VertexPattern),
19538}
19539
19540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19541pub enum Persistence {
19542    Temp(Temp),
19543    Unlogged(Unlogged),
19544}
19545
19546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19547pub enum PreparableStmt {
19548    CompoundSelect(CompoundSelect),
19549    Delete(Delete),
19550    Insert(Insert),
19551    Merge(Merge),
19552    Select(Select),
19553    SelectInto(SelectInto),
19554    Table(Table),
19555    Update(Update),
19556    Values(Values),
19557}
19558
19559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19560pub enum RefAction {
19561    Cascade(Cascade),
19562    NoAction(NoAction),
19563    Restrict(Restrict),
19564    SetDefaultColumns(SetDefaultColumns),
19565    SetNullColumns(SetNullColumns),
19566}
19567
19568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19569pub enum RuleAction {
19570    Nothing(Nothing),
19571    RuleStmtList(RuleStmtList),
19572    RuleStmt(RuleStmt),
19573}
19574
19575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19576pub enum RuleStmt {
19577    Delete(Delete),
19578    Insert(Insert),
19579    Notify(Notify),
19580    Update(Update),
19581    SelectVariant(SelectVariant),
19582}
19583
19584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19585pub enum SchemaElement {
19586    CreateIndex(CreateIndex),
19587    CreateSequence(CreateSequence),
19588    CreateTable(CreateTable),
19589    CreateTrigger(CreateTrigger),
19590    CreateView(CreateView),
19591    Grant(Grant),
19592}
19593
19594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19595pub enum SelectVariant {
19596    CompoundSelect(CompoundSelect),
19597    ParenSelect(ParenSelect),
19598    Select(Select),
19599    SelectInto(SelectInto),
19600    Table(Table),
19601    Values(Values),
19602}
19603
19604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19605pub enum SetColumn {
19606    SetMultipleColumns(SetMultipleColumns),
19607    SetSingleColumn(SetSingleColumn),
19608}
19609
19610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19611pub enum Stmt {
19612    AlterAggregate(AlterAggregate),
19613    AlterCollation(AlterCollation),
19614    AlterConversion(AlterConversion),
19615    AlterDatabase(AlterDatabase),
19616    AlterDefaultPrivileges(AlterDefaultPrivileges),
19617    AlterDomain(AlterDomain),
19618    AlterEventTrigger(AlterEventTrigger),
19619    AlterExtension(AlterExtension),
19620    AlterForeignDataWrapper(AlterForeignDataWrapper),
19621    AlterForeignTable(AlterForeignTable),
19622    AlterFunction(AlterFunction),
19623    AlterGroup(AlterGroup),
19624    AlterIndex(AlterIndex),
19625    AlterLanguage(AlterLanguage),
19626    AlterLargeObject(AlterLargeObject),
19627    AlterMaterializedView(AlterMaterializedView),
19628    AlterOperator(AlterOperator),
19629    AlterOperatorClass(AlterOperatorClass),
19630    AlterOperatorFamily(AlterOperatorFamily),
19631    AlterPolicy(AlterPolicy),
19632    AlterProcedure(AlterProcedure),
19633    AlterPropertyGraph(AlterPropertyGraph),
19634    AlterPublication(AlterPublication),
19635    AlterRole(AlterRole),
19636    AlterRoutine(AlterRoutine),
19637    AlterRule(AlterRule),
19638    AlterSchema(AlterSchema),
19639    AlterSequence(AlterSequence),
19640    AlterServer(AlterServer),
19641    AlterStatistics(AlterStatistics),
19642    AlterSubscription(AlterSubscription),
19643    AlterSystem(AlterSystem),
19644    AlterTable(AlterTable),
19645    AlterTablespace(AlterTablespace),
19646    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
19647    AlterTextSearchDictionary(AlterTextSearchDictionary),
19648    AlterTextSearchParser(AlterTextSearchParser),
19649    AlterTextSearchTemplate(AlterTextSearchTemplate),
19650    AlterTrigger(AlterTrigger),
19651    AlterType(AlterType),
19652    AlterUser(AlterUser),
19653    AlterUserMapping(AlterUserMapping),
19654    AlterView(AlterView),
19655    Analyze(Analyze),
19656    Begin(Begin),
19657    Call(Call),
19658    Checkpoint(Checkpoint),
19659    Close(Close),
19660    Cluster(Cluster),
19661    CommentOn(CommentOn),
19662    Commit(Commit),
19663    Copy(Copy),
19664    CreateAccessMethod(CreateAccessMethod),
19665    CreateAggregate(CreateAggregate),
19666    CreateCast(CreateCast),
19667    CreateCollation(CreateCollation),
19668    CreateConversion(CreateConversion),
19669    CreateDatabase(CreateDatabase),
19670    CreateDomain(CreateDomain),
19671    CreateEventTrigger(CreateEventTrigger),
19672    CreateExtension(CreateExtension),
19673    CreateForeignDataWrapper(CreateForeignDataWrapper),
19674    CreateForeignTable(CreateForeignTable),
19675    CreateFunction(CreateFunction),
19676    CreateGroup(CreateGroup),
19677    CreateIndex(CreateIndex),
19678    CreateLanguage(CreateLanguage),
19679    CreateMaterializedView(CreateMaterializedView),
19680    CreateOperator(CreateOperator),
19681    CreateOperatorClass(CreateOperatorClass),
19682    CreateOperatorFamily(CreateOperatorFamily),
19683    CreatePolicy(CreatePolicy),
19684    CreateProcedure(CreateProcedure),
19685    CreatePropertyGraph(CreatePropertyGraph),
19686    CreatePublication(CreatePublication),
19687    CreateRole(CreateRole),
19688    CreateRule(CreateRule),
19689    CreateSchema(CreateSchema),
19690    CreateSequence(CreateSequence),
19691    CreateServer(CreateServer),
19692    CreateStatistics(CreateStatistics),
19693    CreateSubscription(CreateSubscription),
19694    CreateTable(CreateTable),
19695    CreateTableAs(CreateTableAs),
19696    CreateTablespace(CreateTablespace),
19697    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
19698    CreateTextSearchDictionary(CreateTextSearchDictionary),
19699    CreateTextSearchParser(CreateTextSearchParser),
19700    CreateTextSearchTemplate(CreateTextSearchTemplate),
19701    CreateTransform(CreateTransform),
19702    CreateTrigger(CreateTrigger),
19703    CreateType(CreateType),
19704    CreateUser(CreateUser),
19705    CreateUserMapping(CreateUserMapping),
19706    CreateView(CreateView),
19707    Deallocate(Deallocate),
19708    Declare(Declare),
19709    Delete(Delete),
19710    Discard(Discard),
19711    Do(Do),
19712    DropAccessMethod(DropAccessMethod),
19713    DropAggregate(DropAggregate),
19714    DropCast(DropCast),
19715    DropCollation(DropCollation),
19716    DropConversion(DropConversion),
19717    DropDatabase(DropDatabase),
19718    DropDomain(DropDomain),
19719    DropEventTrigger(DropEventTrigger),
19720    DropExtension(DropExtension),
19721    DropForeignDataWrapper(DropForeignDataWrapper),
19722    DropForeignTable(DropForeignTable),
19723    DropFunction(DropFunction),
19724    DropGroup(DropGroup),
19725    DropIndex(DropIndex),
19726    DropLanguage(DropLanguage),
19727    DropMaterializedView(DropMaterializedView),
19728    DropOperator(DropOperator),
19729    DropOperatorClass(DropOperatorClass),
19730    DropOperatorFamily(DropOperatorFamily),
19731    DropOwned(DropOwned),
19732    DropPolicy(DropPolicy),
19733    DropProcedure(DropProcedure),
19734    DropPropertyGraph(DropPropertyGraph),
19735    DropPublication(DropPublication),
19736    DropRole(DropRole),
19737    DropRoutine(DropRoutine),
19738    DropRule(DropRule),
19739    DropSchema(DropSchema),
19740    DropSequence(DropSequence),
19741    DropServer(DropServer),
19742    DropStatistics(DropStatistics),
19743    DropSubscription(DropSubscription),
19744    DropTable(DropTable),
19745    DropTablespace(DropTablespace),
19746    DropTextSearchConfig(DropTextSearchConfig),
19747    DropTextSearchDict(DropTextSearchDict),
19748    DropTextSearchParser(DropTextSearchParser),
19749    DropTextSearchTemplate(DropTextSearchTemplate),
19750    DropTransform(DropTransform),
19751    DropTrigger(DropTrigger),
19752    DropType(DropType),
19753    DropUser(DropUser),
19754    DropUserMapping(DropUserMapping),
19755    DropView(DropView),
19756    EmptyStmt(EmptyStmt),
19757    Execute(Execute),
19758    Explain(Explain),
19759    Fetch(Fetch),
19760    Grant(Grant),
19761    ImportForeignSchema(ImportForeignSchema),
19762    Insert(Insert),
19763    Listen(Listen),
19764    Load(Load),
19765    Lock(Lock),
19766    Merge(Merge),
19767    Move(Move),
19768    Notify(Notify),
19769    ParenSelect(ParenSelect),
19770    Prepare(Prepare),
19771    PrepareTransaction(PrepareTransaction),
19772    Reassign(Reassign),
19773    Refresh(Refresh),
19774    Reindex(Reindex),
19775    ReleaseSavepoint(ReleaseSavepoint),
19776    Repack(Repack),
19777    Reset(Reset),
19778    ResetSessionAuth(ResetSessionAuth),
19779    Revoke(Revoke),
19780    Rollback(Rollback),
19781    Savepoint(Savepoint),
19782    SecurityLabel(SecurityLabel),
19783    Select(Select),
19784    SelectInto(SelectInto),
19785    Set(Set),
19786    SetConstraints(SetConstraints),
19787    SetRole(SetRole),
19788    SetSessionAuth(SetSessionAuth),
19789    SetTransaction(SetTransaction),
19790    Show(Show),
19791    Table(Table),
19792    Truncate(Truncate),
19793    Unlisten(Unlisten),
19794    Update(Update),
19795    Vacuum(Vacuum),
19796    Values(Values),
19797}
19798
19799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19800pub enum TableArg {
19801    Column(Column),
19802    LikeClause(LikeClause),
19803    TableConstraint(TableConstraint),
19804}
19805
19806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19807pub enum TableConstraint {
19808    CheckConstraint(CheckConstraint),
19809    ExcludeConstraint(ExcludeConstraint),
19810    ForeignKeyConstraint(ForeignKeyConstraint),
19811    PrimaryKeyConstraint(PrimaryKeyConstraint),
19812    UniqueConstraint(UniqueConstraint),
19813}
19814
19815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19816pub enum Timezone {
19817    WithTimezone(WithTimezone),
19818    WithoutTimezone(WithoutTimezone),
19819}
19820
19821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19822pub enum TransactionMode {
19823    Deferrable(Deferrable),
19824    NotDeferrable(NotDeferrable),
19825    ReadCommitted(ReadCommitted),
19826    ReadOnly(ReadOnly),
19827    ReadUncommitted(ReadUncommitted),
19828    ReadWrite(ReadWrite),
19829    RepeatableRead(RepeatableRead),
19830    Serializable(Serializable),
19831}
19832
19833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19834pub enum Type {
19835    ArrayType(ArrayType),
19836    BitType(BitType),
19837    CharType(CharType),
19838    DoubleType(DoubleType),
19839    ExprType(ExprType),
19840    IntervalType(IntervalType),
19841    PathType(PathType),
19842    PercentType(PercentType),
19843    TimeType(TimeType),
19844}
19845
19846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19847pub enum ValuePosition {
19848    AfterValue(AfterValue),
19849    BeforeValue(BeforeValue),
19850}
19851
19852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19853pub enum WithQuery {
19854    CompoundSelect(CompoundSelect),
19855    Delete(Delete),
19856    Insert(Insert),
19857    Merge(Merge),
19858    ParenSelect(ParenSelect),
19859    Select(Select),
19860    Table(Table),
19861    Update(Update),
19862    Values(Values),
19863}
19864impl AstNode for AddAttribute {
19865    #[inline]
19866    fn can_cast(kind: SyntaxKind) -> bool {
19867        kind == SyntaxKind::ADD_ATTRIBUTE
19868    }
19869    #[inline]
19870    fn cast(syntax: SyntaxNode) -> Option<Self> {
19871        if Self::can_cast(syntax.kind()) {
19872            Some(Self { syntax })
19873        } else {
19874            None
19875        }
19876    }
19877    #[inline]
19878    fn syntax(&self) -> &SyntaxNode {
19879        &self.syntax
19880    }
19881}
19882impl AstNode for AddColumn {
19883    #[inline]
19884    fn can_cast(kind: SyntaxKind) -> bool {
19885        kind == SyntaxKind::ADD_COLUMN
19886    }
19887    #[inline]
19888    fn cast(syntax: SyntaxNode) -> Option<Self> {
19889        if Self::can_cast(syntax.kind()) {
19890            Some(Self { syntax })
19891        } else {
19892            None
19893        }
19894    }
19895    #[inline]
19896    fn syntax(&self) -> &SyntaxNode {
19897        &self.syntax
19898    }
19899}
19900impl AstNode for AddConstraint {
19901    #[inline]
19902    fn can_cast(kind: SyntaxKind) -> bool {
19903        kind == SyntaxKind::ADD_CONSTRAINT
19904    }
19905    #[inline]
19906    fn cast(syntax: SyntaxNode) -> Option<Self> {
19907        if Self::can_cast(syntax.kind()) {
19908            Some(Self { syntax })
19909        } else {
19910            None
19911        }
19912    }
19913    #[inline]
19914    fn syntax(&self) -> &SyntaxNode {
19915        &self.syntax
19916    }
19917}
19918impl AstNode for AddGenerated {
19919    #[inline]
19920    fn can_cast(kind: SyntaxKind) -> bool {
19921        kind == SyntaxKind::ADD_GENERATED
19922    }
19923    #[inline]
19924    fn cast(syntax: SyntaxNode) -> Option<Self> {
19925        if Self::can_cast(syntax.kind()) {
19926            Some(Self { syntax })
19927        } else {
19928            None
19929        }
19930    }
19931    #[inline]
19932    fn syntax(&self) -> &SyntaxNode {
19933        &self.syntax
19934    }
19935}
19936impl AstNode for AddLabel {
19937    #[inline]
19938    fn can_cast(kind: SyntaxKind) -> bool {
19939        kind == SyntaxKind::ADD_LABEL
19940    }
19941    #[inline]
19942    fn cast(syntax: SyntaxNode) -> Option<Self> {
19943        if Self::can_cast(syntax.kind()) {
19944            Some(Self { syntax })
19945        } else {
19946            None
19947        }
19948    }
19949    #[inline]
19950    fn syntax(&self) -> &SyntaxNode {
19951        &self.syntax
19952    }
19953}
19954impl AstNode for AddOpClassOptions {
19955    #[inline]
19956    fn can_cast(kind: SyntaxKind) -> bool {
19957        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19958    }
19959    #[inline]
19960    fn cast(syntax: SyntaxNode) -> Option<Self> {
19961        if Self::can_cast(syntax.kind()) {
19962            Some(Self { syntax })
19963        } else {
19964            None
19965        }
19966    }
19967    #[inline]
19968    fn syntax(&self) -> &SyntaxNode {
19969        &self.syntax
19970    }
19971}
19972impl AstNode for AddValue {
19973    #[inline]
19974    fn can_cast(kind: SyntaxKind) -> bool {
19975        kind == SyntaxKind::ADD_VALUE
19976    }
19977    #[inline]
19978    fn cast(syntax: SyntaxNode) -> Option<Self> {
19979        if Self::can_cast(syntax.kind()) {
19980            Some(Self { syntax })
19981        } else {
19982            None
19983        }
19984    }
19985    #[inline]
19986    fn syntax(&self) -> &SyntaxNode {
19987        &self.syntax
19988    }
19989}
19990impl AstNode for AddVertexEdgeLabelProperties {
19991    #[inline]
19992    fn can_cast(kind: SyntaxKind) -> bool {
19993        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19994    }
19995    #[inline]
19996    fn cast(syntax: SyntaxNode) -> Option<Self> {
19997        if Self::can_cast(syntax.kind()) {
19998            Some(Self { syntax })
19999        } else {
20000            None
20001        }
20002    }
20003    #[inline]
20004    fn syntax(&self) -> &SyntaxNode {
20005        &self.syntax
20006    }
20007}
20008impl AstNode for AddVertexEdgeTables {
20009    #[inline]
20010    fn can_cast(kind: SyntaxKind) -> bool {
20011        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
20012    }
20013    #[inline]
20014    fn cast(syntax: SyntaxNode) -> Option<Self> {
20015        if Self::can_cast(syntax.kind()) {
20016            Some(Self { syntax })
20017        } else {
20018            None
20019        }
20020    }
20021    #[inline]
20022    fn syntax(&self) -> &SyntaxNode {
20023        &self.syntax
20024    }
20025}
20026impl AstNode for AfterValue {
20027    #[inline]
20028    fn can_cast(kind: SyntaxKind) -> bool {
20029        kind == SyntaxKind::AFTER_VALUE
20030    }
20031    #[inline]
20032    fn cast(syntax: SyntaxNode) -> Option<Self> {
20033        if Self::can_cast(syntax.kind()) {
20034            Some(Self { syntax })
20035        } else {
20036            None
20037        }
20038    }
20039    #[inline]
20040    fn syntax(&self) -> &SyntaxNode {
20041        &self.syntax
20042    }
20043}
20044impl AstNode for Aggregate {
20045    #[inline]
20046    fn can_cast(kind: SyntaxKind) -> bool {
20047        kind == SyntaxKind::AGGREGATE
20048    }
20049    #[inline]
20050    fn cast(syntax: SyntaxNode) -> Option<Self> {
20051        if Self::can_cast(syntax.kind()) {
20052            Some(Self { syntax })
20053        } else {
20054            None
20055        }
20056    }
20057    #[inline]
20058    fn syntax(&self) -> &SyntaxNode {
20059        &self.syntax
20060    }
20061}
20062impl AstNode for Alias {
20063    #[inline]
20064    fn can_cast(kind: SyntaxKind) -> bool {
20065        kind == SyntaxKind::ALIAS
20066    }
20067    #[inline]
20068    fn cast(syntax: SyntaxNode) -> Option<Self> {
20069        if Self::can_cast(syntax.kind()) {
20070            Some(Self { syntax })
20071        } else {
20072            None
20073        }
20074    }
20075    #[inline]
20076    fn syntax(&self) -> &SyntaxNode {
20077        &self.syntax
20078    }
20079}
20080impl AstNode for AllFn {
20081    #[inline]
20082    fn can_cast(kind: SyntaxKind) -> bool {
20083        kind == SyntaxKind::ALL_FN
20084    }
20085    #[inline]
20086    fn cast(syntax: SyntaxNode) -> Option<Self> {
20087        if Self::can_cast(syntax.kind()) {
20088            Some(Self { syntax })
20089        } else {
20090            None
20091        }
20092    }
20093    #[inline]
20094    fn syntax(&self) -> &SyntaxNode {
20095        &self.syntax
20096    }
20097}
20098impl AstNode for AllProperties {
20099    #[inline]
20100    fn can_cast(kind: SyntaxKind) -> bool {
20101        kind == SyntaxKind::ALL_PROPERTIES
20102    }
20103    #[inline]
20104    fn cast(syntax: SyntaxNode) -> Option<Self> {
20105        if Self::can_cast(syntax.kind()) {
20106            Some(Self { syntax })
20107        } else {
20108            None
20109        }
20110    }
20111    #[inline]
20112    fn syntax(&self) -> &SyntaxNode {
20113        &self.syntax
20114    }
20115}
20116impl AstNode for AlterAggregate {
20117    #[inline]
20118    fn can_cast(kind: SyntaxKind) -> bool {
20119        kind == SyntaxKind::ALTER_AGGREGATE
20120    }
20121    #[inline]
20122    fn cast(syntax: SyntaxNode) -> Option<Self> {
20123        if Self::can_cast(syntax.kind()) {
20124            Some(Self { syntax })
20125        } else {
20126            None
20127        }
20128    }
20129    #[inline]
20130    fn syntax(&self) -> &SyntaxNode {
20131        &self.syntax
20132    }
20133}
20134impl AstNode for AlterAttribute {
20135    #[inline]
20136    fn can_cast(kind: SyntaxKind) -> bool {
20137        kind == SyntaxKind::ALTER_ATTRIBUTE
20138    }
20139    #[inline]
20140    fn cast(syntax: SyntaxNode) -> Option<Self> {
20141        if Self::can_cast(syntax.kind()) {
20142            Some(Self { syntax })
20143        } else {
20144            None
20145        }
20146    }
20147    #[inline]
20148    fn syntax(&self) -> &SyntaxNode {
20149        &self.syntax
20150    }
20151}
20152impl AstNode for AlterCollation {
20153    #[inline]
20154    fn can_cast(kind: SyntaxKind) -> bool {
20155        kind == SyntaxKind::ALTER_COLLATION
20156    }
20157    #[inline]
20158    fn cast(syntax: SyntaxNode) -> Option<Self> {
20159        if Self::can_cast(syntax.kind()) {
20160            Some(Self { syntax })
20161        } else {
20162            None
20163        }
20164    }
20165    #[inline]
20166    fn syntax(&self) -> &SyntaxNode {
20167        &self.syntax
20168    }
20169}
20170impl AstNode for AlterColumn {
20171    #[inline]
20172    fn can_cast(kind: SyntaxKind) -> bool {
20173        kind == SyntaxKind::ALTER_COLUMN
20174    }
20175    #[inline]
20176    fn cast(syntax: SyntaxNode) -> Option<Self> {
20177        if Self::can_cast(syntax.kind()) {
20178            Some(Self { syntax })
20179        } else {
20180            None
20181        }
20182    }
20183    #[inline]
20184    fn syntax(&self) -> &SyntaxNode {
20185        &self.syntax
20186    }
20187}
20188impl AstNode for AlterConstraint {
20189    #[inline]
20190    fn can_cast(kind: SyntaxKind) -> bool {
20191        kind == SyntaxKind::ALTER_CONSTRAINT
20192    }
20193    #[inline]
20194    fn cast(syntax: SyntaxNode) -> Option<Self> {
20195        if Self::can_cast(syntax.kind()) {
20196            Some(Self { syntax })
20197        } else {
20198            None
20199        }
20200    }
20201    #[inline]
20202    fn syntax(&self) -> &SyntaxNode {
20203        &self.syntax
20204    }
20205}
20206impl AstNode for AlterConversion {
20207    #[inline]
20208    fn can_cast(kind: SyntaxKind) -> bool {
20209        kind == SyntaxKind::ALTER_CONVERSION
20210    }
20211    #[inline]
20212    fn cast(syntax: SyntaxNode) -> Option<Self> {
20213        if Self::can_cast(syntax.kind()) {
20214            Some(Self { syntax })
20215        } else {
20216            None
20217        }
20218    }
20219    #[inline]
20220    fn syntax(&self) -> &SyntaxNode {
20221        &self.syntax
20222    }
20223}
20224impl AstNode for AlterDatabase {
20225    #[inline]
20226    fn can_cast(kind: SyntaxKind) -> bool {
20227        kind == SyntaxKind::ALTER_DATABASE
20228    }
20229    #[inline]
20230    fn cast(syntax: SyntaxNode) -> Option<Self> {
20231        if Self::can_cast(syntax.kind()) {
20232            Some(Self { syntax })
20233        } else {
20234            None
20235        }
20236    }
20237    #[inline]
20238    fn syntax(&self) -> &SyntaxNode {
20239        &self.syntax
20240    }
20241}
20242impl AstNode for AlterDefaultPrivileges {
20243    #[inline]
20244    fn can_cast(kind: SyntaxKind) -> bool {
20245        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
20246    }
20247    #[inline]
20248    fn cast(syntax: SyntaxNode) -> Option<Self> {
20249        if Self::can_cast(syntax.kind()) {
20250            Some(Self { syntax })
20251        } else {
20252            None
20253        }
20254    }
20255    #[inline]
20256    fn syntax(&self) -> &SyntaxNode {
20257        &self.syntax
20258    }
20259}
20260impl AstNode for AlterDomain {
20261    #[inline]
20262    fn can_cast(kind: SyntaxKind) -> bool {
20263        kind == SyntaxKind::ALTER_DOMAIN
20264    }
20265    #[inline]
20266    fn cast(syntax: SyntaxNode) -> Option<Self> {
20267        if Self::can_cast(syntax.kind()) {
20268            Some(Self { syntax })
20269        } else {
20270            None
20271        }
20272    }
20273    #[inline]
20274    fn syntax(&self) -> &SyntaxNode {
20275        &self.syntax
20276    }
20277}
20278impl AstNode for AlterEventTrigger {
20279    #[inline]
20280    fn can_cast(kind: SyntaxKind) -> bool {
20281        kind == SyntaxKind::ALTER_EVENT_TRIGGER
20282    }
20283    #[inline]
20284    fn cast(syntax: SyntaxNode) -> Option<Self> {
20285        if Self::can_cast(syntax.kind()) {
20286            Some(Self { syntax })
20287        } else {
20288            None
20289        }
20290    }
20291    #[inline]
20292    fn syntax(&self) -> &SyntaxNode {
20293        &self.syntax
20294    }
20295}
20296impl AstNode for AlterExtension {
20297    #[inline]
20298    fn can_cast(kind: SyntaxKind) -> bool {
20299        kind == SyntaxKind::ALTER_EXTENSION
20300    }
20301    #[inline]
20302    fn cast(syntax: SyntaxNode) -> Option<Self> {
20303        if Self::can_cast(syntax.kind()) {
20304            Some(Self { syntax })
20305        } else {
20306            None
20307        }
20308    }
20309    #[inline]
20310    fn syntax(&self) -> &SyntaxNode {
20311        &self.syntax
20312    }
20313}
20314impl AstNode for AlterForeignDataWrapper {
20315    #[inline]
20316    fn can_cast(kind: SyntaxKind) -> bool {
20317        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
20318    }
20319    #[inline]
20320    fn cast(syntax: SyntaxNode) -> Option<Self> {
20321        if Self::can_cast(syntax.kind()) {
20322            Some(Self { syntax })
20323        } else {
20324            None
20325        }
20326    }
20327    #[inline]
20328    fn syntax(&self) -> &SyntaxNode {
20329        &self.syntax
20330    }
20331}
20332impl AstNode for AlterForeignTable {
20333    #[inline]
20334    fn can_cast(kind: SyntaxKind) -> bool {
20335        kind == SyntaxKind::ALTER_FOREIGN_TABLE
20336    }
20337    #[inline]
20338    fn cast(syntax: SyntaxNode) -> Option<Self> {
20339        if Self::can_cast(syntax.kind()) {
20340            Some(Self { syntax })
20341        } else {
20342            None
20343        }
20344    }
20345    #[inline]
20346    fn syntax(&self) -> &SyntaxNode {
20347        &self.syntax
20348    }
20349}
20350impl AstNode for AlterFunction {
20351    #[inline]
20352    fn can_cast(kind: SyntaxKind) -> bool {
20353        kind == SyntaxKind::ALTER_FUNCTION
20354    }
20355    #[inline]
20356    fn cast(syntax: SyntaxNode) -> Option<Self> {
20357        if Self::can_cast(syntax.kind()) {
20358            Some(Self { syntax })
20359        } else {
20360            None
20361        }
20362    }
20363    #[inline]
20364    fn syntax(&self) -> &SyntaxNode {
20365        &self.syntax
20366    }
20367}
20368impl AstNode for AlterGroup {
20369    #[inline]
20370    fn can_cast(kind: SyntaxKind) -> bool {
20371        kind == SyntaxKind::ALTER_GROUP
20372    }
20373    #[inline]
20374    fn cast(syntax: SyntaxNode) -> Option<Self> {
20375        if Self::can_cast(syntax.kind()) {
20376            Some(Self { syntax })
20377        } else {
20378            None
20379        }
20380    }
20381    #[inline]
20382    fn syntax(&self) -> &SyntaxNode {
20383        &self.syntax
20384    }
20385}
20386impl AstNode for AlterIndex {
20387    #[inline]
20388    fn can_cast(kind: SyntaxKind) -> bool {
20389        kind == SyntaxKind::ALTER_INDEX
20390    }
20391    #[inline]
20392    fn cast(syntax: SyntaxNode) -> Option<Self> {
20393        if Self::can_cast(syntax.kind()) {
20394            Some(Self { syntax })
20395        } else {
20396            None
20397        }
20398    }
20399    #[inline]
20400    fn syntax(&self) -> &SyntaxNode {
20401        &self.syntax
20402    }
20403}
20404impl AstNode for AlterLanguage {
20405    #[inline]
20406    fn can_cast(kind: SyntaxKind) -> bool {
20407        kind == SyntaxKind::ALTER_LANGUAGE
20408    }
20409    #[inline]
20410    fn cast(syntax: SyntaxNode) -> Option<Self> {
20411        if Self::can_cast(syntax.kind()) {
20412            Some(Self { syntax })
20413        } else {
20414            None
20415        }
20416    }
20417    #[inline]
20418    fn syntax(&self) -> &SyntaxNode {
20419        &self.syntax
20420    }
20421}
20422impl AstNode for AlterLargeObject {
20423    #[inline]
20424    fn can_cast(kind: SyntaxKind) -> bool {
20425        kind == SyntaxKind::ALTER_LARGE_OBJECT
20426    }
20427    #[inline]
20428    fn cast(syntax: SyntaxNode) -> Option<Self> {
20429        if Self::can_cast(syntax.kind()) {
20430            Some(Self { syntax })
20431        } else {
20432            None
20433        }
20434    }
20435    #[inline]
20436    fn syntax(&self) -> &SyntaxNode {
20437        &self.syntax
20438    }
20439}
20440impl AstNode for AlterMaterializedView {
20441    #[inline]
20442    fn can_cast(kind: SyntaxKind) -> bool {
20443        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
20444    }
20445    #[inline]
20446    fn cast(syntax: SyntaxNode) -> Option<Self> {
20447        if Self::can_cast(syntax.kind()) {
20448            Some(Self { syntax })
20449        } else {
20450            None
20451        }
20452    }
20453    #[inline]
20454    fn syntax(&self) -> &SyntaxNode {
20455        &self.syntax
20456    }
20457}
20458impl AstNode for AlterOperator {
20459    #[inline]
20460    fn can_cast(kind: SyntaxKind) -> bool {
20461        kind == SyntaxKind::ALTER_OPERATOR
20462    }
20463    #[inline]
20464    fn cast(syntax: SyntaxNode) -> Option<Self> {
20465        if Self::can_cast(syntax.kind()) {
20466            Some(Self { syntax })
20467        } else {
20468            None
20469        }
20470    }
20471    #[inline]
20472    fn syntax(&self) -> &SyntaxNode {
20473        &self.syntax
20474    }
20475}
20476impl AstNode for AlterOperatorClass {
20477    #[inline]
20478    fn can_cast(kind: SyntaxKind) -> bool {
20479        kind == SyntaxKind::ALTER_OPERATOR_CLASS
20480    }
20481    #[inline]
20482    fn cast(syntax: SyntaxNode) -> Option<Self> {
20483        if Self::can_cast(syntax.kind()) {
20484            Some(Self { syntax })
20485        } else {
20486            None
20487        }
20488    }
20489    #[inline]
20490    fn syntax(&self) -> &SyntaxNode {
20491        &self.syntax
20492    }
20493}
20494impl AstNode for AlterOperatorFamily {
20495    #[inline]
20496    fn can_cast(kind: SyntaxKind) -> bool {
20497        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
20498    }
20499    #[inline]
20500    fn cast(syntax: SyntaxNode) -> Option<Self> {
20501        if Self::can_cast(syntax.kind()) {
20502            Some(Self { syntax })
20503        } else {
20504            None
20505        }
20506    }
20507    #[inline]
20508    fn syntax(&self) -> &SyntaxNode {
20509        &self.syntax
20510    }
20511}
20512impl AstNode for AlterOption {
20513    #[inline]
20514    fn can_cast(kind: SyntaxKind) -> bool {
20515        kind == SyntaxKind::ALTER_OPTION
20516    }
20517    #[inline]
20518    fn cast(syntax: SyntaxNode) -> Option<Self> {
20519        if Self::can_cast(syntax.kind()) {
20520            Some(Self { syntax })
20521        } else {
20522            None
20523        }
20524    }
20525    #[inline]
20526    fn syntax(&self) -> &SyntaxNode {
20527        &self.syntax
20528    }
20529}
20530impl AstNode for AlterOptionList {
20531    #[inline]
20532    fn can_cast(kind: SyntaxKind) -> bool {
20533        kind == SyntaxKind::ALTER_OPTION_LIST
20534    }
20535    #[inline]
20536    fn cast(syntax: SyntaxNode) -> Option<Self> {
20537        if Self::can_cast(syntax.kind()) {
20538            Some(Self { syntax })
20539        } else {
20540            None
20541        }
20542    }
20543    #[inline]
20544    fn syntax(&self) -> &SyntaxNode {
20545        &self.syntax
20546    }
20547}
20548impl AstNode for AlterPolicy {
20549    #[inline]
20550    fn can_cast(kind: SyntaxKind) -> bool {
20551        kind == SyntaxKind::ALTER_POLICY
20552    }
20553    #[inline]
20554    fn cast(syntax: SyntaxNode) -> Option<Self> {
20555        if Self::can_cast(syntax.kind()) {
20556            Some(Self { syntax })
20557        } else {
20558            None
20559        }
20560    }
20561    #[inline]
20562    fn syntax(&self) -> &SyntaxNode {
20563        &self.syntax
20564    }
20565}
20566impl AstNode for AlterProcedure {
20567    #[inline]
20568    fn can_cast(kind: SyntaxKind) -> bool {
20569        kind == SyntaxKind::ALTER_PROCEDURE
20570    }
20571    #[inline]
20572    fn cast(syntax: SyntaxNode) -> Option<Self> {
20573        if Self::can_cast(syntax.kind()) {
20574            Some(Self { syntax })
20575        } else {
20576            None
20577        }
20578    }
20579    #[inline]
20580    fn syntax(&self) -> &SyntaxNode {
20581        &self.syntax
20582    }
20583}
20584impl AstNode for AlterPropertyGraph {
20585    #[inline]
20586    fn can_cast(kind: SyntaxKind) -> bool {
20587        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
20588    }
20589    #[inline]
20590    fn cast(syntax: SyntaxNode) -> Option<Self> {
20591        if Self::can_cast(syntax.kind()) {
20592            Some(Self { syntax })
20593        } else {
20594            None
20595        }
20596    }
20597    #[inline]
20598    fn syntax(&self) -> &SyntaxNode {
20599        &self.syntax
20600    }
20601}
20602impl AstNode for AlterPublication {
20603    #[inline]
20604    fn can_cast(kind: SyntaxKind) -> bool {
20605        kind == SyntaxKind::ALTER_PUBLICATION
20606    }
20607    #[inline]
20608    fn cast(syntax: SyntaxNode) -> Option<Self> {
20609        if Self::can_cast(syntax.kind()) {
20610            Some(Self { syntax })
20611        } else {
20612            None
20613        }
20614    }
20615    #[inline]
20616    fn syntax(&self) -> &SyntaxNode {
20617        &self.syntax
20618    }
20619}
20620impl AstNode for AlterRole {
20621    #[inline]
20622    fn can_cast(kind: SyntaxKind) -> bool {
20623        kind == SyntaxKind::ALTER_ROLE
20624    }
20625    #[inline]
20626    fn cast(syntax: SyntaxNode) -> Option<Self> {
20627        if Self::can_cast(syntax.kind()) {
20628            Some(Self { syntax })
20629        } else {
20630            None
20631        }
20632    }
20633    #[inline]
20634    fn syntax(&self) -> &SyntaxNode {
20635        &self.syntax
20636    }
20637}
20638impl AstNode for AlterRoutine {
20639    #[inline]
20640    fn can_cast(kind: SyntaxKind) -> bool {
20641        kind == SyntaxKind::ALTER_ROUTINE
20642    }
20643    #[inline]
20644    fn cast(syntax: SyntaxNode) -> Option<Self> {
20645        if Self::can_cast(syntax.kind()) {
20646            Some(Self { syntax })
20647        } else {
20648            None
20649        }
20650    }
20651    #[inline]
20652    fn syntax(&self) -> &SyntaxNode {
20653        &self.syntax
20654    }
20655}
20656impl AstNode for AlterRule {
20657    #[inline]
20658    fn can_cast(kind: SyntaxKind) -> bool {
20659        kind == SyntaxKind::ALTER_RULE
20660    }
20661    #[inline]
20662    fn cast(syntax: SyntaxNode) -> Option<Self> {
20663        if Self::can_cast(syntax.kind()) {
20664            Some(Self { syntax })
20665        } else {
20666            None
20667        }
20668    }
20669    #[inline]
20670    fn syntax(&self) -> &SyntaxNode {
20671        &self.syntax
20672    }
20673}
20674impl AstNode for AlterSchema {
20675    #[inline]
20676    fn can_cast(kind: SyntaxKind) -> bool {
20677        kind == SyntaxKind::ALTER_SCHEMA
20678    }
20679    #[inline]
20680    fn cast(syntax: SyntaxNode) -> Option<Self> {
20681        if Self::can_cast(syntax.kind()) {
20682            Some(Self { syntax })
20683        } else {
20684            None
20685        }
20686    }
20687    #[inline]
20688    fn syntax(&self) -> &SyntaxNode {
20689        &self.syntax
20690    }
20691}
20692impl AstNode for AlterSequence {
20693    #[inline]
20694    fn can_cast(kind: SyntaxKind) -> bool {
20695        kind == SyntaxKind::ALTER_SEQUENCE
20696    }
20697    #[inline]
20698    fn cast(syntax: SyntaxNode) -> Option<Self> {
20699        if Self::can_cast(syntax.kind()) {
20700            Some(Self { syntax })
20701        } else {
20702            None
20703        }
20704    }
20705    #[inline]
20706    fn syntax(&self) -> &SyntaxNode {
20707        &self.syntax
20708    }
20709}
20710impl AstNode for AlterServer {
20711    #[inline]
20712    fn can_cast(kind: SyntaxKind) -> bool {
20713        kind == SyntaxKind::ALTER_SERVER
20714    }
20715    #[inline]
20716    fn cast(syntax: SyntaxNode) -> Option<Self> {
20717        if Self::can_cast(syntax.kind()) {
20718            Some(Self { syntax })
20719        } else {
20720            None
20721        }
20722    }
20723    #[inline]
20724    fn syntax(&self) -> &SyntaxNode {
20725        &self.syntax
20726    }
20727}
20728impl AstNode for AlterSetStatistics {
20729    #[inline]
20730    fn can_cast(kind: SyntaxKind) -> bool {
20731        kind == SyntaxKind::ALTER_SET_STATISTICS
20732    }
20733    #[inline]
20734    fn cast(syntax: SyntaxNode) -> Option<Self> {
20735        if Self::can_cast(syntax.kind()) {
20736            Some(Self { syntax })
20737        } else {
20738            None
20739        }
20740    }
20741    #[inline]
20742    fn syntax(&self) -> &SyntaxNode {
20743        &self.syntax
20744    }
20745}
20746impl AstNode for AlterStatistics {
20747    #[inline]
20748    fn can_cast(kind: SyntaxKind) -> bool {
20749        kind == SyntaxKind::ALTER_STATISTICS
20750    }
20751    #[inline]
20752    fn cast(syntax: SyntaxNode) -> Option<Self> {
20753        if Self::can_cast(syntax.kind()) {
20754            Some(Self { syntax })
20755        } else {
20756            None
20757        }
20758    }
20759    #[inline]
20760    fn syntax(&self) -> &SyntaxNode {
20761        &self.syntax
20762    }
20763}
20764impl AstNode for AlterSubscription {
20765    #[inline]
20766    fn can_cast(kind: SyntaxKind) -> bool {
20767        kind == SyntaxKind::ALTER_SUBSCRIPTION
20768    }
20769    #[inline]
20770    fn cast(syntax: SyntaxNode) -> Option<Self> {
20771        if Self::can_cast(syntax.kind()) {
20772            Some(Self { syntax })
20773        } else {
20774            None
20775        }
20776    }
20777    #[inline]
20778    fn syntax(&self) -> &SyntaxNode {
20779        &self.syntax
20780    }
20781}
20782impl AstNode for AlterSystem {
20783    #[inline]
20784    fn can_cast(kind: SyntaxKind) -> bool {
20785        kind == SyntaxKind::ALTER_SYSTEM
20786    }
20787    #[inline]
20788    fn cast(syntax: SyntaxNode) -> Option<Self> {
20789        if Self::can_cast(syntax.kind()) {
20790            Some(Self { syntax })
20791        } else {
20792            None
20793        }
20794    }
20795    #[inline]
20796    fn syntax(&self) -> &SyntaxNode {
20797        &self.syntax
20798    }
20799}
20800impl AstNode for AlterTable {
20801    #[inline]
20802    fn can_cast(kind: SyntaxKind) -> bool {
20803        kind == SyntaxKind::ALTER_TABLE
20804    }
20805    #[inline]
20806    fn cast(syntax: SyntaxNode) -> Option<Self> {
20807        if Self::can_cast(syntax.kind()) {
20808            Some(Self { syntax })
20809        } else {
20810            None
20811        }
20812    }
20813    #[inline]
20814    fn syntax(&self) -> &SyntaxNode {
20815        &self.syntax
20816    }
20817}
20818impl AstNode for AlterTablespace {
20819    #[inline]
20820    fn can_cast(kind: SyntaxKind) -> bool {
20821        kind == SyntaxKind::ALTER_TABLESPACE
20822    }
20823    #[inline]
20824    fn cast(syntax: SyntaxNode) -> Option<Self> {
20825        if Self::can_cast(syntax.kind()) {
20826            Some(Self { syntax })
20827        } else {
20828            None
20829        }
20830    }
20831    #[inline]
20832    fn syntax(&self) -> &SyntaxNode {
20833        &self.syntax
20834    }
20835}
20836impl AstNode for AlterTextSearchConfiguration {
20837    #[inline]
20838    fn can_cast(kind: SyntaxKind) -> bool {
20839        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
20840    }
20841    #[inline]
20842    fn cast(syntax: SyntaxNode) -> Option<Self> {
20843        if Self::can_cast(syntax.kind()) {
20844            Some(Self { syntax })
20845        } else {
20846            None
20847        }
20848    }
20849    #[inline]
20850    fn syntax(&self) -> &SyntaxNode {
20851        &self.syntax
20852    }
20853}
20854impl AstNode for AlterTextSearchDictionary {
20855    #[inline]
20856    fn can_cast(kind: SyntaxKind) -> bool {
20857        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
20858    }
20859    #[inline]
20860    fn cast(syntax: SyntaxNode) -> Option<Self> {
20861        if Self::can_cast(syntax.kind()) {
20862            Some(Self { syntax })
20863        } else {
20864            None
20865        }
20866    }
20867    #[inline]
20868    fn syntax(&self) -> &SyntaxNode {
20869        &self.syntax
20870    }
20871}
20872impl AstNode for AlterTextSearchParser {
20873    #[inline]
20874    fn can_cast(kind: SyntaxKind) -> bool {
20875        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
20876    }
20877    #[inline]
20878    fn cast(syntax: SyntaxNode) -> Option<Self> {
20879        if Self::can_cast(syntax.kind()) {
20880            Some(Self { syntax })
20881        } else {
20882            None
20883        }
20884    }
20885    #[inline]
20886    fn syntax(&self) -> &SyntaxNode {
20887        &self.syntax
20888    }
20889}
20890impl AstNode for AlterTextSearchTemplate {
20891    #[inline]
20892    fn can_cast(kind: SyntaxKind) -> bool {
20893        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
20894    }
20895    #[inline]
20896    fn cast(syntax: SyntaxNode) -> Option<Self> {
20897        if Self::can_cast(syntax.kind()) {
20898            Some(Self { syntax })
20899        } else {
20900            None
20901        }
20902    }
20903    #[inline]
20904    fn syntax(&self) -> &SyntaxNode {
20905        &self.syntax
20906    }
20907}
20908impl AstNode for AlterTrigger {
20909    #[inline]
20910    fn can_cast(kind: SyntaxKind) -> bool {
20911        kind == SyntaxKind::ALTER_TRIGGER
20912    }
20913    #[inline]
20914    fn cast(syntax: SyntaxNode) -> Option<Self> {
20915        if Self::can_cast(syntax.kind()) {
20916            Some(Self { syntax })
20917        } else {
20918            None
20919        }
20920    }
20921    #[inline]
20922    fn syntax(&self) -> &SyntaxNode {
20923        &self.syntax
20924    }
20925}
20926impl AstNode for AlterType {
20927    #[inline]
20928    fn can_cast(kind: SyntaxKind) -> bool {
20929        kind == SyntaxKind::ALTER_TYPE
20930    }
20931    #[inline]
20932    fn cast(syntax: SyntaxNode) -> Option<Self> {
20933        if Self::can_cast(syntax.kind()) {
20934            Some(Self { syntax })
20935        } else {
20936            None
20937        }
20938    }
20939    #[inline]
20940    fn syntax(&self) -> &SyntaxNode {
20941        &self.syntax
20942    }
20943}
20944impl AstNode for AlterUser {
20945    #[inline]
20946    fn can_cast(kind: SyntaxKind) -> bool {
20947        kind == SyntaxKind::ALTER_USER
20948    }
20949    #[inline]
20950    fn cast(syntax: SyntaxNode) -> Option<Self> {
20951        if Self::can_cast(syntax.kind()) {
20952            Some(Self { syntax })
20953        } else {
20954            None
20955        }
20956    }
20957    #[inline]
20958    fn syntax(&self) -> &SyntaxNode {
20959        &self.syntax
20960    }
20961}
20962impl AstNode for AlterUserMapping {
20963    #[inline]
20964    fn can_cast(kind: SyntaxKind) -> bool {
20965        kind == SyntaxKind::ALTER_USER_MAPPING
20966    }
20967    #[inline]
20968    fn cast(syntax: SyntaxNode) -> Option<Self> {
20969        if Self::can_cast(syntax.kind()) {
20970            Some(Self { syntax })
20971        } else {
20972            None
20973        }
20974    }
20975    #[inline]
20976    fn syntax(&self) -> &SyntaxNode {
20977        &self.syntax
20978    }
20979}
20980impl AstNode for AlterVertexEdgeLabels {
20981    #[inline]
20982    fn can_cast(kind: SyntaxKind) -> bool {
20983        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20984    }
20985    #[inline]
20986    fn cast(syntax: SyntaxNode) -> Option<Self> {
20987        if Self::can_cast(syntax.kind()) {
20988            Some(Self { syntax })
20989        } else {
20990            None
20991        }
20992    }
20993    #[inline]
20994    fn syntax(&self) -> &SyntaxNode {
20995        &self.syntax
20996    }
20997}
20998impl AstNode for AlterView {
20999    #[inline]
21000    fn can_cast(kind: SyntaxKind) -> bool {
21001        kind == SyntaxKind::ALTER_VIEW
21002    }
21003    #[inline]
21004    fn cast(syntax: SyntaxNode) -> Option<Self> {
21005        if Self::can_cast(syntax.kind()) {
21006            Some(Self { syntax })
21007        } else {
21008            None
21009        }
21010    }
21011    #[inline]
21012    fn syntax(&self) -> &SyntaxNode {
21013        &self.syntax
21014    }
21015}
21016impl AstNode for Analyze {
21017    #[inline]
21018    fn can_cast(kind: SyntaxKind) -> bool {
21019        kind == SyntaxKind::ANALYZE
21020    }
21021    #[inline]
21022    fn cast(syntax: SyntaxNode) -> Option<Self> {
21023        if Self::can_cast(syntax.kind()) {
21024            Some(Self { syntax })
21025        } else {
21026            None
21027        }
21028    }
21029    #[inline]
21030    fn syntax(&self) -> &SyntaxNode {
21031        &self.syntax
21032    }
21033}
21034impl AstNode for AnyFn {
21035    #[inline]
21036    fn can_cast(kind: SyntaxKind) -> bool {
21037        kind == SyntaxKind::ANY_FN
21038    }
21039    #[inline]
21040    fn cast(syntax: SyntaxNode) -> Option<Self> {
21041        if Self::can_cast(syntax.kind()) {
21042            Some(Self { syntax })
21043        } else {
21044            None
21045        }
21046    }
21047    #[inline]
21048    fn syntax(&self) -> &SyntaxNode {
21049        &self.syntax
21050    }
21051}
21052impl AstNode for Arg {
21053    #[inline]
21054    fn can_cast(kind: SyntaxKind) -> bool {
21055        kind == SyntaxKind::ARG
21056    }
21057    #[inline]
21058    fn cast(syntax: SyntaxNode) -> Option<Self> {
21059        if Self::can_cast(syntax.kind()) {
21060            Some(Self { syntax })
21061        } else {
21062            None
21063        }
21064    }
21065    #[inline]
21066    fn syntax(&self) -> &SyntaxNode {
21067        &self.syntax
21068    }
21069}
21070impl AstNode for ArgList {
21071    #[inline]
21072    fn can_cast(kind: SyntaxKind) -> bool {
21073        kind == SyntaxKind::ARG_LIST
21074    }
21075    #[inline]
21076    fn cast(syntax: SyntaxNode) -> Option<Self> {
21077        if Self::can_cast(syntax.kind()) {
21078            Some(Self { syntax })
21079        } else {
21080            None
21081        }
21082    }
21083    #[inline]
21084    fn syntax(&self) -> &SyntaxNode {
21085        &self.syntax
21086    }
21087}
21088impl AstNode for ArrayExpr {
21089    #[inline]
21090    fn can_cast(kind: SyntaxKind) -> bool {
21091        kind == SyntaxKind::ARRAY_EXPR
21092    }
21093    #[inline]
21094    fn cast(syntax: SyntaxNode) -> Option<Self> {
21095        if Self::can_cast(syntax.kind()) {
21096            Some(Self { syntax })
21097        } else {
21098            None
21099        }
21100    }
21101    #[inline]
21102    fn syntax(&self) -> &SyntaxNode {
21103        &self.syntax
21104    }
21105}
21106impl AstNode for ArrayType {
21107    #[inline]
21108    fn can_cast(kind: SyntaxKind) -> bool {
21109        kind == SyntaxKind::ARRAY_TYPE
21110    }
21111    #[inline]
21112    fn cast(syntax: SyntaxNode) -> Option<Self> {
21113        if Self::can_cast(syntax.kind()) {
21114            Some(Self { syntax })
21115        } else {
21116            None
21117        }
21118    }
21119    #[inline]
21120    fn syntax(&self) -> &SyntaxNode {
21121        &self.syntax
21122    }
21123}
21124impl AstNode for AsFuncOption {
21125    #[inline]
21126    fn can_cast(kind: SyntaxKind) -> bool {
21127        kind == SyntaxKind::AS_FUNC_OPTION
21128    }
21129    #[inline]
21130    fn cast(syntax: SyntaxNode) -> Option<Self> {
21131        if Self::can_cast(syntax.kind()) {
21132            Some(Self { syntax })
21133        } else {
21134            None
21135        }
21136    }
21137    #[inline]
21138    fn syntax(&self) -> &SyntaxNode {
21139        &self.syntax
21140    }
21141}
21142impl AstNode for AsName {
21143    #[inline]
21144    fn can_cast(kind: SyntaxKind) -> bool {
21145        kind == SyntaxKind::AS_NAME
21146    }
21147    #[inline]
21148    fn cast(syntax: SyntaxNode) -> Option<Self> {
21149        if Self::can_cast(syntax.kind()) {
21150            Some(Self { syntax })
21151        } else {
21152            None
21153        }
21154    }
21155    #[inline]
21156    fn syntax(&self) -> &SyntaxNode {
21157        &self.syntax
21158    }
21159}
21160impl AstNode for AsPolicyType {
21161    #[inline]
21162    fn can_cast(kind: SyntaxKind) -> bool {
21163        kind == SyntaxKind::AS_POLICY_TYPE
21164    }
21165    #[inline]
21166    fn cast(syntax: SyntaxNode) -> Option<Self> {
21167        if Self::can_cast(syntax.kind()) {
21168            Some(Self { syntax })
21169        } else {
21170            None
21171        }
21172    }
21173    #[inline]
21174    fn syntax(&self) -> &SyntaxNode {
21175        &self.syntax
21176    }
21177}
21178impl AstNode for AtTimeZone {
21179    #[inline]
21180    fn can_cast(kind: SyntaxKind) -> bool {
21181        kind == SyntaxKind::AT_TIME_ZONE
21182    }
21183    #[inline]
21184    fn cast(syntax: SyntaxNode) -> Option<Self> {
21185        if Self::can_cast(syntax.kind()) {
21186            Some(Self { syntax })
21187        } else {
21188            None
21189        }
21190    }
21191    #[inline]
21192    fn syntax(&self) -> &SyntaxNode {
21193        &self.syntax
21194    }
21195}
21196impl AstNode for AttachPartition {
21197    #[inline]
21198    fn can_cast(kind: SyntaxKind) -> bool {
21199        kind == SyntaxKind::ATTACH_PARTITION
21200    }
21201    #[inline]
21202    fn cast(syntax: SyntaxNode) -> Option<Self> {
21203        if Self::can_cast(syntax.kind()) {
21204            Some(Self { syntax })
21205        } else {
21206            None
21207        }
21208    }
21209    #[inline]
21210    fn syntax(&self) -> &SyntaxNode {
21211        &self.syntax
21212    }
21213}
21214impl AstNode for AttributeList {
21215    #[inline]
21216    fn can_cast(kind: SyntaxKind) -> bool {
21217        kind == SyntaxKind::ATTRIBUTE_LIST
21218    }
21219    #[inline]
21220    fn cast(syntax: SyntaxNode) -> Option<Self> {
21221        if Self::can_cast(syntax.kind()) {
21222            Some(Self { syntax })
21223        } else {
21224            None
21225        }
21226    }
21227    #[inline]
21228    fn syntax(&self) -> &SyntaxNode {
21229        &self.syntax
21230    }
21231}
21232impl AstNode for AttributeOption {
21233    #[inline]
21234    fn can_cast(kind: SyntaxKind) -> bool {
21235        kind == SyntaxKind::ATTRIBUTE_OPTION
21236    }
21237    #[inline]
21238    fn cast(syntax: SyntaxNode) -> Option<Self> {
21239        if Self::can_cast(syntax.kind()) {
21240            Some(Self { syntax })
21241        } else {
21242            None
21243        }
21244    }
21245    #[inline]
21246    fn syntax(&self) -> &SyntaxNode {
21247        &self.syntax
21248    }
21249}
21250impl AstNode for AttributeValue {
21251    #[inline]
21252    fn can_cast(kind: SyntaxKind) -> bool {
21253        kind == SyntaxKind::ATTRIBUTE_VALUE
21254    }
21255    #[inline]
21256    fn cast(syntax: SyntaxNode) -> Option<Self> {
21257        if Self::can_cast(syntax.kind()) {
21258            Some(Self { syntax })
21259        } else {
21260            None
21261        }
21262    }
21263    #[inline]
21264    fn syntax(&self) -> &SyntaxNode {
21265        &self.syntax
21266    }
21267}
21268impl AstNode for BeforeValue {
21269    #[inline]
21270    fn can_cast(kind: SyntaxKind) -> bool {
21271        kind == SyntaxKind::BEFORE_VALUE
21272    }
21273    #[inline]
21274    fn cast(syntax: SyntaxNode) -> Option<Self> {
21275        if Self::can_cast(syntax.kind()) {
21276            Some(Self { syntax })
21277        } else {
21278            None
21279        }
21280    }
21281    #[inline]
21282    fn syntax(&self) -> &SyntaxNode {
21283        &self.syntax
21284    }
21285}
21286impl AstNode for Begin {
21287    #[inline]
21288    fn can_cast(kind: SyntaxKind) -> bool {
21289        kind == SyntaxKind::BEGIN
21290    }
21291    #[inline]
21292    fn cast(syntax: SyntaxNode) -> Option<Self> {
21293        if Self::can_cast(syntax.kind()) {
21294            Some(Self { syntax })
21295        } else {
21296            None
21297        }
21298    }
21299    #[inline]
21300    fn syntax(&self) -> &SyntaxNode {
21301        &self.syntax
21302    }
21303}
21304impl AstNode for BeginFuncOptionList {
21305    #[inline]
21306    fn can_cast(kind: SyntaxKind) -> bool {
21307        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
21308    }
21309    #[inline]
21310    fn cast(syntax: SyntaxNode) -> Option<Self> {
21311        if Self::can_cast(syntax.kind()) {
21312            Some(Self { syntax })
21313        } else {
21314            None
21315        }
21316    }
21317    #[inline]
21318    fn syntax(&self) -> &SyntaxNode {
21319        &self.syntax
21320    }
21321}
21322impl AstNode for BetweenExpr {
21323    #[inline]
21324    fn can_cast(kind: SyntaxKind) -> bool {
21325        kind == SyntaxKind::BETWEEN_EXPR
21326    }
21327    #[inline]
21328    fn cast(syntax: SyntaxNode) -> Option<Self> {
21329        if Self::can_cast(syntax.kind()) {
21330            Some(Self { syntax })
21331        } else {
21332            None
21333        }
21334    }
21335    #[inline]
21336    fn syntax(&self) -> &SyntaxNode {
21337        &self.syntax
21338    }
21339}
21340impl AstNode for BinExpr {
21341    #[inline]
21342    fn can_cast(kind: SyntaxKind) -> bool {
21343        kind == SyntaxKind::BIN_EXPR
21344    }
21345    #[inline]
21346    fn cast(syntax: SyntaxNode) -> Option<Self> {
21347        if Self::can_cast(syntax.kind()) {
21348            Some(Self { syntax })
21349        } else {
21350            None
21351        }
21352    }
21353    #[inline]
21354    fn syntax(&self) -> &SyntaxNode {
21355        &self.syntax
21356    }
21357}
21358impl AstNode for BitType {
21359    #[inline]
21360    fn can_cast(kind: SyntaxKind) -> bool {
21361        kind == SyntaxKind::BIT_TYPE
21362    }
21363    #[inline]
21364    fn cast(syntax: SyntaxNode) -> Option<Self> {
21365        if Self::can_cast(syntax.kind()) {
21366            Some(Self { syntax })
21367        } else {
21368            None
21369        }
21370    }
21371    #[inline]
21372    fn syntax(&self) -> &SyntaxNode {
21373        &self.syntax
21374    }
21375}
21376impl AstNode for Call {
21377    #[inline]
21378    fn can_cast(kind: SyntaxKind) -> bool {
21379        kind == SyntaxKind::CALL
21380    }
21381    #[inline]
21382    fn cast(syntax: SyntaxNode) -> Option<Self> {
21383        if Self::can_cast(syntax.kind()) {
21384            Some(Self { syntax })
21385        } else {
21386            None
21387        }
21388    }
21389    #[inline]
21390    fn syntax(&self) -> &SyntaxNode {
21391        &self.syntax
21392    }
21393}
21394impl AstNode for CallExpr {
21395    #[inline]
21396    fn can_cast(kind: SyntaxKind) -> bool {
21397        kind == SyntaxKind::CALL_EXPR
21398    }
21399    #[inline]
21400    fn cast(syntax: SyntaxNode) -> Option<Self> {
21401        if Self::can_cast(syntax.kind()) {
21402            Some(Self { syntax })
21403        } else {
21404            None
21405        }
21406    }
21407    #[inline]
21408    fn syntax(&self) -> &SyntaxNode {
21409        &self.syntax
21410    }
21411}
21412impl AstNode for Cascade {
21413    #[inline]
21414    fn can_cast(kind: SyntaxKind) -> bool {
21415        kind == SyntaxKind::CASCADE
21416    }
21417    #[inline]
21418    fn cast(syntax: SyntaxNode) -> Option<Self> {
21419        if Self::can_cast(syntax.kind()) {
21420            Some(Self { syntax })
21421        } else {
21422            None
21423        }
21424    }
21425    #[inline]
21426    fn syntax(&self) -> &SyntaxNode {
21427        &self.syntax
21428    }
21429}
21430impl AstNode for CaseExpr {
21431    #[inline]
21432    fn can_cast(kind: SyntaxKind) -> bool {
21433        kind == SyntaxKind::CASE_EXPR
21434    }
21435    #[inline]
21436    fn cast(syntax: SyntaxNode) -> Option<Self> {
21437        if Self::can_cast(syntax.kind()) {
21438            Some(Self { syntax })
21439        } else {
21440            None
21441        }
21442    }
21443    #[inline]
21444    fn syntax(&self) -> &SyntaxNode {
21445        &self.syntax
21446    }
21447}
21448impl AstNode for CastExpr {
21449    #[inline]
21450    fn can_cast(kind: SyntaxKind) -> bool {
21451        kind == SyntaxKind::CAST_EXPR
21452    }
21453    #[inline]
21454    fn cast(syntax: SyntaxNode) -> Option<Self> {
21455        if Self::can_cast(syntax.kind()) {
21456            Some(Self { syntax })
21457        } else {
21458            None
21459        }
21460    }
21461    #[inline]
21462    fn syntax(&self) -> &SyntaxNode {
21463        &self.syntax
21464    }
21465}
21466impl AstNode for CastSig {
21467    #[inline]
21468    fn can_cast(kind: SyntaxKind) -> bool {
21469        kind == SyntaxKind::CAST_SIG
21470    }
21471    #[inline]
21472    fn cast(syntax: SyntaxNode) -> Option<Self> {
21473        if Self::can_cast(syntax.kind()) {
21474            Some(Self { syntax })
21475        } else {
21476            None
21477        }
21478    }
21479    #[inline]
21480    fn syntax(&self) -> &SyntaxNode {
21481        &self.syntax
21482    }
21483}
21484impl AstNode for CharType {
21485    #[inline]
21486    fn can_cast(kind: SyntaxKind) -> bool {
21487        kind == SyntaxKind::CHAR_TYPE
21488    }
21489    #[inline]
21490    fn cast(syntax: SyntaxNode) -> Option<Self> {
21491        if Self::can_cast(syntax.kind()) {
21492            Some(Self { syntax })
21493        } else {
21494            None
21495        }
21496    }
21497    #[inline]
21498    fn syntax(&self) -> &SyntaxNode {
21499        &self.syntax
21500    }
21501}
21502impl AstNode for CheckConstraint {
21503    #[inline]
21504    fn can_cast(kind: SyntaxKind) -> bool {
21505        kind == SyntaxKind::CHECK_CONSTRAINT
21506    }
21507    #[inline]
21508    fn cast(syntax: SyntaxNode) -> Option<Self> {
21509        if Self::can_cast(syntax.kind()) {
21510            Some(Self { syntax })
21511        } else {
21512            None
21513        }
21514    }
21515    #[inline]
21516    fn syntax(&self) -> &SyntaxNode {
21517        &self.syntax
21518    }
21519}
21520impl AstNode for Checkpoint {
21521    #[inline]
21522    fn can_cast(kind: SyntaxKind) -> bool {
21523        kind == SyntaxKind::CHECKPOINT
21524    }
21525    #[inline]
21526    fn cast(syntax: SyntaxNode) -> Option<Self> {
21527        if Self::can_cast(syntax.kind()) {
21528            Some(Self { syntax })
21529        } else {
21530            None
21531        }
21532    }
21533    #[inline]
21534    fn syntax(&self) -> &SyntaxNode {
21535        &self.syntax
21536    }
21537}
21538impl AstNode for Close {
21539    #[inline]
21540    fn can_cast(kind: SyntaxKind) -> bool {
21541        kind == SyntaxKind::CLOSE
21542    }
21543    #[inline]
21544    fn cast(syntax: SyntaxNode) -> Option<Self> {
21545        if Self::can_cast(syntax.kind()) {
21546            Some(Self { syntax })
21547        } else {
21548            None
21549        }
21550    }
21551    #[inline]
21552    fn syntax(&self) -> &SyntaxNode {
21553        &self.syntax
21554    }
21555}
21556impl AstNode for Cluster {
21557    #[inline]
21558    fn can_cast(kind: SyntaxKind) -> bool {
21559        kind == SyntaxKind::CLUSTER
21560    }
21561    #[inline]
21562    fn cast(syntax: SyntaxNode) -> Option<Self> {
21563        if Self::can_cast(syntax.kind()) {
21564            Some(Self { syntax })
21565        } else {
21566            None
21567        }
21568    }
21569    #[inline]
21570    fn syntax(&self) -> &SyntaxNode {
21571        &self.syntax
21572    }
21573}
21574impl AstNode for ClusterOn {
21575    #[inline]
21576    fn can_cast(kind: SyntaxKind) -> bool {
21577        kind == SyntaxKind::CLUSTER_ON
21578    }
21579    #[inline]
21580    fn cast(syntax: SyntaxNode) -> Option<Self> {
21581        if Self::can_cast(syntax.kind()) {
21582            Some(Self { syntax })
21583        } else {
21584            None
21585        }
21586    }
21587    #[inline]
21588    fn syntax(&self) -> &SyntaxNode {
21589        &self.syntax
21590    }
21591}
21592impl AstNode for Collate {
21593    #[inline]
21594    fn can_cast(kind: SyntaxKind) -> bool {
21595        kind == SyntaxKind::COLLATE
21596    }
21597    #[inline]
21598    fn cast(syntax: SyntaxNode) -> Option<Self> {
21599        if Self::can_cast(syntax.kind()) {
21600            Some(Self { syntax })
21601        } else {
21602            None
21603        }
21604    }
21605    #[inline]
21606    fn syntax(&self) -> &SyntaxNode {
21607        &self.syntax
21608    }
21609}
21610impl AstNode for CollationForFn {
21611    #[inline]
21612    fn can_cast(kind: SyntaxKind) -> bool {
21613        kind == SyntaxKind::COLLATION_FOR_FN
21614    }
21615    #[inline]
21616    fn cast(syntax: SyntaxNode) -> Option<Self> {
21617        if Self::can_cast(syntax.kind()) {
21618            Some(Self { syntax })
21619        } else {
21620            None
21621        }
21622    }
21623    #[inline]
21624    fn syntax(&self) -> &SyntaxNode {
21625        &self.syntax
21626    }
21627}
21628impl AstNode for ColonColon {
21629    #[inline]
21630    fn can_cast(kind: SyntaxKind) -> bool {
21631        kind == SyntaxKind::COLON_COLON
21632    }
21633    #[inline]
21634    fn cast(syntax: SyntaxNode) -> Option<Self> {
21635        if Self::can_cast(syntax.kind()) {
21636            Some(Self { syntax })
21637        } else {
21638            None
21639        }
21640    }
21641    #[inline]
21642    fn syntax(&self) -> &SyntaxNode {
21643        &self.syntax
21644    }
21645}
21646impl AstNode for ColonEq {
21647    #[inline]
21648    fn can_cast(kind: SyntaxKind) -> bool {
21649        kind == SyntaxKind::COLON_EQ
21650    }
21651    #[inline]
21652    fn cast(syntax: SyntaxNode) -> Option<Self> {
21653        if Self::can_cast(syntax.kind()) {
21654            Some(Self { syntax })
21655        } else {
21656            None
21657        }
21658    }
21659    #[inline]
21660    fn syntax(&self) -> &SyntaxNode {
21661        &self.syntax
21662    }
21663}
21664impl AstNode for Column {
21665    #[inline]
21666    fn can_cast(kind: SyntaxKind) -> bool {
21667        kind == SyntaxKind::COLUMN
21668    }
21669    #[inline]
21670    fn cast(syntax: SyntaxNode) -> Option<Self> {
21671        if Self::can_cast(syntax.kind()) {
21672            Some(Self { syntax })
21673        } else {
21674            None
21675        }
21676    }
21677    #[inline]
21678    fn syntax(&self) -> &SyntaxNode {
21679        &self.syntax
21680    }
21681}
21682impl AstNode for ColumnList {
21683    #[inline]
21684    fn can_cast(kind: SyntaxKind) -> bool {
21685        kind == SyntaxKind::COLUMN_LIST
21686    }
21687    #[inline]
21688    fn cast(syntax: SyntaxNode) -> Option<Self> {
21689        if Self::can_cast(syntax.kind()) {
21690            Some(Self { syntax })
21691        } else {
21692            None
21693        }
21694    }
21695    #[inline]
21696    fn syntax(&self) -> &SyntaxNode {
21697        &self.syntax
21698    }
21699}
21700impl AstNode for CommentOn {
21701    #[inline]
21702    fn can_cast(kind: SyntaxKind) -> bool {
21703        kind == SyntaxKind::COMMENT_ON
21704    }
21705    #[inline]
21706    fn cast(syntax: SyntaxNode) -> Option<Self> {
21707        if Self::can_cast(syntax.kind()) {
21708            Some(Self { syntax })
21709        } else {
21710            None
21711        }
21712    }
21713    #[inline]
21714    fn syntax(&self) -> &SyntaxNode {
21715        &self.syntax
21716    }
21717}
21718impl AstNode for Commit {
21719    #[inline]
21720    fn can_cast(kind: SyntaxKind) -> bool {
21721        kind == SyntaxKind::COMMIT
21722    }
21723    #[inline]
21724    fn cast(syntax: SyntaxNode) -> Option<Self> {
21725        if Self::can_cast(syntax.kind()) {
21726            Some(Self { syntax })
21727        } else {
21728            None
21729        }
21730    }
21731    #[inline]
21732    fn syntax(&self) -> &SyntaxNode {
21733        &self.syntax
21734    }
21735}
21736impl AstNode for CompoundSelect {
21737    #[inline]
21738    fn can_cast(kind: SyntaxKind) -> bool {
21739        kind == SyntaxKind::COMPOUND_SELECT
21740    }
21741    #[inline]
21742    fn cast(syntax: SyntaxNode) -> Option<Self> {
21743        if Self::can_cast(syntax.kind()) {
21744            Some(Self { syntax })
21745        } else {
21746            None
21747        }
21748    }
21749    #[inline]
21750    fn syntax(&self) -> &SyntaxNode {
21751        &self.syntax
21752    }
21753}
21754impl AstNode for CompressionMethod {
21755    #[inline]
21756    fn can_cast(kind: SyntaxKind) -> bool {
21757        kind == SyntaxKind::COMPRESSION_METHOD
21758    }
21759    #[inline]
21760    fn cast(syntax: SyntaxNode) -> Option<Self> {
21761        if Self::can_cast(syntax.kind()) {
21762            Some(Self { syntax })
21763        } else {
21764            None
21765        }
21766    }
21767    #[inline]
21768    fn syntax(&self) -> &SyntaxNode {
21769        &self.syntax
21770    }
21771}
21772impl AstNode for ConflictDoNothing {
21773    #[inline]
21774    fn can_cast(kind: SyntaxKind) -> bool {
21775        kind == SyntaxKind::CONFLICT_DO_NOTHING
21776    }
21777    #[inline]
21778    fn cast(syntax: SyntaxNode) -> Option<Self> {
21779        if Self::can_cast(syntax.kind()) {
21780            Some(Self { syntax })
21781        } else {
21782            None
21783        }
21784    }
21785    #[inline]
21786    fn syntax(&self) -> &SyntaxNode {
21787        &self.syntax
21788    }
21789}
21790impl AstNode for ConflictDoSelect {
21791    #[inline]
21792    fn can_cast(kind: SyntaxKind) -> bool {
21793        kind == SyntaxKind::CONFLICT_DO_SELECT
21794    }
21795    #[inline]
21796    fn cast(syntax: SyntaxNode) -> Option<Self> {
21797        if Self::can_cast(syntax.kind()) {
21798            Some(Self { syntax })
21799        } else {
21800            None
21801        }
21802    }
21803    #[inline]
21804    fn syntax(&self) -> &SyntaxNode {
21805        &self.syntax
21806    }
21807}
21808impl AstNode for ConflictDoUpdateSet {
21809    #[inline]
21810    fn can_cast(kind: SyntaxKind) -> bool {
21811        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
21812    }
21813    #[inline]
21814    fn cast(syntax: SyntaxNode) -> Option<Self> {
21815        if Self::can_cast(syntax.kind()) {
21816            Some(Self { syntax })
21817        } else {
21818            None
21819        }
21820    }
21821    #[inline]
21822    fn syntax(&self) -> &SyntaxNode {
21823        &self.syntax
21824    }
21825}
21826impl AstNode for ConflictIndexItem {
21827    #[inline]
21828    fn can_cast(kind: SyntaxKind) -> bool {
21829        kind == SyntaxKind::CONFLICT_INDEX_ITEM
21830    }
21831    #[inline]
21832    fn cast(syntax: SyntaxNode) -> Option<Self> {
21833        if Self::can_cast(syntax.kind()) {
21834            Some(Self { syntax })
21835        } else {
21836            None
21837        }
21838    }
21839    #[inline]
21840    fn syntax(&self) -> &SyntaxNode {
21841        &self.syntax
21842    }
21843}
21844impl AstNode for ConflictIndexItemList {
21845    #[inline]
21846    fn can_cast(kind: SyntaxKind) -> bool {
21847        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
21848    }
21849    #[inline]
21850    fn cast(syntax: SyntaxNode) -> Option<Self> {
21851        if Self::can_cast(syntax.kind()) {
21852            Some(Self { syntax })
21853        } else {
21854            None
21855        }
21856    }
21857    #[inline]
21858    fn syntax(&self) -> &SyntaxNode {
21859        &self.syntax
21860    }
21861}
21862impl AstNode for ConflictOnConstraint {
21863    #[inline]
21864    fn can_cast(kind: SyntaxKind) -> bool {
21865        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
21866    }
21867    #[inline]
21868    fn cast(syntax: SyntaxNode) -> Option<Self> {
21869        if Self::can_cast(syntax.kind()) {
21870            Some(Self { syntax })
21871        } else {
21872            None
21873        }
21874    }
21875    #[inline]
21876    fn syntax(&self) -> &SyntaxNode {
21877        &self.syntax
21878    }
21879}
21880impl AstNode for ConflictOnIndex {
21881    #[inline]
21882    fn can_cast(kind: SyntaxKind) -> bool {
21883        kind == SyntaxKind::CONFLICT_ON_INDEX
21884    }
21885    #[inline]
21886    fn cast(syntax: SyntaxNode) -> Option<Self> {
21887        if Self::can_cast(syntax.kind()) {
21888            Some(Self { syntax })
21889        } else {
21890            None
21891        }
21892    }
21893    #[inline]
21894    fn syntax(&self) -> &SyntaxNode {
21895        &self.syntax
21896    }
21897}
21898impl AstNode for ConstraintExclusion {
21899    #[inline]
21900    fn can_cast(kind: SyntaxKind) -> bool {
21901        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21902    }
21903    #[inline]
21904    fn cast(syntax: SyntaxNode) -> Option<Self> {
21905        if Self::can_cast(syntax.kind()) {
21906            Some(Self { syntax })
21907        } else {
21908            None
21909        }
21910    }
21911    #[inline]
21912    fn syntax(&self) -> &SyntaxNode {
21913        &self.syntax
21914    }
21915}
21916impl AstNode for ConstraintExclusionList {
21917    #[inline]
21918    fn can_cast(kind: SyntaxKind) -> bool {
21919        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21920    }
21921    #[inline]
21922    fn cast(syntax: SyntaxNode) -> Option<Self> {
21923        if Self::can_cast(syntax.kind()) {
21924            Some(Self { syntax })
21925        } else {
21926            None
21927        }
21928    }
21929    #[inline]
21930    fn syntax(&self) -> &SyntaxNode {
21931        &self.syntax
21932    }
21933}
21934impl AstNode for ConstraintIncludeClause {
21935    #[inline]
21936    fn can_cast(kind: SyntaxKind) -> bool {
21937        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21938    }
21939    #[inline]
21940    fn cast(syntax: SyntaxNode) -> Option<Self> {
21941        if Self::can_cast(syntax.kind()) {
21942            Some(Self { syntax })
21943        } else {
21944            None
21945        }
21946    }
21947    #[inline]
21948    fn syntax(&self) -> &SyntaxNode {
21949        &self.syntax
21950    }
21951}
21952impl AstNode for ConstraintIndexMethod {
21953    #[inline]
21954    fn can_cast(kind: SyntaxKind) -> bool {
21955        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21956    }
21957    #[inline]
21958    fn cast(syntax: SyntaxNode) -> Option<Self> {
21959        if Self::can_cast(syntax.kind()) {
21960            Some(Self { syntax })
21961        } else {
21962            None
21963        }
21964    }
21965    #[inline]
21966    fn syntax(&self) -> &SyntaxNode {
21967        &self.syntax
21968    }
21969}
21970impl AstNode for ConstraintIndexTablespace {
21971    #[inline]
21972    fn can_cast(kind: SyntaxKind) -> bool {
21973        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21974    }
21975    #[inline]
21976    fn cast(syntax: SyntaxNode) -> Option<Self> {
21977        if Self::can_cast(syntax.kind()) {
21978            Some(Self { syntax })
21979        } else {
21980            None
21981        }
21982    }
21983    #[inline]
21984    fn syntax(&self) -> &SyntaxNode {
21985        &self.syntax
21986    }
21987}
21988impl AstNode for ConstraintName {
21989    #[inline]
21990    fn can_cast(kind: SyntaxKind) -> bool {
21991        kind == SyntaxKind::CONSTRAINT_NAME
21992    }
21993    #[inline]
21994    fn cast(syntax: SyntaxNode) -> Option<Self> {
21995        if Self::can_cast(syntax.kind()) {
21996            Some(Self { syntax })
21997        } else {
21998            None
21999        }
22000    }
22001    #[inline]
22002    fn syntax(&self) -> &SyntaxNode {
22003        &self.syntax
22004    }
22005}
22006impl AstNode for Copy {
22007    #[inline]
22008    fn can_cast(kind: SyntaxKind) -> bool {
22009        kind == SyntaxKind::COPY
22010    }
22011    #[inline]
22012    fn cast(syntax: SyntaxNode) -> Option<Self> {
22013        if Self::can_cast(syntax.kind()) {
22014            Some(Self { syntax })
22015        } else {
22016            None
22017        }
22018    }
22019    #[inline]
22020    fn syntax(&self) -> &SyntaxNode {
22021        &self.syntax
22022    }
22023}
22024impl AstNode for CopyOption {
22025    #[inline]
22026    fn can_cast(kind: SyntaxKind) -> bool {
22027        kind == SyntaxKind::COPY_OPTION
22028    }
22029    #[inline]
22030    fn cast(syntax: SyntaxNode) -> Option<Self> {
22031        if Self::can_cast(syntax.kind()) {
22032            Some(Self { syntax })
22033        } else {
22034            None
22035        }
22036    }
22037    #[inline]
22038    fn syntax(&self) -> &SyntaxNode {
22039        &self.syntax
22040    }
22041}
22042impl AstNode for CopyOptionList {
22043    #[inline]
22044    fn can_cast(kind: SyntaxKind) -> bool {
22045        kind == SyntaxKind::COPY_OPTION_LIST
22046    }
22047    #[inline]
22048    fn cast(syntax: SyntaxNode) -> Option<Self> {
22049        if Self::can_cast(syntax.kind()) {
22050            Some(Self { syntax })
22051        } else {
22052            None
22053        }
22054    }
22055    #[inline]
22056    fn syntax(&self) -> &SyntaxNode {
22057        &self.syntax
22058    }
22059}
22060impl AstNode for CostFuncOption {
22061    #[inline]
22062    fn can_cast(kind: SyntaxKind) -> bool {
22063        kind == SyntaxKind::COST_FUNC_OPTION
22064    }
22065    #[inline]
22066    fn cast(syntax: SyntaxNode) -> Option<Self> {
22067        if Self::can_cast(syntax.kind()) {
22068            Some(Self { syntax })
22069        } else {
22070            None
22071        }
22072    }
22073    #[inline]
22074    fn syntax(&self) -> &SyntaxNode {
22075        &self.syntax
22076    }
22077}
22078impl AstNode for CreateAccessMethod {
22079    #[inline]
22080    fn can_cast(kind: SyntaxKind) -> bool {
22081        kind == SyntaxKind::CREATE_ACCESS_METHOD
22082    }
22083    #[inline]
22084    fn cast(syntax: SyntaxNode) -> Option<Self> {
22085        if Self::can_cast(syntax.kind()) {
22086            Some(Self { syntax })
22087        } else {
22088            None
22089        }
22090    }
22091    #[inline]
22092    fn syntax(&self) -> &SyntaxNode {
22093        &self.syntax
22094    }
22095}
22096impl AstNode for CreateAggregate {
22097    #[inline]
22098    fn can_cast(kind: SyntaxKind) -> bool {
22099        kind == SyntaxKind::CREATE_AGGREGATE
22100    }
22101    #[inline]
22102    fn cast(syntax: SyntaxNode) -> Option<Self> {
22103        if Self::can_cast(syntax.kind()) {
22104            Some(Self { syntax })
22105        } else {
22106            None
22107        }
22108    }
22109    #[inline]
22110    fn syntax(&self) -> &SyntaxNode {
22111        &self.syntax
22112    }
22113}
22114impl AstNode for CreateCast {
22115    #[inline]
22116    fn can_cast(kind: SyntaxKind) -> bool {
22117        kind == SyntaxKind::CREATE_CAST
22118    }
22119    #[inline]
22120    fn cast(syntax: SyntaxNode) -> Option<Self> {
22121        if Self::can_cast(syntax.kind()) {
22122            Some(Self { syntax })
22123        } else {
22124            None
22125        }
22126    }
22127    #[inline]
22128    fn syntax(&self) -> &SyntaxNode {
22129        &self.syntax
22130    }
22131}
22132impl AstNode for CreateCollation {
22133    #[inline]
22134    fn can_cast(kind: SyntaxKind) -> bool {
22135        kind == SyntaxKind::CREATE_COLLATION
22136    }
22137    #[inline]
22138    fn cast(syntax: SyntaxNode) -> Option<Self> {
22139        if Self::can_cast(syntax.kind()) {
22140            Some(Self { syntax })
22141        } else {
22142            None
22143        }
22144    }
22145    #[inline]
22146    fn syntax(&self) -> &SyntaxNode {
22147        &self.syntax
22148    }
22149}
22150impl AstNode for CreateConversion {
22151    #[inline]
22152    fn can_cast(kind: SyntaxKind) -> bool {
22153        kind == SyntaxKind::CREATE_CONVERSION
22154    }
22155    #[inline]
22156    fn cast(syntax: SyntaxNode) -> Option<Self> {
22157        if Self::can_cast(syntax.kind()) {
22158            Some(Self { syntax })
22159        } else {
22160            None
22161        }
22162    }
22163    #[inline]
22164    fn syntax(&self) -> &SyntaxNode {
22165        &self.syntax
22166    }
22167}
22168impl AstNode for CreateDatabase {
22169    #[inline]
22170    fn can_cast(kind: SyntaxKind) -> bool {
22171        kind == SyntaxKind::CREATE_DATABASE
22172    }
22173    #[inline]
22174    fn cast(syntax: SyntaxNode) -> Option<Self> {
22175        if Self::can_cast(syntax.kind()) {
22176            Some(Self { syntax })
22177        } else {
22178            None
22179        }
22180    }
22181    #[inline]
22182    fn syntax(&self) -> &SyntaxNode {
22183        &self.syntax
22184    }
22185}
22186impl AstNode for CreateDatabaseOption {
22187    #[inline]
22188    fn can_cast(kind: SyntaxKind) -> bool {
22189        kind == SyntaxKind::CREATE_DATABASE_OPTION
22190    }
22191    #[inline]
22192    fn cast(syntax: SyntaxNode) -> Option<Self> {
22193        if Self::can_cast(syntax.kind()) {
22194            Some(Self { syntax })
22195        } else {
22196            None
22197        }
22198    }
22199    #[inline]
22200    fn syntax(&self) -> &SyntaxNode {
22201        &self.syntax
22202    }
22203}
22204impl AstNode for CreateDatabaseOptionList {
22205    #[inline]
22206    fn can_cast(kind: SyntaxKind) -> bool {
22207        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
22208    }
22209    #[inline]
22210    fn cast(syntax: SyntaxNode) -> Option<Self> {
22211        if Self::can_cast(syntax.kind()) {
22212            Some(Self { syntax })
22213        } else {
22214            None
22215        }
22216    }
22217    #[inline]
22218    fn syntax(&self) -> &SyntaxNode {
22219        &self.syntax
22220    }
22221}
22222impl AstNode for CreateDomain {
22223    #[inline]
22224    fn can_cast(kind: SyntaxKind) -> bool {
22225        kind == SyntaxKind::CREATE_DOMAIN
22226    }
22227    #[inline]
22228    fn cast(syntax: SyntaxNode) -> Option<Self> {
22229        if Self::can_cast(syntax.kind()) {
22230            Some(Self { syntax })
22231        } else {
22232            None
22233        }
22234    }
22235    #[inline]
22236    fn syntax(&self) -> &SyntaxNode {
22237        &self.syntax
22238    }
22239}
22240impl AstNode for CreateEventTrigger {
22241    #[inline]
22242    fn can_cast(kind: SyntaxKind) -> bool {
22243        kind == SyntaxKind::CREATE_EVENT_TRIGGER
22244    }
22245    #[inline]
22246    fn cast(syntax: SyntaxNode) -> Option<Self> {
22247        if Self::can_cast(syntax.kind()) {
22248            Some(Self { syntax })
22249        } else {
22250            None
22251        }
22252    }
22253    #[inline]
22254    fn syntax(&self) -> &SyntaxNode {
22255        &self.syntax
22256    }
22257}
22258impl AstNode for CreateExtension {
22259    #[inline]
22260    fn can_cast(kind: SyntaxKind) -> bool {
22261        kind == SyntaxKind::CREATE_EXTENSION
22262    }
22263    #[inline]
22264    fn cast(syntax: SyntaxNode) -> Option<Self> {
22265        if Self::can_cast(syntax.kind()) {
22266            Some(Self { syntax })
22267        } else {
22268            None
22269        }
22270    }
22271    #[inline]
22272    fn syntax(&self) -> &SyntaxNode {
22273        &self.syntax
22274    }
22275}
22276impl AstNode for CreateForeignDataWrapper {
22277    #[inline]
22278    fn can_cast(kind: SyntaxKind) -> bool {
22279        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
22280    }
22281    #[inline]
22282    fn cast(syntax: SyntaxNode) -> Option<Self> {
22283        if Self::can_cast(syntax.kind()) {
22284            Some(Self { syntax })
22285        } else {
22286            None
22287        }
22288    }
22289    #[inline]
22290    fn syntax(&self) -> &SyntaxNode {
22291        &self.syntax
22292    }
22293}
22294impl AstNode for CreateForeignTable {
22295    #[inline]
22296    fn can_cast(kind: SyntaxKind) -> bool {
22297        kind == SyntaxKind::CREATE_FOREIGN_TABLE
22298    }
22299    #[inline]
22300    fn cast(syntax: SyntaxNode) -> Option<Self> {
22301        if Self::can_cast(syntax.kind()) {
22302            Some(Self { syntax })
22303        } else {
22304            None
22305        }
22306    }
22307    #[inline]
22308    fn syntax(&self) -> &SyntaxNode {
22309        &self.syntax
22310    }
22311}
22312impl AstNode for CreateFunction {
22313    #[inline]
22314    fn can_cast(kind: SyntaxKind) -> bool {
22315        kind == SyntaxKind::CREATE_FUNCTION
22316    }
22317    #[inline]
22318    fn cast(syntax: SyntaxNode) -> Option<Self> {
22319        if Self::can_cast(syntax.kind()) {
22320            Some(Self { syntax })
22321        } else {
22322            None
22323        }
22324    }
22325    #[inline]
22326    fn syntax(&self) -> &SyntaxNode {
22327        &self.syntax
22328    }
22329}
22330impl AstNode for CreateGroup {
22331    #[inline]
22332    fn can_cast(kind: SyntaxKind) -> bool {
22333        kind == SyntaxKind::CREATE_GROUP
22334    }
22335    #[inline]
22336    fn cast(syntax: SyntaxNode) -> Option<Self> {
22337        if Self::can_cast(syntax.kind()) {
22338            Some(Self { syntax })
22339        } else {
22340            None
22341        }
22342    }
22343    #[inline]
22344    fn syntax(&self) -> &SyntaxNode {
22345        &self.syntax
22346    }
22347}
22348impl AstNode for CreateIndex {
22349    #[inline]
22350    fn can_cast(kind: SyntaxKind) -> bool {
22351        kind == SyntaxKind::CREATE_INDEX
22352    }
22353    #[inline]
22354    fn cast(syntax: SyntaxNode) -> Option<Self> {
22355        if Self::can_cast(syntax.kind()) {
22356            Some(Self { syntax })
22357        } else {
22358            None
22359        }
22360    }
22361    #[inline]
22362    fn syntax(&self) -> &SyntaxNode {
22363        &self.syntax
22364    }
22365}
22366impl AstNode for CreateLanguage {
22367    #[inline]
22368    fn can_cast(kind: SyntaxKind) -> bool {
22369        kind == SyntaxKind::CREATE_LANGUAGE
22370    }
22371    #[inline]
22372    fn cast(syntax: SyntaxNode) -> Option<Self> {
22373        if Self::can_cast(syntax.kind()) {
22374            Some(Self { syntax })
22375        } else {
22376            None
22377        }
22378    }
22379    #[inline]
22380    fn syntax(&self) -> &SyntaxNode {
22381        &self.syntax
22382    }
22383}
22384impl AstNode for CreateMaterializedView {
22385    #[inline]
22386    fn can_cast(kind: SyntaxKind) -> bool {
22387        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
22388    }
22389    #[inline]
22390    fn cast(syntax: SyntaxNode) -> Option<Self> {
22391        if Self::can_cast(syntax.kind()) {
22392            Some(Self { syntax })
22393        } else {
22394            None
22395        }
22396    }
22397    #[inline]
22398    fn syntax(&self) -> &SyntaxNode {
22399        &self.syntax
22400    }
22401}
22402impl AstNode for CreateOperator {
22403    #[inline]
22404    fn can_cast(kind: SyntaxKind) -> bool {
22405        kind == SyntaxKind::CREATE_OPERATOR
22406    }
22407    #[inline]
22408    fn cast(syntax: SyntaxNode) -> Option<Self> {
22409        if Self::can_cast(syntax.kind()) {
22410            Some(Self { syntax })
22411        } else {
22412            None
22413        }
22414    }
22415    #[inline]
22416    fn syntax(&self) -> &SyntaxNode {
22417        &self.syntax
22418    }
22419}
22420impl AstNode for CreateOperatorClass {
22421    #[inline]
22422    fn can_cast(kind: SyntaxKind) -> bool {
22423        kind == SyntaxKind::CREATE_OPERATOR_CLASS
22424    }
22425    #[inline]
22426    fn cast(syntax: SyntaxNode) -> Option<Self> {
22427        if Self::can_cast(syntax.kind()) {
22428            Some(Self { syntax })
22429        } else {
22430            None
22431        }
22432    }
22433    #[inline]
22434    fn syntax(&self) -> &SyntaxNode {
22435        &self.syntax
22436    }
22437}
22438impl AstNode for CreateOperatorFamily {
22439    #[inline]
22440    fn can_cast(kind: SyntaxKind) -> bool {
22441        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
22442    }
22443    #[inline]
22444    fn cast(syntax: SyntaxNode) -> Option<Self> {
22445        if Self::can_cast(syntax.kind()) {
22446            Some(Self { syntax })
22447        } else {
22448            None
22449        }
22450    }
22451    #[inline]
22452    fn syntax(&self) -> &SyntaxNode {
22453        &self.syntax
22454    }
22455}
22456impl AstNode for CreatePolicy {
22457    #[inline]
22458    fn can_cast(kind: SyntaxKind) -> bool {
22459        kind == SyntaxKind::CREATE_POLICY
22460    }
22461    #[inline]
22462    fn cast(syntax: SyntaxNode) -> Option<Self> {
22463        if Self::can_cast(syntax.kind()) {
22464            Some(Self { syntax })
22465        } else {
22466            None
22467        }
22468    }
22469    #[inline]
22470    fn syntax(&self) -> &SyntaxNode {
22471        &self.syntax
22472    }
22473}
22474impl AstNode for CreateProcedure {
22475    #[inline]
22476    fn can_cast(kind: SyntaxKind) -> bool {
22477        kind == SyntaxKind::CREATE_PROCEDURE
22478    }
22479    #[inline]
22480    fn cast(syntax: SyntaxNode) -> Option<Self> {
22481        if Self::can_cast(syntax.kind()) {
22482            Some(Self { syntax })
22483        } else {
22484            None
22485        }
22486    }
22487    #[inline]
22488    fn syntax(&self) -> &SyntaxNode {
22489        &self.syntax
22490    }
22491}
22492impl AstNode for CreatePropertyGraph {
22493    #[inline]
22494    fn can_cast(kind: SyntaxKind) -> bool {
22495        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
22496    }
22497    #[inline]
22498    fn cast(syntax: SyntaxNode) -> Option<Self> {
22499        if Self::can_cast(syntax.kind()) {
22500            Some(Self { syntax })
22501        } else {
22502            None
22503        }
22504    }
22505    #[inline]
22506    fn syntax(&self) -> &SyntaxNode {
22507        &self.syntax
22508    }
22509}
22510impl AstNode for CreatePublication {
22511    #[inline]
22512    fn can_cast(kind: SyntaxKind) -> bool {
22513        kind == SyntaxKind::CREATE_PUBLICATION
22514    }
22515    #[inline]
22516    fn cast(syntax: SyntaxNode) -> Option<Self> {
22517        if Self::can_cast(syntax.kind()) {
22518            Some(Self { syntax })
22519        } else {
22520            None
22521        }
22522    }
22523    #[inline]
22524    fn syntax(&self) -> &SyntaxNode {
22525        &self.syntax
22526    }
22527}
22528impl AstNode for CreateRole {
22529    #[inline]
22530    fn can_cast(kind: SyntaxKind) -> bool {
22531        kind == SyntaxKind::CREATE_ROLE
22532    }
22533    #[inline]
22534    fn cast(syntax: SyntaxNode) -> Option<Self> {
22535        if Self::can_cast(syntax.kind()) {
22536            Some(Self { syntax })
22537        } else {
22538            None
22539        }
22540    }
22541    #[inline]
22542    fn syntax(&self) -> &SyntaxNode {
22543        &self.syntax
22544    }
22545}
22546impl AstNode for CreateRule {
22547    #[inline]
22548    fn can_cast(kind: SyntaxKind) -> bool {
22549        kind == SyntaxKind::CREATE_RULE
22550    }
22551    #[inline]
22552    fn cast(syntax: SyntaxNode) -> Option<Self> {
22553        if Self::can_cast(syntax.kind()) {
22554            Some(Self { syntax })
22555        } else {
22556            None
22557        }
22558    }
22559    #[inline]
22560    fn syntax(&self) -> &SyntaxNode {
22561        &self.syntax
22562    }
22563}
22564impl AstNode for CreateSchema {
22565    #[inline]
22566    fn can_cast(kind: SyntaxKind) -> bool {
22567        kind == SyntaxKind::CREATE_SCHEMA
22568    }
22569    #[inline]
22570    fn cast(syntax: SyntaxNode) -> Option<Self> {
22571        if Self::can_cast(syntax.kind()) {
22572            Some(Self { syntax })
22573        } else {
22574            None
22575        }
22576    }
22577    #[inline]
22578    fn syntax(&self) -> &SyntaxNode {
22579        &self.syntax
22580    }
22581}
22582impl AstNode for CreateSequence {
22583    #[inline]
22584    fn can_cast(kind: SyntaxKind) -> bool {
22585        kind == SyntaxKind::CREATE_SEQUENCE
22586    }
22587    #[inline]
22588    fn cast(syntax: SyntaxNode) -> Option<Self> {
22589        if Self::can_cast(syntax.kind()) {
22590            Some(Self { syntax })
22591        } else {
22592            None
22593        }
22594    }
22595    #[inline]
22596    fn syntax(&self) -> &SyntaxNode {
22597        &self.syntax
22598    }
22599}
22600impl AstNode for CreateServer {
22601    #[inline]
22602    fn can_cast(kind: SyntaxKind) -> bool {
22603        kind == SyntaxKind::CREATE_SERVER
22604    }
22605    #[inline]
22606    fn cast(syntax: SyntaxNode) -> Option<Self> {
22607        if Self::can_cast(syntax.kind()) {
22608            Some(Self { syntax })
22609        } else {
22610            None
22611        }
22612    }
22613    #[inline]
22614    fn syntax(&self) -> &SyntaxNode {
22615        &self.syntax
22616    }
22617}
22618impl AstNode for CreateStatistics {
22619    #[inline]
22620    fn can_cast(kind: SyntaxKind) -> bool {
22621        kind == SyntaxKind::CREATE_STATISTICS
22622    }
22623    #[inline]
22624    fn cast(syntax: SyntaxNode) -> Option<Self> {
22625        if Self::can_cast(syntax.kind()) {
22626            Some(Self { syntax })
22627        } else {
22628            None
22629        }
22630    }
22631    #[inline]
22632    fn syntax(&self) -> &SyntaxNode {
22633        &self.syntax
22634    }
22635}
22636impl AstNode for CreateSubscription {
22637    #[inline]
22638    fn can_cast(kind: SyntaxKind) -> bool {
22639        kind == SyntaxKind::CREATE_SUBSCRIPTION
22640    }
22641    #[inline]
22642    fn cast(syntax: SyntaxNode) -> Option<Self> {
22643        if Self::can_cast(syntax.kind()) {
22644            Some(Self { syntax })
22645        } else {
22646            None
22647        }
22648    }
22649    #[inline]
22650    fn syntax(&self) -> &SyntaxNode {
22651        &self.syntax
22652    }
22653}
22654impl AstNode for CreateTable {
22655    #[inline]
22656    fn can_cast(kind: SyntaxKind) -> bool {
22657        kind == SyntaxKind::CREATE_TABLE
22658    }
22659    #[inline]
22660    fn cast(syntax: SyntaxNode) -> Option<Self> {
22661        if Self::can_cast(syntax.kind()) {
22662            Some(Self { syntax })
22663        } else {
22664            None
22665        }
22666    }
22667    #[inline]
22668    fn syntax(&self) -> &SyntaxNode {
22669        &self.syntax
22670    }
22671}
22672impl AstNode for CreateTableAs {
22673    #[inline]
22674    fn can_cast(kind: SyntaxKind) -> bool {
22675        kind == SyntaxKind::CREATE_TABLE_AS
22676    }
22677    #[inline]
22678    fn cast(syntax: SyntaxNode) -> Option<Self> {
22679        if Self::can_cast(syntax.kind()) {
22680            Some(Self { syntax })
22681        } else {
22682            None
22683        }
22684    }
22685    #[inline]
22686    fn syntax(&self) -> &SyntaxNode {
22687        &self.syntax
22688    }
22689}
22690impl AstNode for CreateTablespace {
22691    #[inline]
22692    fn can_cast(kind: SyntaxKind) -> bool {
22693        kind == SyntaxKind::CREATE_TABLESPACE
22694    }
22695    #[inline]
22696    fn cast(syntax: SyntaxNode) -> Option<Self> {
22697        if Self::can_cast(syntax.kind()) {
22698            Some(Self { syntax })
22699        } else {
22700            None
22701        }
22702    }
22703    #[inline]
22704    fn syntax(&self) -> &SyntaxNode {
22705        &self.syntax
22706    }
22707}
22708impl AstNode for CreateTextSearchConfiguration {
22709    #[inline]
22710    fn can_cast(kind: SyntaxKind) -> bool {
22711        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
22712    }
22713    #[inline]
22714    fn cast(syntax: SyntaxNode) -> Option<Self> {
22715        if Self::can_cast(syntax.kind()) {
22716            Some(Self { syntax })
22717        } else {
22718            None
22719        }
22720    }
22721    #[inline]
22722    fn syntax(&self) -> &SyntaxNode {
22723        &self.syntax
22724    }
22725}
22726impl AstNode for CreateTextSearchDictionary {
22727    #[inline]
22728    fn can_cast(kind: SyntaxKind) -> bool {
22729        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
22730    }
22731    #[inline]
22732    fn cast(syntax: SyntaxNode) -> Option<Self> {
22733        if Self::can_cast(syntax.kind()) {
22734            Some(Self { syntax })
22735        } else {
22736            None
22737        }
22738    }
22739    #[inline]
22740    fn syntax(&self) -> &SyntaxNode {
22741        &self.syntax
22742    }
22743}
22744impl AstNode for CreateTextSearchParser {
22745    #[inline]
22746    fn can_cast(kind: SyntaxKind) -> bool {
22747        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
22748    }
22749    #[inline]
22750    fn cast(syntax: SyntaxNode) -> Option<Self> {
22751        if Self::can_cast(syntax.kind()) {
22752            Some(Self { syntax })
22753        } else {
22754            None
22755        }
22756    }
22757    #[inline]
22758    fn syntax(&self) -> &SyntaxNode {
22759        &self.syntax
22760    }
22761}
22762impl AstNode for CreateTextSearchTemplate {
22763    #[inline]
22764    fn can_cast(kind: SyntaxKind) -> bool {
22765        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
22766    }
22767    #[inline]
22768    fn cast(syntax: SyntaxNode) -> Option<Self> {
22769        if Self::can_cast(syntax.kind()) {
22770            Some(Self { syntax })
22771        } else {
22772            None
22773        }
22774    }
22775    #[inline]
22776    fn syntax(&self) -> &SyntaxNode {
22777        &self.syntax
22778    }
22779}
22780impl AstNode for CreateTransform {
22781    #[inline]
22782    fn can_cast(kind: SyntaxKind) -> bool {
22783        kind == SyntaxKind::CREATE_TRANSFORM
22784    }
22785    #[inline]
22786    fn cast(syntax: SyntaxNode) -> Option<Self> {
22787        if Self::can_cast(syntax.kind()) {
22788            Some(Self { syntax })
22789        } else {
22790            None
22791        }
22792    }
22793    #[inline]
22794    fn syntax(&self) -> &SyntaxNode {
22795        &self.syntax
22796    }
22797}
22798impl AstNode for CreateTrigger {
22799    #[inline]
22800    fn can_cast(kind: SyntaxKind) -> bool {
22801        kind == SyntaxKind::CREATE_TRIGGER
22802    }
22803    #[inline]
22804    fn cast(syntax: SyntaxNode) -> Option<Self> {
22805        if Self::can_cast(syntax.kind()) {
22806            Some(Self { syntax })
22807        } else {
22808            None
22809        }
22810    }
22811    #[inline]
22812    fn syntax(&self) -> &SyntaxNode {
22813        &self.syntax
22814    }
22815}
22816impl AstNode for CreateType {
22817    #[inline]
22818    fn can_cast(kind: SyntaxKind) -> bool {
22819        kind == SyntaxKind::CREATE_TYPE
22820    }
22821    #[inline]
22822    fn cast(syntax: SyntaxNode) -> Option<Self> {
22823        if Self::can_cast(syntax.kind()) {
22824            Some(Self { syntax })
22825        } else {
22826            None
22827        }
22828    }
22829    #[inline]
22830    fn syntax(&self) -> &SyntaxNode {
22831        &self.syntax
22832    }
22833}
22834impl AstNode for CreateUser {
22835    #[inline]
22836    fn can_cast(kind: SyntaxKind) -> bool {
22837        kind == SyntaxKind::CREATE_USER
22838    }
22839    #[inline]
22840    fn cast(syntax: SyntaxNode) -> Option<Self> {
22841        if Self::can_cast(syntax.kind()) {
22842            Some(Self { syntax })
22843        } else {
22844            None
22845        }
22846    }
22847    #[inline]
22848    fn syntax(&self) -> &SyntaxNode {
22849        &self.syntax
22850    }
22851}
22852impl AstNode for CreateUserMapping {
22853    #[inline]
22854    fn can_cast(kind: SyntaxKind) -> bool {
22855        kind == SyntaxKind::CREATE_USER_MAPPING
22856    }
22857    #[inline]
22858    fn cast(syntax: SyntaxNode) -> Option<Self> {
22859        if Self::can_cast(syntax.kind()) {
22860            Some(Self { syntax })
22861        } else {
22862            None
22863        }
22864    }
22865    #[inline]
22866    fn syntax(&self) -> &SyntaxNode {
22867        &self.syntax
22868    }
22869}
22870impl AstNode for CreateView {
22871    #[inline]
22872    fn can_cast(kind: SyntaxKind) -> bool {
22873        kind == SyntaxKind::CREATE_VIEW
22874    }
22875    #[inline]
22876    fn cast(syntax: SyntaxNode) -> Option<Self> {
22877        if Self::can_cast(syntax.kind()) {
22878            Some(Self { syntax })
22879        } else {
22880            None
22881        }
22882    }
22883    #[inline]
22884    fn syntax(&self) -> &SyntaxNode {
22885        &self.syntax
22886    }
22887}
22888impl AstNode for CustomOp {
22889    #[inline]
22890    fn can_cast(kind: SyntaxKind) -> bool {
22891        kind == SyntaxKind::CUSTOM_OP
22892    }
22893    #[inline]
22894    fn cast(syntax: SyntaxNode) -> Option<Self> {
22895        if Self::can_cast(syntax.kind()) {
22896            Some(Self { syntax })
22897        } else {
22898            None
22899        }
22900    }
22901    #[inline]
22902    fn syntax(&self) -> &SyntaxNode {
22903        &self.syntax
22904    }
22905}
22906impl AstNode for Deallocate {
22907    #[inline]
22908    fn can_cast(kind: SyntaxKind) -> bool {
22909        kind == SyntaxKind::DEALLOCATE
22910    }
22911    #[inline]
22912    fn cast(syntax: SyntaxNode) -> Option<Self> {
22913        if Self::can_cast(syntax.kind()) {
22914            Some(Self { syntax })
22915        } else {
22916            None
22917        }
22918    }
22919    #[inline]
22920    fn syntax(&self) -> &SyntaxNode {
22921        &self.syntax
22922    }
22923}
22924impl AstNode for Declare {
22925    #[inline]
22926    fn can_cast(kind: SyntaxKind) -> bool {
22927        kind == SyntaxKind::DECLARE
22928    }
22929    #[inline]
22930    fn cast(syntax: SyntaxNode) -> Option<Self> {
22931        if Self::can_cast(syntax.kind()) {
22932            Some(Self { syntax })
22933        } else {
22934            None
22935        }
22936    }
22937    #[inline]
22938    fn syntax(&self) -> &SyntaxNode {
22939        &self.syntax
22940    }
22941}
22942impl AstNode for DefaultConstraint {
22943    #[inline]
22944    fn can_cast(kind: SyntaxKind) -> bool {
22945        kind == SyntaxKind::DEFAULT_CONSTRAINT
22946    }
22947    #[inline]
22948    fn cast(syntax: SyntaxNode) -> Option<Self> {
22949        if Self::can_cast(syntax.kind()) {
22950            Some(Self { syntax })
22951        } else {
22952            None
22953        }
22954    }
22955    #[inline]
22956    fn syntax(&self) -> &SyntaxNode {
22957        &self.syntax
22958    }
22959}
22960impl AstNode for Deferrable {
22961    #[inline]
22962    fn can_cast(kind: SyntaxKind) -> bool {
22963        kind == SyntaxKind::DEFERRABLE
22964    }
22965    #[inline]
22966    fn cast(syntax: SyntaxNode) -> Option<Self> {
22967        if Self::can_cast(syntax.kind()) {
22968            Some(Self { syntax })
22969        } else {
22970            None
22971        }
22972    }
22973    #[inline]
22974    fn syntax(&self) -> &SyntaxNode {
22975        &self.syntax
22976    }
22977}
22978impl AstNode for DeferrableConstraintOption {
22979    #[inline]
22980    fn can_cast(kind: SyntaxKind) -> bool {
22981        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22982    }
22983    #[inline]
22984    fn cast(syntax: SyntaxNode) -> Option<Self> {
22985        if Self::can_cast(syntax.kind()) {
22986            Some(Self { syntax })
22987        } else {
22988            None
22989        }
22990    }
22991    #[inline]
22992    fn syntax(&self) -> &SyntaxNode {
22993        &self.syntax
22994    }
22995}
22996impl AstNode for Delete {
22997    #[inline]
22998    fn can_cast(kind: SyntaxKind) -> bool {
22999        kind == SyntaxKind::DELETE
23000    }
23001    #[inline]
23002    fn cast(syntax: SyntaxNode) -> Option<Self> {
23003        if Self::can_cast(syntax.kind()) {
23004            Some(Self { syntax })
23005        } else {
23006            None
23007        }
23008    }
23009    #[inline]
23010    fn syntax(&self) -> &SyntaxNode {
23011        &self.syntax
23012    }
23013}
23014impl AstNode for DeleteRows {
23015    #[inline]
23016    fn can_cast(kind: SyntaxKind) -> bool {
23017        kind == SyntaxKind::DELETE_ROWS
23018    }
23019    #[inline]
23020    fn cast(syntax: SyntaxNode) -> Option<Self> {
23021        if Self::can_cast(syntax.kind()) {
23022            Some(Self { syntax })
23023        } else {
23024            None
23025        }
23026    }
23027    #[inline]
23028    fn syntax(&self) -> &SyntaxNode {
23029        &self.syntax
23030    }
23031}
23032impl AstNode for DependsOnExtension {
23033    #[inline]
23034    fn can_cast(kind: SyntaxKind) -> bool {
23035        kind == SyntaxKind::DEPENDS_ON_EXTENSION
23036    }
23037    #[inline]
23038    fn cast(syntax: SyntaxNode) -> Option<Self> {
23039        if Self::can_cast(syntax.kind()) {
23040            Some(Self { syntax })
23041        } else {
23042            None
23043        }
23044    }
23045    #[inline]
23046    fn syntax(&self) -> &SyntaxNode {
23047        &self.syntax
23048    }
23049}
23050impl AstNode for DestVertexTable {
23051    #[inline]
23052    fn can_cast(kind: SyntaxKind) -> bool {
23053        kind == SyntaxKind::DEST_VERTEX_TABLE
23054    }
23055    #[inline]
23056    fn cast(syntax: SyntaxNode) -> Option<Self> {
23057        if Self::can_cast(syntax.kind()) {
23058            Some(Self { syntax })
23059        } else {
23060            None
23061        }
23062    }
23063    #[inline]
23064    fn syntax(&self) -> &SyntaxNode {
23065        &self.syntax
23066    }
23067}
23068impl AstNode for DetachPartition {
23069    #[inline]
23070    fn can_cast(kind: SyntaxKind) -> bool {
23071        kind == SyntaxKind::DETACH_PARTITION
23072    }
23073    #[inline]
23074    fn cast(syntax: SyntaxNode) -> Option<Self> {
23075        if Self::can_cast(syntax.kind()) {
23076            Some(Self { syntax })
23077        } else {
23078            None
23079        }
23080    }
23081    #[inline]
23082    fn syntax(&self) -> &SyntaxNode {
23083        &self.syntax
23084    }
23085}
23086impl AstNode for DisableRls {
23087    #[inline]
23088    fn can_cast(kind: SyntaxKind) -> bool {
23089        kind == SyntaxKind::DISABLE_RLS
23090    }
23091    #[inline]
23092    fn cast(syntax: SyntaxNode) -> Option<Self> {
23093        if Self::can_cast(syntax.kind()) {
23094            Some(Self { syntax })
23095        } else {
23096            None
23097        }
23098    }
23099    #[inline]
23100    fn syntax(&self) -> &SyntaxNode {
23101        &self.syntax
23102    }
23103}
23104impl AstNode for DisableRule {
23105    #[inline]
23106    fn can_cast(kind: SyntaxKind) -> bool {
23107        kind == SyntaxKind::DISABLE_RULE
23108    }
23109    #[inline]
23110    fn cast(syntax: SyntaxNode) -> Option<Self> {
23111        if Self::can_cast(syntax.kind()) {
23112            Some(Self { syntax })
23113        } else {
23114            None
23115        }
23116    }
23117    #[inline]
23118    fn syntax(&self) -> &SyntaxNode {
23119        &self.syntax
23120    }
23121}
23122impl AstNode for DisableTrigger {
23123    #[inline]
23124    fn can_cast(kind: SyntaxKind) -> bool {
23125        kind == SyntaxKind::DISABLE_TRIGGER
23126    }
23127    #[inline]
23128    fn cast(syntax: SyntaxNode) -> Option<Self> {
23129        if Self::can_cast(syntax.kind()) {
23130            Some(Self { syntax })
23131        } else {
23132            None
23133        }
23134    }
23135    #[inline]
23136    fn syntax(&self) -> &SyntaxNode {
23137        &self.syntax
23138    }
23139}
23140impl AstNode for Discard {
23141    #[inline]
23142    fn can_cast(kind: SyntaxKind) -> bool {
23143        kind == SyntaxKind::DISCARD
23144    }
23145    #[inline]
23146    fn cast(syntax: SyntaxNode) -> Option<Self> {
23147        if Self::can_cast(syntax.kind()) {
23148            Some(Self { syntax })
23149        } else {
23150            None
23151        }
23152    }
23153    #[inline]
23154    fn syntax(&self) -> &SyntaxNode {
23155        &self.syntax
23156    }
23157}
23158impl AstNode for DistinctClause {
23159    #[inline]
23160    fn can_cast(kind: SyntaxKind) -> bool {
23161        kind == SyntaxKind::DISTINCT_CLAUSE
23162    }
23163    #[inline]
23164    fn cast(syntax: SyntaxNode) -> Option<Self> {
23165        if Self::can_cast(syntax.kind()) {
23166            Some(Self { syntax })
23167        } else {
23168            None
23169        }
23170    }
23171    #[inline]
23172    fn syntax(&self) -> &SyntaxNode {
23173        &self.syntax
23174    }
23175}
23176impl AstNode for Do {
23177    #[inline]
23178    fn can_cast(kind: SyntaxKind) -> bool {
23179        kind == SyntaxKind::DO
23180    }
23181    #[inline]
23182    fn cast(syntax: SyntaxNode) -> Option<Self> {
23183        if Self::can_cast(syntax.kind()) {
23184            Some(Self { syntax })
23185        } else {
23186            None
23187        }
23188    }
23189    #[inline]
23190    fn syntax(&self) -> &SyntaxNode {
23191        &self.syntax
23192    }
23193}
23194impl AstNode for DoubleType {
23195    #[inline]
23196    fn can_cast(kind: SyntaxKind) -> bool {
23197        kind == SyntaxKind::DOUBLE_TYPE
23198    }
23199    #[inline]
23200    fn cast(syntax: SyntaxNode) -> Option<Self> {
23201        if Self::can_cast(syntax.kind()) {
23202            Some(Self { syntax })
23203        } else {
23204            None
23205        }
23206    }
23207    #[inline]
23208    fn syntax(&self) -> &SyntaxNode {
23209        &self.syntax
23210    }
23211}
23212impl AstNode for Drop {
23213    #[inline]
23214    fn can_cast(kind: SyntaxKind) -> bool {
23215        kind == SyntaxKind::DROP
23216    }
23217    #[inline]
23218    fn cast(syntax: SyntaxNode) -> Option<Self> {
23219        if Self::can_cast(syntax.kind()) {
23220            Some(Self { syntax })
23221        } else {
23222            None
23223        }
23224    }
23225    #[inline]
23226    fn syntax(&self) -> &SyntaxNode {
23227        &self.syntax
23228    }
23229}
23230impl AstNode for DropAccessMethod {
23231    #[inline]
23232    fn can_cast(kind: SyntaxKind) -> bool {
23233        kind == SyntaxKind::DROP_ACCESS_METHOD
23234    }
23235    #[inline]
23236    fn cast(syntax: SyntaxNode) -> Option<Self> {
23237        if Self::can_cast(syntax.kind()) {
23238            Some(Self { syntax })
23239        } else {
23240            None
23241        }
23242    }
23243    #[inline]
23244    fn syntax(&self) -> &SyntaxNode {
23245        &self.syntax
23246    }
23247}
23248impl AstNode for DropAggregate {
23249    #[inline]
23250    fn can_cast(kind: SyntaxKind) -> bool {
23251        kind == SyntaxKind::DROP_AGGREGATE
23252    }
23253    #[inline]
23254    fn cast(syntax: SyntaxNode) -> Option<Self> {
23255        if Self::can_cast(syntax.kind()) {
23256            Some(Self { syntax })
23257        } else {
23258            None
23259        }
23260    }
23261    #[inline]
23262    fn syntax(&self) -> &SyntaxNode {
23263        &self.syntax
23264    }
23265}
23266impl AstNode for DropAttribute {
23267    #[inline]
23268    fn can_cast(kind: SyntaxKind) -> bool {
23269        kind == SyntaxKind::DROP_ATTRIBUTE
23270    }
23271    #[inline]
23272    fn cast(syntax: SyntaxNode) -> Option<Self> {
23273        if Self::can_cast(syntax.kind()) {
23274            Some(Self { syntax })
23275        } else {
23276            None
23277        }
23278    }
23279    #[inline]
23280    fn syntax(&self) -> &SyntaxNode {
23281        &self.syntax
23282    }
23283}
23284impl AstNode for DropCast {
23285    #[inline]
23286    fn can_cast(kind: SyntaxKind) -> bool {
23287        kind == SyntaxKind::DROP_CAST
23288    }
23289    #[inline]
23290    fn cast(syntax: SyntaxNode) -> Option<Self> {
23291        if Self::can_cast(syntax.kind()) {
23292            Some(Self { syntax })
23293        } else {
23294            None
23295        }
23296    }
23297    #[inline]
23298    fn syntax(&self) -> &SyntaxNode {
23299        &self.syntax
23300    }
23301}
23302impl AstNode for DropCollation {
23303    #[inline]
23304    fn can_cast(kind: SyntaxKind) -> bool {
23305        kind == SyntaxKind::DROP_COLLATION
23306    }
23307    #[inline]
23308    fn cast(syntax: SyntaxNode) -> Option<Self> {
23309        if Self::can_cast(syntax.kind()) {
23310            Some(Self { syntax })
23311        } else {
23312            None
23313        }
23314    }
23315    #[inline]
23316    fn syntax(&self) -> &SyntaxNode {
23317        &self.syntax
23318    }
23319}
23320impl AstNode for DropColumn {
23321    #[inline]
23322    fn can_cast(kind: SyntaxKind) -> bool {
23323        kind == SyntaxKind::DROP_COLUMN
23324    }
23325    #[inline]
23326    fn cast(syntax: SyntaxNode) -> Option<Self> {
23327        if Self::can_cast(syntax.kind()) {
23328            Some(Self { syntax })
23329        } else {
23330            None
23331        }
23332    }
23333    #[inline]
23334    fn syntax(&self) -> &SyntaxNode {
23335        &self.syntax
23336    }
23337}
23338impl AstNode for DropConstraint {
23339    #[inline]
23340    fn can_cast(kind: SyntaxKind) -> bool {
23341        kind == SyntaxKind::DROP_CONSTRAINT
23342    }
23343    #[inline]
23344    fn cast(syntax: SyntaxNode) -> Option<Self> {
23345        if Self::can_cast(syntax.kind()) {
23346            Some(Self { syntax })
23347        } else {
23348            None
23349        }
23350    }
23351    #[inline]
23352    fn syntax(&self) -> &SyntaxNode {
23353        &self.syntax
23354    }
23355}
23356impl AstNode for DropConversion {
23357    #[inline]
23358    fn can_cast(kind: SyntaxKind) -> bool {
23359        kind == SyntaxKind::DROP_CONVERSION
23360    }
23361    #[inline]
23362    fn cast(syntax: SyntaxNode) -> Option<Self> {
23363        if Self::can_cast(syntax.kind()) {
23364            Some(Self { syntax })
23365        } else {
23366            None
23367        }
23368    }
23369    #[inline]
23370    fn syntax(&self) -> &SyntaxNode {
23371        &self.syntax
23372    }
23373}
23374impl AstNode for DropDatabase {
23375    #[inline]
23376    fn can_cast(kind: SyntaxKind) -> bool {
23377        kind == SyntaxKind::DROP_DATABASE
23378    }
23379    #[inline]
23380    fn cast(syntax: SyntaxNode) -> Option<Self> {
23381        if Self::can_cast(syntax.kind()) {
23382            Some(Self { syntax })
23383        } else {
23384            None
23385        }
23386    }
23387    #[inline]
23388    fn syntax(&self) -> &SyntaxNode {
23389        &self.syntax
23390    }
23391}
23392impl AstNode for DropDefault {
23393    #[inline]
23394    fn can_cast(kind: SyntaxKind) -> bool {
23395        kind == SyntaxKind::DROP_DEFAULT
23396    }
23397    #[inline]
23398    fn cast(syntax: SyntaxNode) -> Option<Self> {
23399        if Self::can_cast(syntax.kind()) {
23400            Some(Self { syntax })
23401        } else {
23402            None
23403        }
23404    }
23405    #[inline]
23406    fn syntax(&self) -> &SyntaxNode {
23407        &self.syntax
23408    }
23409}
23410impl AstNode for DropDomain {
23411    #[inline]
23412    fn can_cast(kind: SyntaxKind) -> bool {
23413        kind == SyntaxKind::DROP_DOMAIN
23414    }
23415    #[inline]
23416    fn cast(syntax: SyntaxNode) -> Option<Self> {
23417        if Self::can_cast(syntax.kind()) {
23418            Some(Self { syntax })
23419        } else {
23420            None
23421        }
23422    }
23423    #[inline]
23424    fn syntax(&self) -> &SyntaxNode {
23425        &self.syntax
23426    }
23427}
23428impl AstNode for DropEdgeTables {
23429    #[inline]
23430    fn can_cast(kind: SyntaxKind) -> bool {
23431        kind == SyntaxKind::DROP_EDGE_TABLES
23432    }
23433    #[inline]
23434    fn cast(syntax: SyntaxNode) -> Option<Self> {
23435        if Self::can_cast(syntax.kind()) {
23436            Some(Self { syntax })
23437        } else {
23438            None
23439        }
23440    }
23441    #[inline]
23442    fn syntax(&self) -> &SyntaxNode {
23443        &self.syntax
23444    }
23445}
23446impl AstNode for DropEventTrigger {
23447    #[inline]
23448    fn can_cast(kind: SyntaxKind) -> bool {
23449        kind == SyntaxKind::DROP_EVENT_TRIGGER
23450    }
23451    #[inline]
23452    fn cast(syntax: SyntaxNode) -> Option<Self> {
23453        if Self::can_cast(syntax.kind()) {
23454            Some(Self { syntax })
23455        } else {
23456            None
23457        }
23458    }
23459    #[inline]
23460    fn syntax(&self) -> &SyntaxNode {
23461        &self.syntax
23462    }
23463}
23464impl AstNode for DropExpression {
23465    #[inline]
23466    fn can_cast(kind: SyntaxKind) -> bool {
23467        kind == SyntaxKind::DROP_EXPRESSION
23468    }
23469    #[inline]
23470    fn cast(syntax: SyntaxNode) -> Option<Self> {
23471        if Self::can_cast(syntax.kind()) {
23472            Some(Self { syntax })
23473        } else {
23474            None
23475        }
23476    }
23477    #[inline]
23478    fn syntax(&self) -> &SyntaxNode {
23479        &self.syntax
23480    }
23481}
23482impl AstNode for DropExtension {
23483    #[inline]
23484    fn can_cast(kind: SyntaxKind) -> bool {
23485        kind == SyntaxKind::DROP_EXTENSION
23486    }
23487    #[inline]
23488    fn cast(syntax: SyntaxNode) -> Option<Self> {
23489        if Self::can_cast(syntax.kind()) {
23490            Some(Self { syntax })
23491        } else {
23492            None
23493        }
23494    }
23495    #[inline]
23496    fn syntax(&self) -> &SyntaxNode {
23497        &self.syntax
23498    }
23499}
23500impl AstNode for DropForeignDataWrapper {
23501    #[inline]
23502    fn can_cast(kind: SyntaxKind) -> bool {
23503        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
23504    }
23505    #[inline]
23506    fn cast(syntax: SyntaxNode) -> Option<Self> {
23507        if Self::can_cast(syntax.kind()) {
23508            Some(Self { syntax })
23509        } else {
23510            None
23511        }
23512    }
23513    #[inline]
23514    fn syntax(&self) -> &SyntaxNode {
23515        &self.syntax
23516    }
23517}
23518impl AstNode for DropForeignTable {
23519    #[inline]
23520    fn can_cast(kind: SyntaxKind) -> bool {
23521        kind == SyntaxKind::DROP_FOREIGN_TABLE
23522    }
23523    #[inline]
23524    fn cast(syntax: SyntaxNode) -> Option<Self> {
23525        if Self::can_cast(syntax.kind()) {
23526            Some(Self { syntax })
23527        } else {
23528            None
23529        }
23530    }
23531    #[inline]
23532    fn syntax(&self) -> &SyntaxNode {
23533        &self.syntax
23534    }
23535}
23536impl AstNode for DropFunction {
23537    #[inline]
23538    fn can_cast(kind: SyntaxKind) -> bool {
23539        kind == SyntaxKind::DROP_FUNCTION
23540    }
23541    #[inline]
23542    fn cast(syntax: SyntaxNode) -> Option<Self> {
23543        if Self::can_cast(syntax.kind()) {
23544            Some(Self { syntax })
23545        } else {
23546            None
23547        }
23548    }
23549    #[inline]
23550    fn syntax(&self) -> &SyntaxNode {
23551        &self.syntax
23552    }
23553}
23554impl AstNode for DropGroup {
23555    #[inline]
23556    fn can_cast(kind: SyntaxKind) -> bool {
23557        kind == SyntaxKind::DROP_GROUP
23558    }
23559    #[inline]
23560    fn cast(syntax: SyntaxNode) -> Option<Self> {
23561        if Self::can_cast(syntax.kind()) {
23562            Some(Self { syntax })
23563        } else {
23564            None
23565        }
23566    }
23567    #[inline]
23568    fn syntax(&self) -> &SyntaxNode {
23569        &self.syntax
23570    }
23571}
23572impl AstNode for DropIdentity {
23573    #[inline]
23574    fn can_cast(kind: SyntaxKind) -> bool {
23575        kind == SyntaxKind::DROP_IDENTITY
23576    }
23577    #[inline]
23578    fn cast(syntax: SyntaxNode) -> Option<Self> {
23579        if Self::can_cast(syntax.kind()) {
23580            Some(Self { syntax })
23581        } else {
23582            None
23583        }
23584    }
23585    #[inline]
23586    fn syntax(&self) -> &SyntaxNode {
23587        &self.syntax
23588    }
23589}
23590impl AstNode for DropIndex {
23591    #[inline]
23592    fn can_cast(kind: SyntaxKind) -> bool {
23593        kind == SyntaxKind::DROP_INDEX
23594    }
23595    #[inline]
23596    fn cast(syntax: SyntaxNode) -> Option<Self> {
23597        if Self::can_cast(syntax.kind()) {
23598            Some(Self { syntax })
23599        } else {
23600            None
23601        }
23602    }
23603    #[inline]
23604    fn syntax(&self) -> &SyntaxNode {
23605        &self.syntax
23606    }
23607}
23608impl AstNode for DropLanguage {
23609    #[inline]
23610    fn can_cast(kind: SyntaxKind) -> bool {
23611        kind == SyntaxKind::DROP_LANGUAGE
23612    }
23613    #[inline]
23614    fn cast(syntax: SyntaxNode) -> Option<Self> {
23615        if Self::can_cast(syntax.kind()) {
23616            Some(Self { syntax })
23617        } else {
23618            None
23619        }
23620    }
23621    #[inline]
23622    fn syntax(&self) -> &SyntaxNode {
23623        &self.syntax
23624    }
23625}
23626impl AstNode for DropMaterializedView {
23627    #[inline]
23628    fn can_cast(kind: SyntaxKind) -> bool {
23629        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
23630    }
23631    #[inline]
23632    fn cast(syntax: SyntaxNode) -> Option<Self> {
23633        if Self::can_cast(syntax.kind()) {
23634            Some(Self { syntax })
23635        } else {
23636            None
23637        }
23638    }
23639    #[inline]
23640    fn syntax(&self) -> &SyntaxNode {
23641        &self.syntax
23642    }
23643}
23644impl AstNode for DropNotNull {
23645    #[inline]
23646    fn can_cast(kind: SyntaxKind) -> bool {
23647        kind == SyntaxKind::DROP_NOT_NULL
23648    }
23649    #[inline]
23650    fn cast(syntax: SyntaxNode) -> Option<Self> {
23651        if Self::can_cast(syntax.kind()) {
23652            Some(Self { syntax })
23653        } else {
23654            None
23655        }
23656    }
23657    #[inline]
23658    fn syntax(&self) -> &SyntaxNode {
23659        &self.syntax
23660    }
23661}
23662impl AstNode for DropOpClassOption {
23663    #[inline]
23664    fn can_cast(kind: SyntaxKind) -> bool {
23665        kind == SyntaxKind::DROP_OP_CLASS_OPTION
23666    }
23667    #[inline]
23668    fn cast(syntax: SyntaxNode) -> Option<Self> {
23669        if Self::can_cast(syntax.kind()) {
23670            Some(Self { syntax })
23671        } else {
23672            None
23673        }
23674    }
23675    #[inline]
23676    fn syntax(&self) -> &SyntaxNode {
23677        &self.syntax
23678    }
23679}
23680impl AstNode for DropOpClassOptionList {
23681    #[inline]
23682    fn can_cast(kind: SyntaxKind) -> bool {
23683        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
23684    }
23685    #[inline]
23686    fn cast(syntax: SyntaxNode) -> Option<Self> {
23687        if Self::can_cast(syntax.kind()) {
23688            Some(Self { syntax })
23689        } else {
23690            None
23691        }
23692    }
23693    #[inline]
23694    fn syntax(&self) -> &SyntaxNode {
23695        &self.syntax
23696    }
23697}
23698impl AstNode for DropOpClassOptions {
23699    #[inline]
23700    fn can_cast(kind: SyntaxKind) -> bool {
23701        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
23702    }
23703    #[inline]
23704    fn cast(syntax: SyntaxNode) -> Option<Self> {
23705        if Self::can_cast(syntax.kind()) {
23706            Some(Self { syntax })
23707        } else {
23708            None
23709        }
23710    }
23711    #[inline]
23712    fn syntax(&self) -> &SyntaxNode {
23713        &self.syntax
23714    }
23715}
23716impl AstNode for DropOperator {
23717    #[inline]
23718    fn can_cast(kind: SyntaxKind) -> bool {
23719        kind == SyntaxKind::DROP_OPERATOR
23720    }
23721    #[inline]
23722    fn cast(syntax: SyntaxNode) -> Option<Self> {
23723        if Self::can_cast(syntax.kind()) {
23724            Some(Self { syntax })
23725        } else {
23726            None
23727        }
23728    }
23729    #[inline]
23730    fn syntax(&self) -> &SyntaxNode {
23731        &self.syntax
23732    }
23733}
23734impl AstNode for DropOperatorClass {
23735    #[inline]
23736    fn can_cast(kind: SyntaxKind) -> bool {
23737        kind == SyntaxKind::DROP_OPERATOR_CLASS
23738    }
23739    #[inline]
23740    fn cast(syntax: SyntaxNode) -> Option<Self> {
23741        if Self::can_cast(syntax.kind()) {
23742            Some(Self { syntax })
23743        } else {
23744            None
23745        }
23746    }
23747    #[inline]
23748    fn syntax(&self) -> &SyntaxNode {
23749        &self.syntax
23750    }
23751}
23752impl AstNode for DropOperatorFamily {
23753    #[inline]
23754    fn can_cast(kind: SyntaxKind) -> bool {
23755        kind == SyntaxKind::DROP_OPERATOR_FAMILY
23756    }
23757    #[inline]
23758    fn cast(syntax: SyntaxNode) -> Option<Self> {
23759        if Self::can_cast(syntax.kind()) {
23760            Some(Self { syntax })
23761        } else {
23762            None
23763        }
23764    }
23765    #[inline]
23766    fn syntax(&self) -> &SyntaxNode {
23767        &self.syntax
23768    }
23769}
23770impl AstNode for DropOwned {
23771    #[inline]
23772    fn can_cast(kind: SyntaxKind) -> bool {
23773        kind == SyntaxKind::DROP_OWNED
23774    }
23775    #[inline]
23776    fn cast(syntax: SyntaxNode) -> Option<Self> {
23777        if Self::can_cast(syntax.kind()) {
23778            Some(Self { syntax })
23779        } else {
23780            None
23781        }
23782    }
23783    #[inline]
23784    fn syntax(&self) -> &SyntaxNode {
23785        &self.syntax
23786    }
23787}
23788impl AstNode for DropPolicy {
23789    #[inline]
23790    fn can_cast(kind: SyntaxKind) -> bool {
23791        kind == SyntaxKind::DROP_POLICY
23792    }
23793    #[inline]
23794    fn cast(syntax: SyntaxNode) -> Option<Self> {
23795        if Self::can_cast(syntax.kind()) {
23796            Some(Self { syntax })
23797        } else {
23798            None
23799        }
23800    }
23801    #[inline]
23802    fn syntax(&self) -> &SyntaxNode {
23803        &self.syntax
23804    }
23805}
23806impl AstNode for DropProcedure {
23807    #[inline]
23808    fn can_cast(kind: SyntaxKind) -> bool {
23809        kind == SyntaxKind::DROP_PROCEDURE
23810    }
23811    #[inline]
23812    fn cast(syntax: SyntaxNode) -> Option<Self> {
23813        if Self::can_cast(syntax.kind()) {
23814            Some(Self { syntax })
23815        } else {
23816            None
23817        }
23818    }
23819    #[inline]
23820    fn syntax(&self) -> &SyntaxNode {
23821        &self.syntax
23822    }
23823}
23824impl AstNode for DropPropertyGraph {
23825    #[inline]
23826    fn can_cast(kind: SyntaxKind) -> bool {
23827        kind == SyntaxKind::DROP_PROPERTY_GRAPH
23828    }
23829    #[inline]
23830    fn cast(syntax: SyntaxNode) -> Option<Self> {
23831        if Self::can_cast(syntax.kind()) {
23832            Some(Self { syntax })
23833        } else {
23834            None
23835        }
23836    }
23837    #[inline]
23838    fn syntax(&self) -> &SyntaxNode {
23839        &self.syntax
23840    }
23841}
23842impl AstNode for DropPublication {
23843    #[inline]
23844    fn can_cast(kind: SyntaxKind) -> bool {
23845        kind == SyntaxKind::DROP_PUBLICATION
23846    }
23847    #[inline]
23848    fn cast(syntax: SyntaxNode) -> Option<Self> {
23849        if Self::can_cast(syntax.kind()) {
23850            Some(Self { syntax })
23851        } else {
23852            None
23853        }
23854    }
23855    #[inline]
23856    fn syntax(&self) -> &SyntaxNode {
23857        &self.syntax
23858    }
23859}
23860impl AstNode for DropRole {
23861    #[inline]
23862    fn can_cast(kind: SyntaxKind) -> bool {
23863        kind == SyntaxKind::DROP_ROLE
23864    }
23865    #[inline]
23866    fn cast(syntax: SyntaxNode) -> Option<Self> {
23867        if Self::can_cast(syntax.kind()) {
23868            Some(Self { syntax })
23869        } else {
23870            None
23871        }
23872    }
23873    #[inline]
23874    fn syntax(&self) -> &SyntaxNode {
23875        &self.syntax
23876    }
23877}
23878impl AstNode for DropRoutine {
23879    #[inline]
23880    fn can_cast(kind: SyntaxKind) -> bool {
23881        kind == SyntaxKind::DROP_ROUTINE
23882    }
23883    #[inline]
23884    fn cast(syntax: SyntaxNode) -> Option<Self> {
23885        if Self::can_cast(syntax.kind()) {
23886            Some(Self { syntax })
23887        } else {
23888            None
23889        }
23890    }
23891    #[inline]
23892    fn syntax(&self) -> &SyntaxNode {
23893        &self.syntax
23894    }
23895}
23896impl AstNode for DropRule {
23897    #[inline]
23898    fn can_cast(kind: SyntaxKind) -> bool {
23899        kind == SyntaxKind::DROP_RULE
23900    }
23901    #[inline]
23902    fn cast(syntax: SyntaxNode) -> Option<Self> {
23903        if Self::can_cast(syntax.kind()) {
23904            Some(Self { syntax })
23905        } else {
23906            None
23907        }
23908    }
23909    #[inline]
23910    fn syntax(&self) -> &SyntaxNode {
23911        &self.syntax
23912    }
23913}
23914impl AstNode for DropSchema {
23915    #[inline]
23916    fn can_cast(kind: SyntaxKind) -> bool {
23917        kind == SyntaxKind::DROP_SCHEMA
23918    }
23919    #[inline]
23920    fn cast(syntax: SyntaxNode) -> Option<Self> {
23921        if Self::can_cast(syntax.kind()) {
23922            Some(Self { syntax })
23923        } else {
23924            None
23925        }
23926    }
23927    #[inline]
23928    fn syntax(&self) -> &SyntaxNode {
23929        &self.syntax
23930    }
23931}
23932impl AstNode for DropSequence {
23933    #[inline]
23934    fn can_cast(kind: SyntaxKind) -> bool {
23935        kind == SyntaxKind::DROP_SEQUENCE
23936    }
23937    #[inline]
23938    fn cast(syntax: SyntaxNode) -> Option<Self> {
23939        if Self::can_cast(syntax.kind()) {
23940            Some(Self { syntax })
23941        } else {
23942            None
23943        }
23944    }
23945    #[inline]
23946    fn syntax(&self) -> &SyntaxNode {
23947        &self.syntax
23948    }
23949}
23950impl AstNode for DropServer {
23951    #[inline]
23952    fn can_cast(kind: SyntaxKind) -> bool {
23953        kind == SyntaxKind::DROP_SERVER
23954    }
23955    #[inline]
23956    fn cast(syntax: SyntaxNode) -> Option<Self> {
23957        if Self::can_cast(syntax.kind()) {
23958            Some(Self { syntax })
23959        } else {
23960            None
23961        }
23962    }
23963    #[inline]
23964    fn syntax(&self) -> &SyntaxNode {
23965        &self.syntax
23966    }
23967}
23968impl AstNode for DropStatistics {
23969    #[inline]
23970    fn can_cast(kind: SyntaxKind) -> bool {
23971        kind == SyntaxKind::DROP_STATISTICS
23972    }
23973    #[inline]
23974    fn cast(syntax: SyntaxNode) -> Option<Self> {
23975        if Self::can_cast(syntax.kind()) {
23976            Some(Self { syntax })
23977        } else {
23978            None
23979        }
23980    }
23981    #[inline]
23982    fn syntax(&self) -> &SyntaxNode {
23983        &self.syntax
23984    }
23985}
23986impl AstNode for DropSubscription {
23987    #[inline]
23988    fn can_cast(kind: SyntaxKind) -> bool {
23989        kind == SyntaxKind::DROP_SUBSCRIPTION
23990    }
23991    #[inline]
23992    fn cast(syntax: SyntaxNode) -> Option<Self> {
23993        if Self::can_cast(syntax.kind()) {
23994            Some(Self { syntax })
23995        } else {
23996            None
23997        }
23998    }
23999    #[inline]
24000    fn syntax(&self) -> &SyntaxNode {
24001        &self.syntax
24002    }
24003}
24004impl AstNode for DropTable {
24005    #[inline]
24006    fn can_cast(kind: SyntaxKind) -> bool {
24007        kind == SyntaxKind::DROP_TABLE
24008    }
24009    #[inline]
24010    fn cast(syntax: SyntaxNode) -> Option<Self> {
24011        if Self::can_cast(syntax.kind()) {
24012            Some(Self { syntax })
24013        } else {
24014            None
24015        }
24016    }
24017    #[inline]
24018    fn syntax(&self) -> &SyntaxNode {
24019        &self.syntax
24020    }
24021}
24022impl AstNode for DropTablespace {
24023    #[inline]
24024    fn can_cast(kind: SyntaxKind) -> bool {
24025        kind == SyntaxKind::DROP_TABLESPACE
24026    }
24027    #[inline]
24028    fn cast(syntax: SyntaxNode) -> Option<Self> {
24029        if Self::can_cast(syntax.kind()) {
24030            Some(Self { syntax })
24031        } else {
24032            None
24033        }
24034    }
24035    #[inline]
24036    fn syntax(&self) -> &SyntaxNode {
24037        &self.syntax
24038    }
24039}
24040impl AstNode for DropTextSearchConfig {
24041    #[inline]
24042    fn can_cast(kind: SyntaxKind) -> bool {
24043        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
24044    }
24045    #[inline]
24046    fn cast(syntax: SyntaxNode) -> Option<Self> {
24047        if Self::can_cast(syntax.kind()) {
24048            Some(Self { syntax })
24049        } else {
24050            None
24051        }
24052    }
24053    #[inline]
24054    fn syntax(&self) -> &SyntaxNode {
24055        &self.syntax
24056    }
24057}
24058impl AstNode for DropTextSearchDict {
24059    #[inline]
24060    fn can_cast(kind: SyntaxKind) -> bool {
24061        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
24062    }
24063    #[inline]
24064    fn cast(syntax: SyntaxNode) -> Option<Self> {
24065        if Self::can_cast(syntax.kind()) {
24066            Some(Self { syntax })
24067        } else {
24068            None
24069        }
24070    }
24071    #[inline]
24072    fn syntax(&self) -> &SyntaxNode {
24073        &self.syntax
24074    }
24075}
24076impl AstNode for DropTextSearchParser {
24077    #[inline]
24078    fn can_cast(kind: SyntaxKind) -> bool {
24079        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
24080    }
24081    #[inline]
24082    fn cast(syntax: SyntaxNode) -> Option<Self> {
24083        if Self::can_cast(syntax.kind()) {
24084            Some(Self { syntax })
24085        } else {
24086            None
24087        }
24088    }
24089    #[inline]
24090    fn syntax(&self) -> &SyntaxNode {
24091        &self.syntax
24092    }
24093}
24094impl AstNode for DropTextSearchTemplate {
24095    #[inline]
24096    fn can_cast(kind: SyntaxKind) -> bool {
24097        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
24098    }
24099    #[inline]
24100    fn cast(syntax: SyntaxNode) -> Option<Self> {
24101        if Self::can_cast(syntax.kind()) {
24102            Some(Self { syntax })
24103        } else {
24104            None
24105        }
24106    }
24107    #[inline]
24108    fn syntax(&self) -> &SyntaxNode {
24109        &self.syntax
24110    }
24111}
24112impl AstNode for DropTransform {
24113    #[inline]
24114    fn can_cast(kind: SyntaxKind) -> bool {
24115        kind == SyntaxKind::DROP_TRANSFORM
24116    }
24117    #[inline]
24118    fn cast(syntax: SyntaxNode) -> Option<Self> {
24119        if Self::can_cast(syntax.kind()) {
24120            Some(Self { syntax })
24121        } else {
24122            None
24123        }
24124    }
24125    #[inline]
24126    fn syntax(&self) -> &SyntaxNode {
24127        &self.syntax
24128    }
24129}
24130impl AstNode for DropTrigger {
24131    #[inline]
24132    fn can_cast(kind: SyntaxKind) -> bool {
24133        kind == SyntaxKind::DROP_TRIGGER
24134    }
24135    #[inline]
24136    fn cast(syntax: SyntaxNode) -> Option<Self> {
24137        if Self::can_cast(syntax.kind()) {
24138            Some(Self { syntax })
24139        } else {
24140            None
24141        }
24142    }
24143    #[inline]
24144    fn syntax(&self) -> &SyntaxNode {
24145        &self.syntax
24146    }
24147}
24148impl AstNode for DropType {
24149    #[inline]
24150    fn can_cast(kind: SyntaxKind) -> bool {
24151        kind == SyntaxKind::DROP_TYPE
24152    }
24153    #[inline]
24154    fn cast(syntax: SyntaxNode) -> Option<Self> {
24155        if Self::can_cast(syntax.kind()) {
24156            Some(Self { syntax })
24157        } else {
24158            None
24159        }
24160    }
24161    #[inline]
24162    fn syntax(&self) -> &SyntaxNode {
24163        &self.syntax
24164    }
24165}
24166impl AstNode for DropUser {
24167    #[inline]
24168    fn can_cast(kind: SyntaxKind) -> bool {
24169        kind == SyntaxKind::DROP_USER
24170    }
24171    #[inline]
24172    fn cast(syntax: SyntaxNode) -> Option<Self> {
24173        if Self::can_cast(syntax.kind()) {
24174            Some(Self { syntax })
24175        } else {
24176            None
24177        }
24178    }
24179    #[inline]
24180    fn syntax(&self) -> &SyntaxNode {
24181        &self.syntax
24182    }
24183}
24184impl AstNode for DropUserMapping {
24185    #[inline]
24186    fn can_cast(kind: SyntaxKind) -> bool {
24187        kind == SyntaxKind::DROP_USER_MAPPING
24188    }
24189    #[inline]
24190    fn cast(syntax: SyntaxNode) -> Option<Self> {
24191        if Self::can_cast(syntax.kind()) {
24192            Some(Self { syntax })
24193        } else {
24194            None
24195        }
24196    }
24197    #[inline]
24198    fn syntax(&self) -> &SyntaxNode {
24199        &self.syntax
24200    }
24201}
24202impl AstNode for DropVertexEdgeLabel {
24203    #[inline]
24204    fn can_cast(kind: SyntaxKind) -> bool {
24205        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
24206    }
24207    #[inline]
24208    fn cast(syntax: SyntaxNode) -> Option<Self> {
24209        if Self::can_cast(syntax.kind()) {
24210            Some(Self { syntax })
24211        } else {
24212            None
24213        }
24214    }
24215    #[inline]
24216    fn syntax(&self) -> &SyntaxNode {
24217        &self.syntax
24218    }
24219}
24220impl AstNode for DropVertexEdgeLabelProperties {
24221    #[inline]
24222    fn can_cast(kind: SyntaxKind) -> bool {
24223        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
24224    }
24225    #[inline]
24226    fn cast(syntax: SyntaxNode) -> Option<Self> {
24227        if Self::can_cast(syntax.kind()) {
24228            Some(Self { syntax })
24229        } else {
24230            None
24231        }
24232    }
24233    #[inline]
24234    fn syntax(&self) -> &SyntaxNode {
24235        &self.syntax
24236    }
24237}
24238impl AstNode for DropVertexTables {
24239    #[inline]
24240    fn can_cast(kind: SyntaxKind) -> bool {
24241        kind == SyntaxKind::DROP_VERTEX_TABLES
24242    }
24243    #[inline]
24244    fn cast(syntax: SyntaxNode) -> Option<Self> {
24245        if Self::can_cast(syntax.kind()) {
24246            Some(Self { syntax })
24247        } else {
24248            None
24249        }
24250    }
24251    #[inline]
24252    fn syntax(&self) -> &SyntaxNode {
24253        &self.syntax
24254    }
24255}
24256impl AstNode for DropView {
24257    #[inline]
24258    fn can_cast(kind: SyntaxKind) -> bool {
24259        kind == SyntaxKind::DROP_VIEW
24260    }
24261    #[inline]
24262    fn cast(syntax: SyntaxNode) -> Option<Self> {
24263        if Self::can_cast(syntax.kind()) {
24264            Some(Self { syntax })
24265        } else {
24266            None
24267        }
24268    }
24269    #[inline]
24270    fn syntax(&self) -> &SyntaxNode {
24271        &self.syntax
24272    }
24273}
24274impl AstNode for EdgeAny {
24275    #[inline]
24276    fn can_cast(kind: SyntaxKind) -> bool {
24277        kind == SyntaxKind::EDGE_ANY
24278    }
24279    #[inline]
24280    fn cast(syntax: SyntaxNode) -> Option<Self> {
24281        if Self::can_cast(syntax.kind()) {
24282            Some(Self { syntax })
24283        } else {
24284            None
24285        }
24286    }
24287    #[inline]
24288    fn syntax(&self) -> &SyntaxNode {
24289        &self.syntax
24290    }
24291}
24292impl AstNode for EdgeLeft {
24293    #[inline]
24294    fn can_cast(kind: SyntaxKind) -> bool {
24295        kind == SyntaxKind::EDGE_LEFT
24296    }
24297    #[inline]
24298    fn cast(syntax: SyntaxNode) -> Option<Self> {
24299        if Self::can_cast(syntax.kind()) {
24300            Some(Self { syntax })
24301        } else {
24302            None
24303        }
24304    }
24305    #[inline]
24306    fn syntax(&self) -> &SyntaxNode {
24307        &self.syntax
24308    }
24309}
24310impl AstNode for EdgeRight {
24311    #[inline]
24312    fn can_cast(kind: SyntaxKind) -> bool {
24313        kind == SyntaxKind::EDGE_RIGHT
24314    }
24315    #[inline]
24316    fn cast(syntax: SyntaxNode) -> Option<Self> {
24317        if Self::can_cast(syntax.kind()) {
24318            Some(Self { syntax })
24319        } else {
24320            None
24321        }
24322    }
24323    #[inline]
24324    fn syntax(&self) -> &SyntaxNode {
24325        &self.syntax
24326    }
24327}
24328impl AstNode for EdgeTableDef {
24329    #[inline]
24330    fn can_cast(kind: SyntaxKind) -> bool {
24331        kind == SyntaxKind::EDGE_TABLE_DEF
24332    }
24333    #[inline]
24334    fn cast(syntax: SyntaxNode) -> Option<Self> {
24335        if Self::can_cast(syntax.kind()) {
24336            Some(Self { syntax })
24337        } else {
24338            None
24339        }
24340    }
24341    #[inline]
24342    fn syntax(&self) -> &SyntaxNode {
24343        &self.syntax
24344    }
24345}
24346impl AstNode for EdgeTables {
24347    #[inline]
24348    fn can_cast(kind: SyntaxKind) -> bool {
24349        kind == SyntaxKind::EDGE_TABLES
24350    }
24351    #[inline]
24352    fn cast(syntax: SyntaxNode) -> Option<Self> {
24353        if Self::can_cast(syntax.kind()) {
24354            Some(Self { syntax })
24355        } else {
24356            None
24357        }
24358    }
24359    #[inline]
24360    fn syntax(&self) -> &SyntaxNode {
24361        &self.syntax
24362    }
24363}
24364impl AstNode for ElseClause {
24365    #[inline]
24366    fn can_cast(kind: SyntaxKind) -> bool {
24367        kind == SyntaxKind::ELSE_CLAUSE
24368    }
24369    #[inline]
24370    fn cast(syntax: SyntaxNode) -> Option<Self> {
24371        if Self::can_cast(syntax.kind()) {
24372            Some(Self { syntax })
24373        } else {
24374            None
24375        }
24376    }
24377    #[inline]
24378    fn syntax(&self) -> &SyntaxNode {
24379        &self.syntax
24380    }
24381}
24382impl AstNode for EmptyStmt {
24383    #[inline]
24384    fn can_cast(kind: SyntaxKind) -> bool {
24385        kind == SyntaxKind::EMPTY_STMT
24386    }
24387    #[inline]
24388    fn cast(syntax: SyntaxNode) -> Option<Self> {
24389        if Self::can_cast(syntax.kind()) {
24390            Some(Self { syntax })
24391        } else {
24392            None
24393        }
24394    }
24395    #[inline]
24396    fn syntax(&self) -> &SyntaxNode {
24397        &self.syntax
24398    }
24399}
24400impl AstNode for EnableAlwaysRule {
24401    #[inline]
24402    fn can_cast(kind: SyntaxKind) -> bool {
24403        kind == SyntaxKind::ENABLE_ALWAYS_RULE
24404    }
24405    #[inline]
24406    fn cast(syntax: SyntaxNode) -> Option<Self> {
24407        if Self::can_cast(syntax.kind()) {
24408            Some(Self { syntax })
24409        } else {
24410            None
24411        }
24412    }
24413    #[inline]
24414    fn syntax(&self) -> &SyntaxNode {
24415        &self.syntax
24416    }
24417}
24418impl AstNode for EnableAlwaysTrigger {
24419    #[inline]
24420    fn can_cast(kind: SyntaxKind) -> bool {
24421        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
24422    }
24423    #[inline]
24424    fn cast(syntax: SyntaxNode) -> Option<Self> {
24425        if Self::can_cast(syntax.kind()) {
24426            Some(Self { syntax })
24427        } else {
24428            None
24429        }
24430    }
24431    #[inline]
24432    fn syntax(&self) -> &SyntaxNode {
24433        &self.syntax
24434    }
24435}
24436impl AstNode for EnableReplicaRule {
24437    #[inline]
24438    fn can_cast(kind: SyntaxKind) -> bool {
24439        kind == SyntaxKind::ENABLE_REPLICA_RULE
24440    }
24441    #[inline]
24442    fn cast(syntax: SyntaxNode) -> Option<Self> {
24443        if Self::can_cast(syntax.kind()) {
24444            Some(Self { syntax })
24445        } else {
24446            None
24447        }
24448    }
24449    #[inline]
24450    fn syntax(&self) -> &SyntaxNode {
24451        &self.syntax
24452    }
24453}
24454impl AstNode for EnableReplicaTrigger {
24455    #[inline]
24456    fn can_cast(kind: SyntaxKind) -> bool {
24457        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
24458    }
24459    #[inline]
24460    fn cast(syntax: SyntaxNode) -> Option<Self> {
24461        if Self::can_cast(syntax.kind()) {
24462            Some(Self { syntax })
24463        } else {
24464            None
24465        }
24466    }
24467    #[inline]
24468    fn syntax(&self) -> &SyntaxNode {
24469        &self.syntax
24470    }
24471}
24472impl AstNode for EnableRls {
24473    #[inline]
24474    fn can_cast(kind: SyntaxKind) -> bool {
24475        kind == SyntaxKind::ENABLE_RLS
24476    }
24477    #[inline]
24478    fn cast(syntax: SyntaxNode) -> Option<Self> {
24479        if Self::can_cast(syntax.kind()) {
24480            Some(Self { syntax })
24481        } else {
24482            None
24483        }
24484    }
24485    #[inline]
24486    fn syntax(&self) -> &SyntaxNode {
24487        &self.syntax
24488    }
24489}
24490impl AstNode for EnableRule {
24491    #[inline]
24492    fn can_cast(kind: SyntaxKind) -> bool {
24493        kind == SyntaxKind::ENABLE_RULE
24494    }
24495    #[inline]
24496    fn cast(syntax: SyntaxNode) -> Option<Self> {
24497        if Self::can_cast(syntax.kind()) {
24498            Some(Self { syntax })
24499        } else {
24500            None
24501        }
24502    }
24503    #[inline]
24504    fn syntax(&self) -> &SyntaxNode {
24505        &self.syntax
24506    }
24507}
24508impl AstNode for EnableTrigger {
24509    #[inline]
24510    fn can_cast(kind: SyntaxKind) -> bool {
24511        kind == SyntaxKind::ENABLE_TRIGGER
24512    }
24513    #[inline]
24514    fn cast(syntax: SyntaxNode) -> Option<Self> {
24515        if Self::can_cast(syntax.kind()) {
24516            Some(Self { syntax })
24517        } else {
24518            None
24519        }
24520    }
24521    #[inline]
24522    fn syntax(&self) -> &SyntaxNode {
24523        &self.syntax
24524    }
24525}
24526impl AstNode for Enforced {
24527    #[inline]
24528    fn can_cast(kind: SyntaxKind) -> bool {
24529        kind == SyntaxKind::ENFORCED
24530    }
24531    #[inline]
24532    fn cast(syntax: SyntaxNode) -> Option<Self> {
24533        if Self::can_cast(syntax.kind()) {
24534            Some(Self { syntax })
24535        } else {
24536            None
24537        }
24538    }
24539    #[inline]
24540    fn syntax(&self) -> &SyntaxNode {
24541        &self.syntax
24542    }
24543}
24544impl AstNode for EventTriggerWhen {
24545    #[inline]
24546    fn can_cast(kind: SyntaxKind) -> bool {
24547        kind == SyntaxKind::EVENT_TRIGGER_WHEN
24548    }
24549    #[inline]
24550    fn cast(syntax: SyntaxNode) -> Option<Self> {
24551        if Self::can_cast(syntax.kind()) {
24552            Some(Self { syntax })
24553        } else {
24554            None
24555        }
24556    }
24557    #[inline]
24558    fn syntax(&self) -> &SyntaxNode {
24559        &self.syntax
24560    }
24561}
24562impl AstNode for EventTriggerWhenClause {
24563    #[inline]
24564    fn can_cast(kind: SyntaxKind) -> bool {
24565        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
24566    }
24567    #[inline]
24568    fn cast(syntax: SyntaxNode) -> Option<Self> {
24569        if Self::can_cast(syntax.kind()) {
24570            Some(Self { syntax })
24571        } else {
24572            None
24573        }
24574    }
24575    #[inline]
24576    fn syntax(&self) -> &SyntaxNode {
24577        &self.syntax
24578    }
24579}
24580impl AstNode for ExceptTableClause {
24581    #[inline]
24582    fn can_cast(kind: SyntaxKind) -> bool {
24583        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
24584    }
24585    #[inline]
24586    fn cast(syntax: SyntaxNode) -> Option<Self> {
24587        if Self::can_cast(syntax.kind()) {
24588            Some(Self { syntax })
24589        } else {
24590            None
24591        }
24592    }
24593    #[inline]
24594    fn syntax(&self) -> &SyntaxNode {
24595        &self.syntax
24596    }
24597}
24598impl AstNode for ExceptTables {
24599    #[inline]
24600    fn can_cast(kind: SyntaxKind) -> bool {
24601        kind == SyntaxKind::EXCEPT_TABLES
24602    }
24603    #[inline]
24604    fn cast(syntax: SyntaxNode) -> Option<Self> {
24605        if Self::can_cast(syntax.kind()) {
24606            Some(Self { syntax })
24607        } else {
24608            None
24609        }
24610    }
24611    #[inline]
24612    fn syntax(&self) -> &SyntaxNode {
24613        &self.syntax
24614    }
24615}
24616impl AstNode for ExcludeConstraint {
24617    #[inline]
24618    fn can_cast(kind: SyntaxKind) -> bool {
24619        kind == SyntaxKind::EXCLUDE_CONSTRAINT
24620    }
24621    #[inline]
24622    fn cast(syntax: SyntaxNode) -> Option<Self> {
24623        if Self::can_cast(syntax.kind()) {
24624            Some(Self { syntax })
24625        } else {
24626            None
24627        }
24628    }
24629    #[inline]
24630    fn syntax(&self) -> &SyntaxNode {
24631        &self.syntax
24632    }
24633}
24634impl AstNode for Execute {
24635    #[inline]
24636    fn can_cast(kind: SyntaxKind) -> bool {
24637        kind == SyntaxKind::EXECUTE
24638    }
24639    #[inline]
24640    fn cast(syntax: SyntaxNode) -> Option<Self> {
24641        if Self::can_cast(syntax.kind()) {
24642            Some(Self { syntax })
24643        } else {
24644            None
24645        }
24646    }
24647    #[inline]
24648    fn syntax(&self) -> &SyntaxNode {
24649        &self.syntax
24650    }
24651}
24652impl AstNode for ExistsFn {
24653    #[inline]
24654    fn can_cast(kind: SyntaxKind) -> bool {
24655        kind == SyntaxKind::EXISTS_FN
24656    }
24657    #[inline]
24658    fn cast(syntax: SyntaxNode) -> Option<Self> {
24659        if Self::can_cast(syntax.kind()) {
24660            Some(Self { syntax })
24661        } else {
24662            None
24663        }
24664    }
24665    #[inline]
24666    fn syntax(&self) -> &SyntaxNode {
24667        &self.syntax
24668    }
24669}
24670impl AstNode for Explain {
24671    #[inline]
24672    fn can_cast(kind: SyntaxKind) -> bool {
24673        kind == SyntaxKind::EXPLAIN
24674    }
24675    #[inline]
24676    fn cast(syntax: SyntaxNode) -> Option<Self> {
24677        if Self::can_cast(syntax.kind()) {
24678            Some(Self { syntax })
24679        } else {
24680            None
24681        }
24682    }
24683    #[inline]
24684    fn syntax(&self) -> &SyntaxNode {
24685        &self.syntax
24686    }
24687}
24688impl AstNode for ExprAsName {
24689    #[inline]
24690    fn can_cast(kind: SyntaxKind) -> bool {
24691        kind == SyntaxKind::EXPR_AS_NAME
24692    }
24693    #[inline]
24694    fn cast(syntax: SyntaxNode) -> Option<Self> {
24695        if Self::can_cast(syntax.kind()) {
24696            Some(Self { syntax })
24697        } else {
24698            None
24699        }
24700    }
24701    #[inline]
24702    fn syntax(&self) -> &SyntaxNode {
24703        &self.syntax
24704    }
24705}
24706impl AstNode for ExprAsNameList {
24707    #[inline]
24708    fn can_cast(kind: SyntaxKind) -> bool {
24709        kind == SyntaxKind::EXPR_AS_NAME_LIST
24710    }
24711    #[inline]
24712    fn cast(syntax: SyntaxNode) -> Option<Self> {
24713        if Self::can_cast(syntax.kind()) {
24714            Some(Self { syntax })
24715        } else {
24716            None
24717        }
24718    }
24719    #[inline]
24720    fn syntax(&self) -> &SyntaxNode {
24721        &self.syntax
24722    }
24723}
24724impl AstNode for ExprType {
24725    #[inline]
24726    fn can_cast(kind: SyntaxKind) -> bool {
24727        kind == SyntaxKind::EXPR_TYPE
24728    }
24729    #[inline]
24730    fn cast(syntax: SyntaxNode) -> Option<Self> {
24731        if Self::can_cast(syntax.kind()) {
24732            Some(Self { syntax })
24733        } else {
24734            None
24735        }
24736    }
24737    #[inline]
24738    fn syntax(&self) -> &SyntaxNode {
24739        &self.syntax
24740    }
24741}
24742impl AstNode for ExtractFn {
24743    #[inline]
24744    fn can_cast(kind: SyntaxKind) -> bool {
24745        kind == SyntaxKind::EXTRACT_FN
24746    }
24747    #[inline]
24748    fn cast(syntax: SyntaxNode) -> Option<Self> {
24749        if Self::can_cast(syntax.kind()) {
24750            Some(Self { syntax })
24751        } else {
24752            None
24753        }
24754    }
24755    #[inline]
24756    fn syntax(&self) -> &SyntaxNode {
24757        &self.syntax
24758    }
24759}
24760impl AstNode for FatArrow {
24761    #[inline]
24762    fn can_cast(kind: SyntaxKind) -> bool {
24763        kind == SyntaxKind::FAT_ARROW
24764    }
24765    #[inline]
24766    fn cast(syntax: SyntaxNode) -> Option<Self> {
24767        if Self::can_cast(syntax.kind()) {
24768            Some(Self { syntax })
24769        } else {
24770            None
24771        }
24772    }
24773    #[inline]
24774    fn syntax(&self) -> &SyntaxNode {
24775        &self.syntax
24776    }
24777}
24778impl AstNode for FdwOption {
24779    #[inline]
24780    fn can_cast(kind: SyntaxKind) -> bool {
24781        kind == SyntaxKind::FDW_OPTION
24782    }
24783    #[inline]
24784    fn cast(syntax: SyntaxNode) -> Option<Self> {
24785        if Self::can_cast(syntax.kind()) {
24786            Some(Self { syntax })
24787        } else {
24788            None
24789        }
24790    }
24791    #[inline]
24792    fn syntax(&self) -> &SyntaxNode {
24793        &self.syntax
24794    }
24795}
24796impl AstNode for FdwOptionList {
24797    #[inline]
24798    fn can_cast(kind: SyntaxKind) -> bool {
24799        kind == SyntaxKind::FDW_OPTION_LIST
24800    }
24801    #[inline]
24802    fn cast(syntax: SyntaxNode) -> Option<Self> {
24803        if Self::can_cast(syntax.kind()) {
24804            Some(Self { syntax })
24805        } else {
24806            None
24807        }
24808    }
24809    #[inline]
24810    fn syntax(&self) -> &SyntaxNode {
24811        &self.syntax
24812    }
24813}
24814impl AstNode for Fetch {
24815    #[inline]
24816    fn can_cast(kind: SyntaxKind) -> bool {
24817        kind == SyntaxKind::FETCH
24818    }
24819    #[inline]
24820    fn cast(syntax: SyntaxNode) -> Option<Self> {
24821        if Self::can_cast(syntax.kind()) {
24822            Some(Self { syntax })
24823        } else {
24824            None
24825        }
24826    }
24827    #[inline]
24828    fn syntax(&self) -> &SyntaxNode {
24829        &self.syntax
24830    }
24831}
24832impl AstNode for FetchClause {
24833    #[inline]
24834    fn can_cast(kind: SyntaxKind) -> bool {
24835        kind == SyntaxKind::FETCH_CLAUSE
24836    }
24837    #[inline]
24838    fn cast(syntax: SyntaxNode) -> Option<Self> {
24839        if Self::can_cast(syntax.kind()) {
24840            Some(Self { syntax })
24841        } else {
24842            None
24843        }
24844    }
24845    #[inline]
24846    fn syntax(&self) -> &SyntaxNode {
24847        &self.syntax
24848    }
24849}
24850impl AstNode for FieldExpr {
24851    #[inline]
24852    fn can_cast(kind: SyntaxKind) -> bool {
24853        kind == SyntaxKind::FIELD_EXPR
24854    }
24855    #[inline]
24856    fn cast(syntax: SyntaxNode) -> Option<Self> {
24857        if Self::can_cast(syntax.kind()) {
24858            Some(Self { syntax })
24859        } else {
24860            None
24861        }
24862    }
24863    #[inline]
24864    fn syntax(&self) -> &SyntaxNode {
24865        &self.syntax
24866    }
24867}
24868impl AstNode for FilterClause {
24869    #[inline]
24870    fn can_cast(kind: SyntaxKind) -> bool {
24871        kind == SyntaxKind::FILTER_CLAUSE
24872    }
24873    #[inline]
24874    fn cast(syntax: SyntaxNode) -> Option<Self> {
24875        if Self::can_cast(syntax.kind()) {
24876            Some(Self { syntax })
24877        } else {
24878            None
24879        }
24880    }
24881    #[inline]
24882    fn syntax(&self) -> &SyntaxNode {
24883        &self.syntax
24884    }
24885}
24886impl AstNode for ForPortionOf {
24887    #[inline]
24888    fn can_cast(kind: SyntaxKind) -> bool {
24889        kind == SyntaxKind::FOR_PORTION_OF
24890    }
24891    #[inline]
24892    fn cast(syntax: SyntaxNode) -> Option<Self> {
24893        if Self::can_cast(syntax.kind()) {
24894            Some(Self { syntax })
24895        } else {
24896            None
24897        }
24898    }
24899    #[inline]
24900    fn syntax(&self) -> &SyntaxNode {
24901        &self.syntax
24902    }
24903}
24904impl AstNode for ForProvider {
24905    #[inline]
24906    fn can_cast(kind: SyntaxKind) -> bool {
24907        kind == SyntaxKind::FOR_PROVIDER
24908    }
24909    #[inline]
24910    fn cast(syntax: SyntaxNode) -> Option<Self> {
24911        if Self::can_cast(syntax.kind()) {
24912            Some(Self { syntax })
24913        } else {
24914            None
24915        }
24916    }
24917    #[inline]
24918    fn syntax(&self) -> &SyntaxNode {
24919        &self.syntax
24920    }
24921}
24922impl AstNode for ForceRls {
24923    #[inline]
24924    fn can_cast(kind: SyntaxKind) -> bool {
24925        kind == SyntaxKind::FORCE_RLS
24926    }
24927    #[inline]
24928    fn cast(syntax: SyntaxNode) -> Option<Self> {
24929        if Self::can_cast(syntax.kind()) {
24930            Some(Self { syntax })
24931        } else {
24932            None
24933        }
24934    }
24935    #[inline]
24936    fn syntax(&self) -> &SyntaxNode {
24937        &self.syntax
24938    }
24939}
24940impl AstNode for ForeignKeyConstraint {
24941    #[inline]
24942    fn can_cast(kind: SyntaxKind) -> bool {
24943        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24944    }
24945    #[inline]
24946    fn cast(syntax: SyntaxNode) -> Option<Self> {
24947        if Self::can_cast(syntax.kind()) {
24948            Some(Self { syntax })
24949        } else {
24950            None
24951        }
24952    }
24953    #[inline]
24954    fn syntax(&self) -> &SyntaxNode {
24955        &self.syntax
24956    }
24957}
24958impl AstNode for FrameClause {
24959    #[inline]
24960    fn can_cast(kind: SyntaxKind) -> bool {
24961        kind == SyntaxKind::FRAME_CLAUSE
24962    }
24963    #[inline]
24964    fn cast(syntax: SyntaxNode) -> Option<Self> {
24965        if Self::can_cast(syntax.kind()) {
24966            Some(Self { syntax })
24967        } else {
24968            None
24969        }
24970    }
24971    #[inline]
24972    fn syntax(&self) -> &SyntaxNode {
24973        &self.syntax
24974    }
24975}
24976impl AstNode for FromClause {
24977    #[inline]
24978    fn can_cast(kind: SyntaxKind) -> bool {
24979        kind == SyntaxKind::FROM_CLAUSE
24980    }
24981    #[inline]
24982    fn cast(syntax: SyntaxNode) -> Option<Self> {
24983        if Self::can_cast(syntax.kind()) {
24984            Some(Self { syntax })
24985        } else {
24986            None
24987        }
24988    }
24989    #[inline]
24990    fn syntax(&self) -> &SyntaxNode {
24991        &self.syntax
24992    }
24993}
24994impl AstNode for FromItem {
24995    #[inline]
24996    fn can_cast(kind: SyntaxKind) -> bool {
24997        kind == SyntaxKind::FROM_ITEM
24998    }
24999    #[inline]
25000    fn cast(syntax: SyntaxNode) -> Option<Self> {
25001        if Self::can_cast(syntax.kind()) {
25002            Some(Self { syntax })
25003        } else {
25004            None
25005        }
25006    }
25007    #[inline]
25008    fn syntax(&self) -> &SyntaxNode {
25009        &self.syntax
25010    }
25011}
25012impl AstNode for FromTable {
25013    #[inline]
25014    fn can_cast(kind: SyntaxKind) -> bool {
25015        kind == SyntaxKind::FROM_TABLE
25016    }
25017    #[inline]
25018    fn cast(syntax: SyntaxNode) -> Option<Self> {
25019        if Self::can_cast(syntax.kind()) {
25020            Some(Self { syntax })
25021        } else {
25022            None
25023        }
25024    }
25025    #[inline]
25026    fn syntax(&self) -> &SyntaxNode {
25027        &self.syntax
25028    }
25029}
25030impl AstNode for FuncOptionList {
25031    #[inline]
25032    fn can_cast(kind: SyntaxKind) -> bool {
25033        kind == SyntaxKind::FUNC_OPTION_LIST
25034    }
25035    #[inline]
25036    fn cast(syntax: SyntaxNode) -> Option<Self> {
25037        if Self::can_cast(syntax.kind()) {
25038            Some(Self { syntax })
25039        } else {
25040            None
25041        }
25042    }
25043    #[inline]
25044    fn syntax(&self) -> &SyntaxNode {
25045        &self.syntax
25046    }
25047}
25048impl AstNode for FunctionSig {
25049    #[inline]
25050    fn can_cast(kind: SyntaxKind) -> bool {
25051        kind == SyntaxKind::FUNCTION_SIG
25052    }
25053    #[inline]
25054    fn cast(syntax: SyntaxNode) -> Option<Self> {
25055        if Self::can_cast(syntax.kind()) {
25056            Some(Self { syntax })
25057        } else {
25058            None
25059        }
25060    }
25061    #[inline]
25062    fn syntax(&self) -> &SyntaxNode {
25063        &self.syntax
25064    }
25065}
25066impl AstNode for FunctionSigList {
25067    #[inline]
25068    fn can_cast(kind: SyntaxKind) -> bool {
25069        kind == SyntaxKind::FUNCTION_SIG_LIST
25070    }
25071    #[inline]
25072    fn cast(syntax: SyntaxNode) -> Option<Self> {
25073        if Self::can_cast(syntax.kind()) {
25074            Some(Self { syntax })
25075        } else {
25076            None
25077        }
25078    }
25079    #[inline]
25080    fn syntax(&self) -> &SyntaxNode {
25081        &self.syntax
25082    }
25083}
25084impl AstNode for GeneratedConstraint {
25085    #[inline]
25086    fn can_cast(kind: SyntaxKind) -> bool {
25087        kind == SyntaxKind::GENERATED_CONSTRAINT
25088    }
25089    #[inline]
25090    fn cast(syntax: SyntaxNode) -> Option<Self> {
25091        if Self::can_cast(syntax.kind()) {
25092            Some(Self { syntax })
25093        } else {
25094            None
25095        }
25096    }
25097    #[inline]
25098    fn syntax(&self) -> &SyntaxNode {
25099        &self.syntax
25100    }
25101}
25102impl AstNode for Grant {
25103    #[inline]
25104    fn can_cast(kind: SyntaxKind) -> bool {
25105        kind == SyntaxKind::GRANT
25106    }
25107    #[inline]
25108    fn cast(syntax: SyntaxNode) -> Option<Self> {
25109        if Self::can_cast(syntax.kind()) {
25110            Some(Self { syntax })
25111        } else {
25112            None
25113        }
25114    }
25115    #[inline]
25116    fn syntax(&self) -> &SyntaxNode {
25117        &self.syntax
25118    }
25119}
25120impl AstNode for GrantDefaultPrivileges {
25121    #[inline]
25122    fn can_cast(kind: SyntaxKind) -> bool {
25123        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
25124    }
25125    #[inline]
25126    fn cast(syntax: SyntaxNode) -> Option<Self> {
25127        if Self::can_cast(syntax.kind()) {
25128            Some(Self { syntax })
25129        } else {
25130            None
25131        }
25132    }
25133    #[inline]
25134    fn syntax(&self) -> &SyntaxNode {
25135        &self.syntax
25136    }
25137}
25138impl AstNode for GraphPatternQualifier {
25139    #[inline]
25140    fn can_cast(kind: SyntaxKind) -> bool {
25141        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
25142    }
25143    #[inline]
25144    fn cast(syntax: SyntaxNode) -> Option<Self> {
25145        if Self::can_cast(syntax.kind()) {
25146            Some(Self { syntax })
25147        } else {
25148            None
25149        }
25150    }
25151    #[inline]
25152    fn syntax(&self) -> &SyntaxNode {
25153        &self.syntax
25154    }
25155}
25156impl AstNode for GraphTableFn {
25157    #[inline]
25158    fn can_cast(kind: SyntaxKind) -> bool {
25159        kind == SyntaxKind::GRAPH_TABLE_FN
25160    }
25161    #[inline]
25162    fn cast(syntax: SyntaxNode) -> Option<Self> {
25163        if Self::can_cast(syntax.kind()) {
25164            Some(Self { syntax })
25165        } else {
25166            None
25167        }
25168    }
25169    #[inline]
25170    fn syntax(&self) -> &SyntaxNode {
25171        &self.syntax
25172    }
25173}
25174impl AstNode for GroupByClause {
25175    #[inline]
25176    fn can_cast(kind: SyntaxKind) -> bool {
25177        kind == SyntaxKind::GROUP_BY_CLAUSE
25178    }
25179    #[inline]
25180    fn cast(syntax: SyntaxNode) -> Option<Self> {
25181        if Self::can_cast(syntax.kind()) {
25182            Some(Self { syntax })
25183        } else {
25184            None
25185        }
25186    }
25187    #[inline]
25188    fn syntax(&self) -> &SyntaxNode {
25189        &self.syntax
25190    }
25191}
25192impl AstNode for GroupByList {
25193    #[inline]
25194    fn can_cast(kind: SyntaxKind) -> bool {
25195        kind == SyntaxKind::GROUP_BY_LIST
25196    }
25197    #[inline]
25198    fn cast(syntax: SyntaxNode) -> Option<Self> {
25199        if Self::can_cast(syntax.kind()) {
25200            Some(Self { syntax })
25201        } else {
25202            None
25203        }
25204    }
25205    #[inline]
25206    fn syntax(&self) -> &SyntaxNode {
25207        &self.syntax
25208    }
25209}
25210impl AstNode for GroupingCube {
25211    #[inline]
25212    fn can_cast(kind: SyntaxKind) -> bool {
25213        kind == SyntaxKind::GROUPING_CUBE
25214    }
25215    #[inline]
25216    fn cast(syntax: SyntaxNode) -> Option<Self> {
25217        if Self::can_cast(syntax.kind()) {
25218            Some(Self { syntax })
25219        } else {
25220            None
25221        }
25222    }
25223    #[inline]
25224    fn syntax(&self) -> &SyntaxNode {
25225        &self.syntax
25226    }
25227}
25228impl AstNode for GroupingExpr {
25229    #[inline]
25230    fn can_cast(kind: SyntaxKind) -> bool {
25231        kind == SyntaxKind::GROUPING_EXPR
25232    }
25233    #[inline]
25234    fn cast(syntax: SyntaxNode) -> Option<Self> {
25235        if Self::can_cast(syntax.kind()) {
25236            Some(Self { syntax })
25237        } else {
25238            None
25239        }
25240    }
25241    #[inline]
25242    fn syntax(&self) -> &SyntaxNode {
25243        &self.syntax
25244    }
25245}
25246impl AstNode for GroupingRollup {
25247    #[inline]
25248    fn can_cast(kind: SyntaxKind) -> bool {
25249        kind == SyntaxKind::GROUPING_ROLLUP
25250    }
25251    #[inline]
25252    fn cast(syntax: SyntaxNode) -> Option<Self> {
25253        if Self::can_cast(syntax.kind()) {
25254            Some(Self { syntax })
25255        } else {
25256            None
25257        }
25258    }
25259    #[inline]
25260    fn syntax(&self) -> &SyntaxNode {
25261        &self.syntax
25262    }
25263}
25264impl AstNode for GroupingSets {
25265    #[inline]
25266    fn can_cast(kind: SyntaxKind) -> bool {
25267        kind == SyntaxKind::GROUPING_SETS
25268    }
25269    #[inline]
25270    fn cast(syntax: SyntaxNode) -> Option<Self> {
25271        if Self::can_cast(syntax.kind()) {
25272            Some(Self { syntax })
25273        } else {
25274            None
25275        }
25276    }
25277    #[inline]
25278    fn syntax(&self) -> &SyntaxNode {
25279        &self.syntax
25280    }
25281}
25282impl AstNode for Gteq {
25283    #[inline]
25284    fn can_cast(kind: SyntaxKind) -> bool {
25285        kind == SyntaxKind::GTEQ
25286    }
25287    #[inline]
25288    fn cast(syntax: SyntaxNode) -> Option<Self> {
25289        if Self::can_cast(syntax.kind()) {
25290            Some(Self { syntax })
25291        } else {
25292            None
25293        }
25294    }
25295    #[inline]
25296    fn syntax(&self) -> &SyntaxNode {
25297        &self.syntax
25298    }
25299}
25300impl AstNode for HandlerClause {
25301    #[inline]
25302    fn can_cast(kind: SyntaxKind) -> bool {
25303        kind == SyntaxKind::HANDLER_CLAUSE
25304    }
25305    #[inline]
25306    fn cast(syntax: SyntaxNode) -> Option<Self> {
25307        if Self::can_cast(syntax.kind()) {
25308            Some(Self { syntax })
25309        } else {
25310            None
25311        }
25312    }
25313    #[inline]
25314    fn syntax(&self) -> &SyntaxNode {
25315        &self.syntax
25316    }
25317}
25318impl AstNode for HavingClause {
25319    #[inline]
25320    fn can_cast(kind: SyntaxKind) -> bool {
25321        kind == SyntaxKind::HAVING_CLAUSE
25322    }
25323    #[inline]
25324    fn cast(syntax: SyntaxNode) -> Option<Self> {
25325        if Self::can_cast(syntax.kind()) {
25326            Some(Self { syntax })
25327        } else {
25328            None
25329        }
25330    }
25331    #[inline]
25332    fn syntax(&self) -> &SyntaxNode {
25333        &self.syntax
25334    }
25335}
25336impl AstNode for IfExists {
25337    #[inline]
25338    fn can_cast(kind: SyntaxKind) -> bool {
25339        kind == SyntaxKind::IF_EXISTS
25340    }
25341    #[inline]
25342    fn cast(syntax: SyntaxNode) -> Option<Self> {
25343        if Self::can_cast(syntax.kind()) {
25344            Some(Self { syntax })
25345        } else {
25346            None
25347        }
25348    }
25349    #[inline]
25350    fn syntax(&self) -> &SyntaxNode {
25351        &self.syntax
25352    }
25353}
25354impl AstNode for IfNotExists {
25355    #[inline]
25356    fn can_cast(kind: SyntaxKind) -> bool {
25357        kind == SyntaxKind::IF_NOT_EXISTS
25358    }
25359    #[inline]
25360    fn cast(syntax: SyntaxNode) -> Option<Self> {
25361        if Self::can_cast(syntax.kind()) {
25362            Some(Self { syntax })
25363        } else {
25364            None
25365        }
25366    }
25367    #[inline]
25368    fn syntax(&self) -> &SyntaxNode {
25369        &self.syntax
25370    }
25371}
25372impl AstNode for ImportForeignSchema {
25373    #[inline]
25374    fn can_cast(kind: SyntaxKind) -> bool {
25375        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
25376    }
25377    #[inline]
25378    fn cast(syntax: SyntaxNode) -> Option<Self> {
25379        if Self::can_cast(syntax.kind()) {
25380            Some(Self { syntax })
25381        } else {
25382            None
25383        }
25384    }
25385    #[inline]
25386    fn syntax(&self) -> &SyntaxNode {
25387        &self.syntax
25388    }
25389}
25390impl AstNode for IndexExpr {
25391    #[inline]
25392    fn can_cast(kind: SyntaxKind) -> bool {
25393        kind == SyntaxKind::INDEX_EXPR
25394    }
25395    #[inline]
25396    fn cast(syntax: SyntaxNode) -> Option<Self> {
25397        if Self::can_cast(syntax.kind()) {
25398            Some(Self { syntax })
25399        } else {
25400            None
25401        }
25402    }
25403    #[inline]
25404    fn syntax(&self) -> &SyntaxNode {
25405        &self.syntax
25406    }
25407}
25408impl AstNode for Inherit {
25409    #[inline]
25410    fn can_cast(kind: SyntaxKind) -> bool {
25411        kind == SyntaxKind::INHERIT
25412    }
25413    #[inline]
25414    fn cast(syntax: SyntaxNode) -> Option<Self> {
25415        if Self::can_cast(syntax.kind()) {
25416            Some(Self { syntax })
25417        } else {
25418            None
25419        }
25420    }
25421    #[inline]
25422    fn syntax(&self) -> &SyntaxNode {
25423        &self.syntax
25424    }
25425}
25426impl AstNode for InheritTable {
25427    #[inline]
25428    fn can_cast(kind: SyntaxKind) -> bool {
25429        kind == SyntaxKind::INHERIT_TABLE
25430    }
25431    #[inline]
25432    fn cast(syntax: SyntaxNode) -> Option<Self> {
25433        if Self::can_cast(syntax.kind()) {
25434            Some(Self { syntax })
25435        } else {
25436            None
25437        }
25438    }
25439    #[inline]
25440    fn syntax(&self) -> &SyntaxNode {
25441        &self.syntax
25442    }
25443}
25444impl AstNode for Inherits {
25445    #[inline]
25446    fn can_cast(kind: SyntaxKind) -> bool {
25447        kind == SyntaxKind::INHERITS
25448    }
25449    #[inline]
25450    fn cast(syntax: SyntaxNode) -> Option<Self> {
25451        if Self::can_cast(syntax.kind()) {
25452            Some(Self { syntax })
25453        } else {
25454            None
25455        }
25456    }
25457    #[inline]
25458    fn syntax(&self) -> &SyntaxNode {
25459        &self.syntax
25460    }
25461}
25462impl AstNode for InitiallyDeferredConstraintOption {
25463    #[inline]
25464    fn can_cast(kind: SyntaxKind) -> bool {
25465        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
25466    }
25467    #[inline]
25468    fn cast(syntax: SyntaxNode) -> Option<Self> {
25469        if Self::can_cast(syntax.kind()) {
25470            Some(Self { syntax })
25471        } else {
25472            None
25473        }
25474    }
25475    #[inline]
25476    fn syntax(&self) -> &SyntaxNode {
25477        &self.syntax
25478    }
25479}
25480impl AstNode for InitiallyImmediateConstraintOption {
25481    #[inline]
25482    fn can_cast(kind: SyntaxKind) -> bool {
25483        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
25484    }
25485    #[inline]
25486    fn cast(syntax: SyntaxNode) -> Option<Self> {
25487        if Self::can_cast(syntax.kind()) {
25488            Some(Self { syntax })
25489        } else {
25490            None
25491        }
25492    }
25493    #[inline]
25494    fn syntax(&self) -> &SyntaxNode {
25495        &self.syntax
25496    }
25497}
25498impl AstNode for Insert {
25499    #[inline]
25500    fn can_cast(kind: SyntaxKind) -> bool {
25501        kind == SyntaxKind::INSERT
25502    }
25503    #[inline]
25504    fn cast(syntax: SyntaxNode) -> Option<Self> {
25505        if Self::can_cast(syntax.kind()) {
25506            Some(Self { syntax })
25507        } else {
25508            None
25509        }
25510    }
25511    #[inline]
25512    fn syntax(&self) -> &SyntaxNode {
25513        &self.syntax
25514    }
25515}
25516impl AstNode for IntervalType {
25517    #[inline]
25518    fn can_cast(kind: SyntaxKind) -> bool {
25519        kind == SyntaxKind::INTERVAL_TYPE
25520    }
25521    #[inline]
25522    fn cast(syntax: SyntaxNode) -> Option<Self> {
25523        if Self::can_cast(syntax.kind()) {
25524            Some(Self { syntax })
25525        } else {
25526            None
25527        }
25528    }
25529    #[inline]
25530    fn syntax(&self) -> &SyntaxNode {
25531        &self.syntax
25532    }
25533}
25534impl AstNode for IntoClause {
25535    #[inline]
25536    fn can_cast(kind: SyntaxKind) -> bool {
25537        kind == SyntaxKind::INTO_CLAUSE
25538    }
25539    #[inline]
25540    fn cast(syntax: SyntaxNode) -> Option<Self> {
25541        if Self::can_cast(syntax.kind()) {
25542            Some(Self { syntax })
25543        } else {
25544            None
25545        }
25546    }
25547    #[inline]
25548    fn syntax(&self) -> &SyntaxNode {
25549        &self.syntax
25550    }
25551}
25552impl AstNode for IntoSchema {
25553    #[inline]
25554    fn can_cast(kind: SyntaxKind) -> bool {
25555        kind == SyntaxKind::INTO_SCHEMA
25556    }
25557    #[inline]
25558    fn cast(syntax: SyntaxNode) -> Option<Self> {
25559        if Self::can_cast(syntax.kind()) {
25560            Some(Self { syntax })
25561        } else {
25562            None
25563        }
25564    }
25565    #[inline]
25566    fn syntax(&self) -> &SyntaxNode {
25567        &self.syntax
25568    }
25569}
25570impl AstNode for IsDistinctFrom {
25571    #[inline]
25572    fn can_cast(kind: SyntaxKind) -> bool {
25573        kind == SyntaxKind::IS_DISTINCT_FROM
25574    }
25575    #[inline]
25576    fn cast(syntax: SyntaxNode) -> Option<Self> {
25577        if Self::can_cast(syntax.kind()) {
25578            Some(Self { syntax })
25579        } else {
25580            None
25581        }
25582    }
25583    #[inline]
25584    fn syntax(&self) -> &SyntaxNode {
25585        &self.syntax
25586    }
25587}
25588impl AstNode for IsJson {
25589    #[inline]
25590    fn can_cast(kind: SyntaxKind) -> bool {
25591        kind == SyntaxKind::IS_JSON
25592    }
25593    #[inline]
25594    fn cast(syntax: SyntaxNode) -> Option<Self> {
25595        if Self::can_cast(syntax.kind()) {
25596            Some(Self { syntax })
25597        } else {
25598            None
25599        }
25600    }
25601    #[inline]
25602    fn syntax(&self) -> &SyntaxNode {
25603        &self.syntax
25604    }
25605}
25606impl AstNode for IsJsonArray {
25607    #[inline]
25608    fn can_cast(kind: SyntaxKind) -> bool {
25609        kind == SyntaxKind::IS_JSON_ARRAY
25610    }
25611    #[inline]
25612    fn cast(syntax: SyntaxNode) -> Option<Self> {
25613        if Self::can_cast(syntax.kind()) {
25614            Some(Self { syntax })
25615        } else {
25616            None
25617        }
25618    }
25619    #[inline]
25620    fn syntax(&self) -> &SyntaxNode {
25621        &self.syntax
25622    }
25623}
25624impl AstNode for IsJsonObject {
25625    #[inline]
25626    fn can_cast(kind: SyntaxKind) -> bool {
25627        kind == SyntaxKind::IS_JSON_OBJECT
25628    }
25629    #[inline]
25630    fn cast(syntax: SyntaxNode) -> Option<Self> {
25631        if Self::can_cast(syntax.kind()) {
25632            Some(Self { syntax })
25633        } else {
25634            None
25635        }
25636    }
25637    #[inline]
25638    fn syntax(&self) -> &SyntaxNode {
25639        &self.syntax
25640    }
25641}
25642impl AstNode for IsJsonScalar {
25643    #[inline]
25644    fn can_cast(kind: SyntaxKind) -> bool {
25645        kind == SyntaxKind::IS_JSON_SCALAR
25646    }
25647    #[inline]
25648    fn cast(syntax: SyntaxNode) -> Option<Self> {
25649        if Self::can_cast(syntax.kind()) {
25650            Some(Self { syntax })
25651        } else {
25652            None
25653        }
25654    }
25655    #[inline]
25656    fn syntax(&self) -> &SyntaxNode {
25657        &self.syntax
25658    }
25659}
25660impl AstNode for IsJsonValue {
25661    #[inline]
25662    fn can_cast(kind: SyntaxKind) -> bool {
25663        kind == SyntaxKind::IS_JSON_VALUE
25664    }
25665    #[inline]
25666    fn cast(syntax: SyntaxNode) -> Option<Self> {
25667        if Self::can_cast(syntax.kind()) {
25668            Some(Self { syntax })
25669        } else {
25670            None
25671        }
25672    }
25673    #[inline]
25674    fn syntax(&self) -> &SyntaxNode {
25675        &self.syntax
25676    }
25677}
25678impl AstNode for IsLabel {
25679    #[inline]
25680    fn can_cast(kind: SyntaxKind) -> bool {
25681        kind == SyntaxKind::IS_LABEL
25682    }
25683    #[inline]
25684    fn cast(syntax: SyntaxNode) -> Option<Self> {
25685        if Self::can_cast(syntax.kind()) {
25686            Some(Self { syntax })
25687        } else {
25688            None
25689        }
25690    }
25691    #[inline]
25692    fn syntax(&self) -> &SyntaxNode {
25693        &self.syntax
25694    }
25695}
25696impl AstNode for IsNormalized {
25697    #[inline]
25698    fn can_cast(kind: SyntaxKind) -> bool {
25699        kind == SyntaxKind::IS_NORMALIZED
25700    }
25701    #[inline]
25702    fn cast(syntax: SyntaxNode) -> Option<Self> {
25703        if Self::can_cast(syntax.kind()) {
25704            Some(Self { syntax })
25705        } else {
25706            None
25707        }
25708    }
25709    #[inline]
25710    fn syntax(&self) -> &SyntaxNode {
25711        &self.syntax
25712    }
25713}
25714impl AstNode for IsNot {
25715    #[inline]
25716    fn can_cast(kind: SyntaxKind) -> bool {
25717        kind == SyntaxKind::IS_NOT
25718    }
25719    #[inline]
25720    fn cast(syntax: SyntaxNode) -> Option<Self> {
25721        if Self::can_cast(syntax.kind()) {
25722            Some(Self { syntax })
25723        } else {
25724            None
25725        }
25726    }
25727    #[inline]
25728    fn syntax(&self) -> &SyntaxNode {
25729        &self.syntax
25730    }
25731}
25732impl AstNode for IsNotDistinctFrom {
25733    #[inline]
25734    fn can_cast(kind: SyntaxKind) -> bool {
25735        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
25736    }
25737    #[inline]
25738    fn cast(syntax: SyntaxNode) -> Option<Self> {
25739        if Self::can_cast(syntax.kind()) {
25740            Some(Self { syntax })
25741        } else {
25742            None
25743        }
25744    }
25745    #[inline]
25746    fn syntax(&self) -> &SyntaxNode {
25747        &self.syntax
25748    }
25749}
25750impl AstNode for IsNotJson {
25751    #[inline]
25752    fn can_cast(kind: SyntaxKind) -> bool {
25753        kind == SyntaxKind::IS_NOT_JSON
25754    }
25755    #[inline]
25756    fn cast(syntax: SyntaxNode) -> Option<Self> {
25757        if Self::can_cast(syntax.kind()) {
25758            Some(Self { syntax })
25759        } else {
25760            None
25761        }
25762    }
25763    #[inline]
25764    fn syntax(&self) -> &SyntaxNode {
25765        &self.syntax
25766    }
25767}
25768impl AstNode for IsNotJsonArray {
25769    #[inline]
25770    fn can_cast(kind: SyntaxKind) -> bool {
25771        kind == SyntaxKind::IS_NOT_JSON_ARRAY
25772    }
25773    #[inline]
25774    fn cast(syntax: SyntaxNode) -> Option<Self> {
25775        if Self::can_cast(syntax.kind()) {
25776            Some(Self { syntax })
25777        } else {
25778            None
25779        }
25780    }
25781    #[inline]
25782    fn syntax(&self) -> &SyntaxNode {
25783        &self.syntax
25784    }
25785}
25786impl AstNode for IsNotJsonObject {
25787    #[inline]
25788    fn can_cast(kind: SyntaxKind) -> bool {
25789        kind == SyntaxKind::IS_NOT_JSON_OBJECT
25790    }
25791    #[inline]
25792    fn cast(syntax: SyntaxNode) -> Option<Self> {
25793        if Self::can_cast(syntax.kind()) {
25794            Some(Self { syntax })
25795        } else {
25796            None
25797        }
25798    }
25799    #[inline]
25800    fn syntax(&self) -> &SyntaxNode {
25801        &self.syntax
25802    }
25803}
25804impl AstNode for IsNotJsonScalar {
25805    #[inline]
25806    fn can_cast(kind: SyntaxKind) -> bool {
25807        kind == SyntaxKind::IS_NOT_JSON_SCALAR
25808    }
25809    #[inline]
25810    fn cast(syntax: SyntaxNode) -> Option<Self> {
25811        if Self::can_cast(syntax.kind()) {
25812            Some(Self { syntax })
25813        } else {
25814            None
25815        }
25816    }
25817    #[inline]
25818    fn syntax(&self) -> &SyntaxNode {
25819        &self.syntax
25820    }
25821}
25822impl AstNode for IsNotJsonValue {
25823    #[inline]
25824    fn can_cast(kind: SyntaxKind) -> bool {
25825        kind == SyntaxKind::IS_NOT_JSON_VALUE
25826    }
25827    #[inline]
25828    fn cast(syntax: SyntaxNode) -> Option<Self> {
25829        if Self::can_cast(syntax.kind()) {
25830            Some(Self { syntax })
25831        } else {
25832            None
25833        }
25834    }
25835    #[inline]
25836    fn syntax(&self) -> &SyntaxNode {
25837        &self.syntax
25838    }
25839}
25840impl AstNode for IsNotNormalized {
25841    #[inline]
25842    fn can_cast(kind: SyntaxKind) -> bool {
25843        kind == SyntaxKind::IS_NOT_NORMALIZED
25844    }
25845    #[inline]
25846    fn cast(syntax: SyntaxNode) -> Option<Self> {
25847        if Self::can_cast(syntax.kind()) {
25848            Some(Self { syntax })
25849        } else {
25850            None
25851        }
25852    }
25853    #[inline]
25854    fn syntax(&self) -> &SyntaxNode {
25855        &self.syntax
25856    }
25857}
25858impl AstNode for Join {
25859    #[inline]
25860    fn can_cast(kind: SyntaxKind) -> bool {
25861        kind == SyntaxKind::JOIN
25862    }
25863    #[inline]
25864    fn cast(syntax: SyntaxNode) -> Option<Self> {
25865        if Self::can_cast(syntax.kind()) {
25866            Some(Self { syntax })
25867        } else {
25868            None
25869        }
25870    }
25871    #[inline]
25872    fn syntax(&self) -> &SyntaxNode {
25873        &self.syntax
25874    }
25875}
25876impl AstNode for JoinCross {
25877    #[inline]
25878    fn can_cast(kind: SyntaxKind) -> bool {
25879        kind == SyntaxKind::JOIN_CROSS
25880    }
25881    #[inline]
25882    fn cast(syntax: SyntaxNode) -> Option<Self> {
25883        if Self::can_cast(syntax.kind()) {
25884            Some(Self { syntax })
25885        } else {
25886            None
25887        }
25888    }
25889    #[inline]
25890    fn syntax(&self) -> &SyntaxNode {
25891        &self.syntax
25892    }
25893}
25894impl AstNode for JoinExpr {
25895    #[inline]
25896    fn can_cast(kind: SyntaxKind) -> bool {
25897        kind == SyntaxKind::JOIN_EXPR
25898    }
25899    #[inline]
25900    fn cast(syntax: SyntaxNode) -> Option<Self> {
25901        if Self::can_cast(syntax.kind()) {
25902            Some(Self { syntax })
25903        } else {
25904            None
25905        }
25906    }
25907    #[inline]
25908    fn syntax(&self) -> &SyntaxNode {
25909        &self.syntax
25910    }
25911}
25912impl AstNode for JoinFull {
25913    #[inline]
25914    fn can_cast(kind: SyntaxKind) -> bool {
25915        kind == SyntaxKind::JOIN_FULL
25916    }
25917    #[inline]
25918    fn cast(syntax: SyntaxNode) -> Option<Self> {
25919        if Self::can_cast(syntax.kind()) {
25920            Some(Self { syntax })
25921        } else {
25922            None
25923        }
25924    }
25925    #[inline]
25926    fn syntax(&self) -> &SyntaxNode {
25927        &self.syntax
25928    }
25929}
25930impl AstNode for JoinInner {
25931    #[inline]
25932    fn can_cast(kind: SyntaxKind) -> bool {
25933        kind == SyntaxKind::JOIN_INNER
25934    }
25935    #[inline]
25936    fn cast(syntax: SyntaxNode) -> Option<Self> {
25937        if Self::can_cast(syntax.kind()) {
25938            Some(Self { syntax })
25939        } else {
25940            None
25941        }
25942    }
25943    #[inline]
25944    fn syntax(&self) -> &SyntaxNode {
25945        &self.syntax
25946    }
25947}
25948impl AstNode for JoinLeft {
25949    #[inline]
25950    fn can_cast(kind: SyntaxKind) -> bool {
25951        kind == SyntaxKind::JOIN_LEFT
25952    }
25953    #[inline]
25954    fn cast(syntax: SyntaxNode) -> Option<Self> {
25955        if Self::can_cast(syntax.kind()) {
25956            Some(Self { syntax })
25957        } else {
25958            None
25959        }
25960    }
25961    #[inline]
25962    fn syntax(&self) -> &SyntaxNode {
25963        &self.syntax
25964    }
25965}
25966impl AstNode for JoinRight {
25967    #[inline]
25968    fn can_cast(kind: SyntaxKind) -> bool {
25969        kind == SyntaxKind::JOIN_RIGHT
25970    }
25971    #[inline]
25972    fn cast(syntax: SyntaxNode) -> Option<Self> {
25973        if Self::can_cast(syntax.kind()) {
25974            Some(Self { syntax })
25975        } else {
25976            None
25977        }
25978    }
25979    #[inline]
25980    fn syntax(&self) -> &SyntaxNode {
25981        &self.syntax
25982    }
25983}
25984impl AstNode for JoinUsingClause {
25985    #[inline]
25986    fn can_cast(kind: SyntaxKind) -> bool {
25987        kind == SyntaxKind::JOIN_USING_CLAUSE
25988    }
25989    #[inline]
25990    fn cast(syntax: SyntaxNode) -> Option<Self> {
25991        if Self::can_cast(syntax.kind()) {
25992            Some(Self { syntax })
25993        } else {
25994            None
25995        }
25996    }
25997    #[inline]
25998    fn syntax(&self) -> &SyntaxNode {
25999        &self.syntax
26000    }
26001}
26002impl AstNode for JsonArrayAggFn {
26003    #[inline]
26004    fn can_cast(kind: SyntaxKind) -> bool {
26005        kind == SyntaxKind::JSON_ARRAY_AGG_FN
26006    }
26007    #[inline]
26008    fn cast(syntax: SyntaxNode) -> Option<Self> {
26009        if Self::can_cast(syntax.kind()) {
26010            Some(Self { syntax })
26011        } else {
26012            None
26013        }
26014    }
26015    #[inline]
26016    fn syntax(&self) -> &SyntaxNode {
26017        &self.syntax
26018    }
26019}
26020impl AstNode for JsonArrayFn {
26021    #[inline]
26022    fn can_cast(kind: SyntaxKind) -> bool {
26023        kind == SyntaxKind::JSON_ARRAY_FN
26024    }
26025    #[inline]
26026    fn cast(syntax: SyntaxNode) -> Option<Self> {
26027        if Self::can_cast(syntax.kind()) {
26028            Some(Self { syntax })
26029        } else {
26030            None
26031        }
26032    }
26033    #[inline]
26034    fn syntax(&self) -> &SyntaxNode {
26035        &self.syntax
26036    }
26037}
26038impl AstNode for JsonBehaviorClause {
26039    #[inline]
26040    fn can_cast(kind: SyntaxKind) -> bool {
26041        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
26042    }
26043    #[inline]
26044    fn cast(syntax: SyntaxNode) -> Option<Self> {
26045        if Self::can_cast(syntax.kind()) {
26046            Some(Self { syntax })
26047        } else {
26048            None
26049        }
26050    }
26051    #[inline]
26052    fn syntax(&self) -> &SyntaxNode {
26053        &self.syntax
26054    }
26055}
26056impl AstNode for JsonBehaviorDefault {
26057    #[inline]
26058    fn can_cast(kind: SyntaxKind) -> bool {
26059        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
26060    }
26061    #[inline]
26062    fn cast(syntax: SyntaxNode) -> Option<Self> {
26063        if Self::can_cast(syntax.kind()) {
26064            Some(Self { syntax })
26065        } else {
26066            None
26067        }
26068    }
26069    #[inline]
26070    fn syntax(&self) -> &SyntaxNode {
26071        &self.syntax
26072    }
26073}
26074impl AstNode for JsonBehaviorEmptyArray {
26075    #[inline]
26076    fn can_cast(kind: SyntaxKind) -> bool {
26077        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
26078    }
26079    #[inline]
26080    fn cast(syntax: SyntaxNode) -> Option<Self> {
26081        if Self::can_cast(syntax.kind()) {
26082            Some(Self { syntax })
26083        } else {
26084            None
26085        }
26086    }
26087    #[inline]
26088    fn syntax(&self) -> &SyntaxNode {
26089        &self.syntax
26090    }
26091}
26092impl AstNode for JsonBehaviorEmptyObject {
26093    #[inline]
26094    fn can_cast(kind: SyntaxKind) -> bool {
26095        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
26096    }
26097    #[inline]
26098    fn cast(syntax: SyntaxNode) -> Option<Self> {
26099        if Self::can_cast(syntax.kind()) {
26100            Some(Self { syntax })
26101        } else {
26102            None
26103        }
26104    }
26105    #[inline]
26106    fn syntax(&self) -> &SyntaxNode {
26107        &self.syntax
26108    }
26109}
26110impl AstNode for JsonBehaviorError {
26111    #[inline]
26112    fn can_cast(kind: SyntaxKind) -> bool {
26113        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
26114    }
26115    #[inline]
26116    fn cast(syntax: SyntaxNode) -> Option<Self> {
26117        if Self::can_cast(syntax.kind()) {
26118            Some(Self { syntax })
26119        } else {
26120            None
26121        }
26122    }
26123    #[inline]
26124    fn syntax(&self) -> &SyntaxNode {
26125        &self.syntax
26126    }
26127}
26128impl AstNode for JsonBehaviorFalse {
26129    #[inline]
26130    fn can_cast(kind: SyntaxKind) -> bool {
26131        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
26132    }
26133    #[inline]
26134    fn cast(syntax: SyntaxNode) -> Option<Self> {
26135        if Self::can_cast(syntax.kind()) {
26136            Some(Self { syntax })
26137        } else {
26138            None
26139        }
26140    }
26141    #[inline]
26142    fn syntax(&self) -> &SyntaxNode {
26143        &self.syntax
26144    }
26145}
26146impl AstNode for JsonBehaviorNull {
26147    #[inline]
26148    fn can_cast(kind: SyntaxKind) -> bool {
26149        kind == SyntaxKind::JSON_BEHAVIOR_NULL
26150    }
26151    #[inline]
26152    fn cast(syntax: SyntaxNode) -> Option<Self> {
26153        if Self::can_cast(syntax.kind()) {
26154            Some(Self { syntax })
26155        } else {
26156            None
26157        }
26158    }
26159    #[inline]
26160    fn syntax(&self) -> &SyntaxNode {
26161        &self.syntax
26162    }
26163}
26164impl AstNode for JsonBehaviorTrue {
26165    #[inline]
26166    fn can_cast(kind: SyntaxKind) -> bool {
26167        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
26168    }
26169    #[inline]
26170    fn cast(syntax: SyntaxNode) -> Option<Self> {
26171        if Self::can_cast(syntax.kind()) {
26172            Some(Self { syntax })
26173        } else {
26174            None
26175        }
26176    }
26177    #[inline]
26178    fn syntax(&self) -> &SyntaxNode {
26179        &self.syntax
26180    }
26181}
26182impl AstNode for JsonBehaviorUnknown {
26183    #[inline]
26184    fn can_cast(kind: SyntaxKind) -> bool {
26185        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
26186    }
26187    #[inline]
26188    fn cast(syntax: SyntaxNode) -> Option<Self> {
26189        if Self::can_cast(syntax.kind()) {
26190            Some(Self { syntax })
26191        } else {
26192            None
26193        }
26194    }
26195    #[inline]
26196    fn syntax(&self) -> &SyntaxNode {
26197        &self.syntax
26198    }
26199}
26200impl AstNode for JsonEncodingClause {
26201    #[inline]
26202    fn can_cast(kind: SyntaxKind) -> bool {
26203        kind == SyntaxKind::JSON_ENCODING_CLAUSE
26204    }
26205    #[inline]
26206    fn cast(syntax: SyntaxNode) -> Option<Self> {
26207        if Self::can_cast(syntax.kind()) {
26208            Some(Self { syntax })
26209        } else {
26210            None
26211        }
26212    }
26213    #[inline]
26214    fn syntax(&self) -> &SyntaxNode {
26215        &self.syntax
26216    }
26217}
26218impl AstNode for JsonExistsFn {
26219    #[inline]
26220    fn can_cast(kind: SyntaxKind) -> bool {
26221        kind == SyntaxKind::JSON_EXISTS_FN
26222    }
26223    #[inline]
26224    fn cast(syntax: SyntaxNode) -> Option<Self> {
26225        if Self::can_cast(syntax.kind()) {
26226            Some(Self { syntax })
26227        } else {
26228            None
26229        }
26230    }
26231    #[inline]
26232    fn syntax(&self) -> &SyntaxNode {
26233        &self.syntax
26234    }
26235}
26236impl AstNode for JsonExprFormat {
26237    #[inline]
26238    fn can_cast(kind: SyntaxKind) -> bool {
26239        kind == SyntaxKind::JSON_EXPR_FORMAT
26240    }
26241    #[inline]
26242    fn cast(syntax: SyntaxNode) -> Option<Self> {
26243        if Self::can_cast(syntax.kind()) {
26244            Some(Self { syntax })
26245        } else {
26246            None
26247        }
26248    }
26249    #[inline]
26250    fn syntax(&self) -> &SyntaxNode {
26251        &self.syntax
26252    }
26253}
26254impl AstNode for JsonFn {
26255    #[inline]
26256    fn can_cast(kind: SyntaxKind) -> bool {
26257        kind == SyntaxKind::JSON_FN
26258    }
26259    #[inline]
26260    fn cast(syntax: SyntaxNode) -> Option<Self> {
26261        if Self::can_cast(syntax.kind()) {
26262            Some(Self { syntax })
26263        } else {
26264            None
26265        }
26266    }
26267    #[inline]
26268    fn syntax(&self) -> &SyntaxNode {
26269        &self.syntax
26270    }
26271}
26272impl AstNode for JsonFormatClause {
26273    #[inline]
26274    fn can_cast(kind: SyntaxKind) -> bool {
26275        kind == SyntaxKind::JSON_FORMAT_CLAUSE
26276    }
26277    #[inline]
26278    fn cast(syntax: SyntaxNode) -> Option<Self> {
26279        if Self::can_cast(syntax.kind()) {
26280            Some(Self { syntax })
26281        } else {
26282            None
26283        }
26284    }
26285    #[inline]
26286    fn syntax(&self) -> &SyntaxNode {
26287        &self.syntax
26288    }
26289}
26290impl AstNode for JsonKeyValue {
26291    #[inline]
26292    fn can_cast(kind: SyntaxKind) -> bool {
26293        kind == SyntaxKind::JSON_KEY_VALUE
26294    }
26295    #[inline]
26296    fn cast(syntax: SyntaxNode) -> Option<Self> {
26297        if Self::can_cast(syntax.kind()) {
26298            Some(Self { syntax })
26299        } else {
26300            None
26301        }
26302    }
26303    #[inline]
26304    fn syntax(&self) -> &SyntaxNode {
26305        &self.syntax
26306    }
26307}
26308impl AstNode for JsonKeysUniqueClause {
26309    #[inline]
26310    fn can_cast(kind: SyntaxKind) -> bool {
26311        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
26312    }
26313    #[inline]
26314    fn cast(syntax: SyntaxNode) -> Option<Self> {
26315        if Self::can_cast(syntax.kind()) {
26316            Some(Self { syntax })
26317        } else {
26318            None
26319        }
26320    }
26321    #[inline]
26322    fn syntax(&self) -> &SyntaxNode {
26323        &self.syntax
26324    }
26325}
26326impl AstNode for JsonNullClause {
26327    #[inline]
26328    fn can_cast(kind: SyntaxKind) -> bool {
26329        kind == SyntaxKind::JSON_NULL_CLAUSE
26330    }
26331    #[inline]
26332    fn cast(syntax: SyntaxNode) -> Option<Self> {
26333        if Self::can_cast(syntax.kind()) {
26334            Some(Self { syntax })
26335        } else {
26336            None
26337        }
26338    }
26339    #[inline]
26340    fn syntax(&self) -> &SyntaxNode {
26341        &self.syntax
26342    }
26343}
26344impl AstNode for JsonObjectAggFn {
26345    #[inline]
26346    fn can_cast(kind: SyntaxKind) -> bool {
26347        kind == SyntaxKind::JSON_OBJECT_AGG_FN
26348    }
26349    #[inline]
26350    fn cast(syntax: SyntaxNode) -> Option<Self> {
26351        if Self::can_cast(syntax.kind()) {
26352            Some(Self { syntax })
26353        } else {
26354            None
26355        }
26356    }
26357    #[inline]
26358    fn syntax(&self) -> &SyntaxNode {
26359        &self.syntax
26360    }
26361}
26362impl AstNode for JsonObjectFn {
26363    #[inline]
26364    fn can_cast(kind: SyntaxKind) -> bool {
26365        kind == SyntaxKind::JSON_OBJECT_FN
26366    }
26367    #[inline]
26368    fn cast(syntax: SyntaxNode) -> Option<Self> {
26369        if Self::can_cast(syntax.kind()) {
26370            Some(Self { syntax })
26371        } else {
26372            None
26373        }
26374    }
26375    #[inline]
26376    fn syntax(&self) -> &SyntaxNode {
26377        &self.syntax
26378    }
26379}
26380impl AstNode for JsonOnEmptyClause {
26381    #[inline]
26382    fn can_cast(kind: SyntaxKind) -> bool {
26383        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
26384    }
26385    #[inline]
26386    fn cast(syntax: SyntaxNode) -> Option<Self> {
26387        if Self::can_cast(syntax.kind()) {
26388            Some(Self { syntax })
26389        } else {
26390            None
26391        }
26392    }
26393    #[inline]
26394    fn syntax(&self) -> &SyntaxNode {
26395        &self.syntax
26396    }
26397}
26398impl AstNode for JsonOnErrorClause {
26399    #[inline]
26400    fn can_cast(kind: SyntaxKind) -> bool {
26401        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
26402    }
26403    #[inline]
26404    fn cast(syntax: SyntaxNode) -> Option<Self> {
26405        if Self::can_cast(syntax.kind()) {
26406            Some(Self { syntax })
26407        } else {
26408            None
26409        }
26410    }
26411    #[inline]
26412    fn syntax(&self) -> &SyntaxNode {
26413        &self.syntax
26414    }
26415}
26416impl AstNode for JsonPassingArg {
26417    #[inline]
26418    fn can_cast(kind: SyntaxKind) -> bool {
26419        kind == SyntaxKind::JSON_PASSING_ARG
26420    }
26421    #[inline]
26422    fn cast(syntax: SyntaxNode) -> Option<Self> {
26423        if Self::can_cast(syntax.kind()) {
26424            Some(Self { syntax })
26425        } else {
26426            None
26427        }
26428    }
26429    #[inline]
26430    fn syntax(&self) -> &SyntaxNode {
26431        &self.syntax
26432    }
26433}
26434impl AstNode for JsonPassingClause {
26435    #[inline]
26436    fn can_cast(kind: SyntaxKind) -> bool {
26437        kind == SyntaxKind::JSON_PASSING_CLAUSE
26438    }
26439    #[inline]
26440    fn cast(syntax: SyntaxNode) -> Option<Self> {
26441        if Self::can_cast(syntax.kind()) {
26442            Some(Self { syntax })
26443        } else {
26444            None
26445        }
26446    }
26447    #[inline]
26448    fn syntax(&self) -> &SyntaxNode {
26449        &self.syntax
26450    }
26451}
26452impl AstNode for JsonPathClause {
26453    #[inline]
26454    fn can_cast(kind: SyntaxKind) -> bool {
26455        kind == SyntaxKind::JSON_PATH_CLAUSE
26456    }
26457    #[inline]
26458    fn cast(syntax: SyntaxNode) -> Option<Self> {
26459        if Self::can_cast(syntax.kind()) {
26460            Some(Self { syntax })
26461        } else {
26462            None
26463        }
26464    }
26465    #[inline]
26466    fn syntax(&self) -> &SyntaxNode {
26467        &self.syntax
26468    }
26469}
26470impl AstNode for JsonQueryFn {
26471    #[inline]
26472    fn can_cast(kind: SyntaxKind) -> bool {
26473        kind == SyntaxKind::JSON_QUERY_FN
26474    }
26475    #[inline]
26476    fn cast(syntax: SyntaxNode) -> Option<Self> {
26477        if Self::can_cast(syntax.kind()) {
26478            Some(Self { syntax })
26479        } else {
26480            None
26481        }
26482    }
26483    #[inline]
26484    fn syntax(&self) -> &SyntaxNode {
26485        &self.syntax
26486    }
26487}
26488impl AstNode for JsonQuotesClause {
26489    #[inline]
26490    fn can_cast(kind: SyntaxKind) -> bool {
26491        kind == SyntaxKind::JSON_QUOTES_CLAUSE
26492    }
26493    #[inline]
26494    fn cast(syntax: SyntaxNode) -> Option<Self> {
26495        if Self::can_cast(syntax.kind()) {
26496            Some(Self { syntax })
26497        } else {
26498            None
26499        }
26500    }
26501    #[inline]
26502    fn syntax(&self) -> &SyntaxNode {
26503        &self.syntax
26504    }
26505}
26506impl AstNode for JsonReturningClause {
26507    #[inline]
26508    fn can_cast(kind: SyntaxKind) -> bool {
26509        kind == SyntaxKind::JSON_RETURNING_CLAUSE
26510    }
26511    #[inline]
26512    fn cast(syntax: SyntaxNode) -> Option<Self> {
26513        if Self::can_cast(syntax.kind()) {
26514            Some(Self { syntax })
26515        } else {
26516            None
26517        }
26518    }
26519    #[inline]
26520    fn syntax(&self) -> &SyntaxNode {
26521        &self.syntax
26522    }
26523}
26524impl AstNode for JsonScalarFn {
26525    #[inline]
26526    fn can_cast(kind: SyntaxKind) -> bool {
26527        kind == SyntaxKind::JSON_SCALAR_FN
26528    }
26529    #[inline]
26530    fn cast(syntax: SyntaxNode) -> Option<Self> {
26531        if Self::can_cast(syntax.kind()) {
26532            Some(Self { syntax })
26533        } else {
26534            None
26535        }
26536    }
26537    #[inline]
26538    fn syntax(&self) -> &SyntaxNode {
26539        &self.syntax
26540    }
26541}
26542impl AstNode for JsonSelectFormat {
26543    #[inline]
26544    fn can_cast(kind: SyntaxKind) -> bool {
26545        kind == SyntaxKind::JSON_SELECT_FORMAT
26546    }
26547    #[inline]
26548    fn cast(syntax: SyntaxNode) -> Option<Self> {
26549        if Self::can_cast(syntax.kind()) {
26550            Some(Self { syntax })
26551        } else {
26552            None
26553        }
26554    }
26555    #[inline]
26556    fn syntax(&self) -> &SyntaxNode {
26557        &self.syntax
26558    }
26559}
26560impl AstNode for JsonSerializeFn {
26561    #[inline]
26562    fn can_cast(kind: SyntaxKind) -> bool {
26563        kind == SyntaxKind::JSON_SERIALIZE_FN
26564    }
26565    #[inline]
26566    fn cast(syntax: SyntaxNode) -> Option<Self> {
26567        if Self::can_cast(syntax.kind()) {
26568            Some(Self { syntax })
26569        } else {
26570            None
26571        }
26572    }
26573    #[inline]
26574    fn syntax(&self) -> &SyntaxNode {
26575        &self.syntax
26576    }
26577}
26578impl AstNode for JsonTable {
26579    #[inline]
26580    fn can_cast(kind: SyntaxKind) -> bool {
26581        kind == SyntaxKind::JSON_TABLE
26582    }
26583    #[inline]
26584    fn cast(syntax: SyntaxNode) -> Option<Self> {
26585        if Self::can_cast(syntax.kind()) {
26586            Some(Self { syntax })
26587        } else {
26588            None
26589        }
26590    }
26591    #[inline]
26592    fn syntax(&self) -> &SyntaxNode {
26593        &self.syntax
26594    }
26595}
26596impl AstNode for JsonTableColumn {
26597    #[inline]
26598    fn can_cast(kind: SyntaxKind) -> bool {
26599        kind == SyntaxKind::JSON_TABLE_COLUMN
26600    }
26601    #[inline]
26602    fn cast(syntax: SyntaxNode) -> Option<Self> {
26603        if Self::can_cast(syntax.kind()) {
26604            Some(Self { syntax })
26605        } else {
26606            None
26607        }
26608    }
26609    #[inline]
26610    fn syntax(&self) -> &SyntaxNode {
26611        &self.syntax
26612    }
26613}
26614impl AstNode for JsonTableColumnList {
26615    #[inline]
26616    fn can_cast(kind: SyntaxKind) -> bool {
26617        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
26618    }
26619    #[inline]
26620    fn cast(syntax: SyntaxNode) -> Option<Self> {
26621        if Self::can_cast(syntax.kind()) {
26622            Some(Self { syntax })
26623        } else {
26624            None
26625        }
26626    }
26627    #[inline]
26628    fn syntax(&self) -> &SyntaxNode {
26629        &self.syntax
26630    }
26631}
26632impl AstNode for JsonValueExpr {
26633    #[inline]
26634    fn can_cast(kind: SyntaxKind) -> bool {
26635        kind == SyntaxKind::JSON_VALUE_EXPR
26636    }
26637    #[inline]
26638    fn cast(syntax: SyntaxNode) -> Option<Self> {
26639        if Self::can_cast(syntax.kind()) {
26640            Some(Self { syntax })
26641        } else {
26642            None
26643        }
26644    }
26645    #[inline]
26646    fn syntax(&self) -> &SyntaxNode {
26647        &self.syntax
26648    }
26649}
26650impl AstNode for JsonValueFn {
26651    #[inline]
26652    fn can_cast(kind: SyntaxKind) -> bool {
26653        kind == SyntaxKind::JSON_VALUE_FN
26654    }
26655    #[inline]
26656    fn cast(syntax: SyntaxNode) -> Option<Self> {
26657        if Self::can_cast(syntax.kind()) {
26658            Some(Self { syntax })
26659        } else {
26660            None
26661        }
26662    }
26663    #[inline]
26664    fn syntax(&self) -> &SyntaxNode {
26665        &self.syntax
26666    }
26667}
26668impl AstNode for JsonWrapperBehaviorClause {
26669    #[inline]
26670    fn can_cast(kind: SyntaxKind) -> bool {
26671        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
26672    }
26673    #[inline]
26674    fn cast(syntax: SyntaxNode) -> Option<Self> {
26675        if Self::can_cast(syntax.kind()) {
26676            Some(Self { syntax })
26677        } else {
26678            None
26679        }
26680    }
26681    #[inline]
26682    fn syntax(&self) -> &SyntaxNode {
26683        &self.syntax
26684    }
26685}
26686impl AstNode for LabelAndProperties {
26687    #[inline]
26688    fn can_cast(kind: SyntaxKind) -> bool {
26689        kind == SyntaxKind::LABEL_AND_PROPERTIES
26690    }
26691    #[inline]
26692    fn cast(syntax: SyntaxNode) -> Option<Self> {
26693        if Self::can_cast(syntax.kind()) {
26694            Some(Self { syntax })
26695        } else {
26696            None
26697        }
26698    }
26699    #[inline]
26700    fn syntax(&self) -> &SyntaxNode {
26701        &self.syntax
26702    }
26703}
26704impl AstNode for LabelAndPropertiesList {
26705    #[inline]
26706    fn can_cast(kind: SyntaxKind) -> bool {
26707        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
26708    }
26709    #[inline]
26710    fn cast(syntax: SyntaxNode) -> Option<Self> {
26711        if Self::can_cast(syntax.kind()) {
26712            Some(Self { syntax })
26713        } else {
26714            None
26715        }
26716    }
26717    #[inline]
26718    fn syntax(&self) -> &SyntaxNode {
26719        &self.syntax
26720    }
26721}
26722impl AstNode for LanguageFuncOption {
26723    #[inline]
26724    fn can_cast(kind: SyntaxKind) -> bool {
26725        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
26726    }
26727    #[inline]
26728    fn cast(syntax: SyntaxNode) -> Option<Self> {
26729        if Self::can_cast(syntax.kind()) {
26730            Some(Self { syntax })
26731        } else {
26732            None
26733        }
26734    }
26735    #[inline]
26736    fn syntax(&self) -> &SyntaxNode {
26737        &self.syntax
26738    }
26739}
26740impl AstNode for LeakproofFuncOption {
26741    #[inline]
26742    fn can_cast(kind: SyntaxKind) -> bool {
26743        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
26744    }
26745    #[inline]
26746    fn cast(syntax: SyntaxNode) -> Option<Self> {
26747        if Self::can_cast(syntax.kind()) {
26748            Some(Self { syntax })
26749        } else {
26750            None
26751        }
26752    }
26753    #[inline]
26754    fn syntax(&self) -> &SyntaxNode {
26755        &self.syntax
26756    }
26757}
26758impl AstNode for LikeClause {
26759    #[inline]
26760    fn can_cast(kind: SyntaxKind) -> bool {
26761        kind == SyntaxKind::LIKE_CLAUSE
26762    }
26763    #[inline]
26764    fn cast(syntax: SyntaxNode) -> Option<Self> {
26765        if Self::can_cast(syntax.kind()) {
26766            Some(Self { syntax })
26767        } else {
26768            None
26769        }
26770    }
26771    #[inline]
26772    fn syntax(&self) -> &SyntaxNode {
26773        &self.syntax
26774    }
26775}
26776impl AstNode for LikeOption {
26777    #[inline]
26778    fn can_cast(kind: SyntaxKind) -> bool {
26779        kind == SyntaxKind::LIKE_OPTION
26780    }
26781    #[inline]
26782    fn cast(syntax: SyntaxNode) -> Option<Self> {
26783        if Self::can_cast(syntax.kind()) {
26784            Some(Self { syntax })
26785        } else {
26786            None
26787        }
26788    }
26789    #[inline]
26790    fn syntax(&self) -> &SyntaxNode {
26791        &self.syntax
26792    }
26793}
26794impl AstNode for LimitClause {
26795    #[inline]
26796    fn can_cast(kind: SyntaxKind) -> bool {
26797        kind == SyntaxKind::LIMIT_CLAUSE
26798    }
26799    #[inline]
26800    fn cast(syntax: SyntaxNode) -> Option<Self> {
26801        if Self::can_cast(syntax.kind()) {
26802            Some(Self { syntax })
26803        } else {
26804            None
26805        }
26806    }
26807    #[inline]
26808    fn syntax(&self) -> &SyntaxNode {
26809        &self.syntax
26810    }
26811}
26812impl AstNode for LimitToTables {
26813    #[inline]
26814    fn can_cast(kind: SyntaxKind) -> bool {
26815        kind == SyntaxKind::LIMIT_TO_TABLES
26816    }
26817    #[inline]
26818    fn cast(syntax: SyntaxNode) -> Option<Self> {
26819        if Self::can_cast(syntax.kind()) {
26820            Some(Self { syntax })
26821        } else {
26822            None
26823        }
26824    }
26825    #[inline]
26826    fn syntax(&self) -> &SyntaxNode {
26827        &self.syntax
26828    }
26829}
26830impl AstNode for Listen {
26831    #[inline]
26832    fn can_cast(kind: SyntaxKind) -> bool {
26833        kind == SyntaxKind::LISTEN
26834    }
26835    #[inline]
26836    fn cast(syntax: SyntaxNode) -> Option<Self> {
26837        if Self::can_cast(syntax.kind()) {
26838            Some(Self { syntax })
26839        } else {
26840            None
26841        }
26842    }
26843    #[inline]
26844    fn syntax(&self) -> &SyntaxNode {
26845        &self.syntax
26846    }
26847}
26848impl AstNode for Literal {
26849    #[inline]
26850    fn can_cast(kind: SyntaxKind) -> bool {
26851        kind == SyntaxKind::LITERAL
26852    }
26853    #[inline]
26854    fn cast(syntax: SyntaxNode) -> Option<Self> {
26855        if Self::can_cast(syntax.kind()) {
26856            Some(Self { syntax })
26857        } else {
26858            None
26859        }
26860    }
26861    #[inline]
26862    fn syntax(&self) -> &SyntaxNode {
26863        &self.syntax
26864    }
26865}
26866impl AstNode for Load {
26867    #[inline]
26868    fn can_cast(kind: SyntaxKind) -> bool {
26869        kind == SyntaxKind::LOAD
26870    }
26871    #[inline]
26872    fn cast(syntax: SyntaxNode) -> Option<Self> {
26873        if Self::can_cast(syntax.kind()) {
26874            Some(Self { syntax })
26875        } else {
26876            None
26877        }
26878    }
26879    #[inline]
26880    fn syntax(&self) -> &SyntaxNode {
26881        &self.syntax
26882    }
26883}
26884impl AstNode for Lock {
26885    #[inline]
26886    fn can_cast(kind: SyntaxKind) -> bool {
26887        kind == SyntaxKind::LOCK
26888    }
26889    #[inline]
26890    fn cast(syntax: SyntaxNode) -> Option<Self> {
26891        if Self::can_cast(syntax.kind()) {
26892            Some(Self { syntax })
26893        } else {
26894            None
26895        }
26896    }
26897    #[inline]
26898    fn syntax(&self) -> &SyntaxNode {
26899        &self.syntax
26900    }
26901}
26902impl AstNode for LockingClause {
26903    #[inline]
26904    fn can_cast(kind: SyntaxKind) -> bool {
26905        kind == SyntaxKind::LOCKING_CLAUSE
26906    }
26907    #[inline]
26908    fn cast(syntax: SyntaxNode) -> Option<Self> {
26909        if Self::can_cast(syntax.kind()) {
26910            Some(Self { syntax })
26911        } else {
26912            None
26913        }
26914    }
26915    #[inline]
26916    fn syntax(&self) -> &SyntaxNode {
26917        &self.syntax
26918    }
26919}
26920impl AstNode for Lteq {
26921    #[inline]
26922    fn can_cast(kind: SyntaxKind) -> bool {
26923        kind == SyntaxKind::LTEQ
26924    }
26925    #[inline]
26926    fn cast(syntax: SyntaxNode) -> Option<Self> {
26927        if Self::can_cast(syntax.kind()) {
26928            Some(Self { syntax })
26929        } else {
26930            None
26931        }
26932    }
26933    #[inline]
26934    fn syntax(&self) -> &SyntaxNode {
26935        &self.syntax
26936    }
26937}
26938impl AstNode for MatchFull {
26939    #[inline]
26940    fn can_cast(kind: SyntaxKind) -> bool {
26941        kind == SyntaxKind::MATCH_FULL
26942    }
26943    #[inline]
26944    fn cast(syntax: SyntaxNode) -> Option<Self> {
26945        if Self::can_cast(syntax.kind()) {
26946            Some(Self { syntax })
26947        } else {
26948            None
26949        }
26950    }
26951    #[inline]
26952    fn syntax(&self) -> &SyntaxNode {
26953        &self.syntax
26954    }
26955}
26956impl AstNode for MatchPartial {
26957    #[inline]
26958    fn can_cast(kind: SyntaxKind) -> bool {
26959        kind == SyntaxKind::MATCH_PARTIAL
26960    }
26961    #[inline]
26962    fn cast(syntax: SyntaxNode) -> Option<Self> {
26963        if Self::can_cast(syntax.kind()) {
26964            Some(Self { syntax })
26965        } else {
26966            None
26967        }
26968    }
26969    #[inline]
26970    fn syntax(&self) -> &SyntaxNode {
26971        &self.syntax
26972    }
26973}
26974impl AstNode for MatchSimple {
26975    #[inline]
26976    fn can_cast(kind: SyntaxKind) -> bool {
26977        kind == SyntaxKind::MATCH_SIMPLE
26978    }
26979    #[inline]
26980    fn cast(syntax: SyntaxNode) -> Option<Self> {
26981        if Self::can_cast(syntax.kind()) {
26982            Some(Self { syntax })
26983        } else {
26984            None
26985        }
26986    }
26987    #[inline]
26988    fn syntax(&self) -> &SyntaxNode {
26989        &self.syntax
26990    }
26991}
26992impl AstNode for Materialized {
26993    #[inline]
26994    fn can_cast(kind: SyntaxKind) -> bool {
26995        kind == SyntaxKind::MATERIALIZED
26996    }
26997    #[inline]
26998    fn cast(syntax: SyntaxNode) -> Option<Self> {
26999        if Self::can_cast(syntax.kind()) {
27000            Some(Self { syntax })
27001        } else {
27002            None
27003        }
27004    }
27005    #[inline]
27006    fn syntax(&self) -> &SyntaxNode {
27007        &self.syntax
27008    }
27009}
27010impl AstNode for Merge {
27011    #[inline]
27012    fn can_cast(kind: SyntaxKind) -> bool {
27013        kind == SyntaxKind::MERGE
27014    }
27015    #[inline]
27016    fn cast(syntax: SyntaxNode) -> Option<Self> {
27017        if Self::can_cast(syntax.kind()) {
27018            Some(Self { syntax })
27019        } else {
27020            None
27021        }
27022    }
27023    #[inline]
27024    fn syntax(&self) -> &SyntaxNode {
27025        &self.syntax
27026    }
27027}
27028impl AstNode for MergeDelete {
27029    #[inline]
27030    fn can_cast(kind: SyntaxKind) -> bool {
27031        kind == SyntaxKind::MERGE_DELETE
27032    }
27033    #[inline]
27034    fn cast(syntax: SyntaxNode) -> Option<Self> {
27035        if Self::can_cast(syntax.kind()) {
27036            Some(Self { syntax })
27037        } else {
27038            None
27039        }
27040    }
27041    #[inline]
27042    fn syntax(&self) -> &SyntaxNode {
27043        &self.syntax
27044    }
27045}
27046impl AstNode for MergeDoNothing {
27047    #[inline]
27048    fn can_cast(kind: SyntaxKind) -> bool {
27049        kind == SyntaxKind::MERGE_DO_NOTHING
27050    }
27051    #[inline]
27052    fn cast(syntax: SyntaxNode) -> Option<Self> {
27053        if Self::can_cast(syntax.kind()) {
27054            Some(Self { syntax })
27055        } else {
27056            None
27057        }
27058    }
27059    #[inline]
27060    fn syntax(&self) -> &SyntaxNode {
27061        &self.syntax
27062    }
27063}
27064impl AstNode for MergeInsert {
27065    #[inline]
27066    fn can_cast(kind: SyntaxKind) -> bool {
27067        kind == SyntaxKind::MERGE_INSERT
27068    }
27069    #[inline]
27070    fn cast(syntax: SyntaxNode) -> Option<Self> {
27071        if Self::can_cast(syntax.kind()) {
27072            Some(Self { syntax })
27073        } else {
27074            None
27075        }
27076    }
27077    #[inline]
27078    fn syntax(&self) -> &SyntaxNode {
27079        &self.syntax
27080    }
27081}
27082impl AstNode for MergePartitions {
27083    #[inline]
27084    fn can_cast(kind: SyntaxKind) -> bool {
27085        kind == SyntaxKind::MERGE_PARTITIONS
27086    }
27087    #[inline]
27088    fn cast(syntax: SyntaxNode) -> Option<Self> {
27089        if Self::can_cast(syntax.kind()) {
27090            Some(Self { syntax })
27091        } else {
27092            None
27093        }
27094    }
27095    #[inline]
27096    fn syntax(&self) -> &SyntaxNode {
27097        &self.syntax
27098    }
27099}
27100impl AstNode for MergeUpdate {
27101    #[inline]
27102    fn can_cast(kind: SyntaxKind) -> bool {
27103        kind == SyntaxKind::MERGE_UPDATE
27104    }
27105    #[inline]
27106    fn cast(syntax: SyntaxNode) -> Option<Self> {
27107        if Self::can_cast(syntax.kind()) {
27108            Some(Self { syntax })
27109        } else {
27110            None
27111        }
27112    }
27113    #[inline]
27114    fn syntax(&self) -> &SyntaxNode {
27115        &self.syntax
27116    }
27117}
27118impl AstNode for MergeWhenMatched {
27119    #[inline]
27120    fn can_cast(kind: SyntaxKind) -> bool {
27121        kind == SyntaxKind::MERGE_WHEN_MATCHED
27122    }
27123    #[inline]
27124    fn cast(syntax: SyntaxNode) -> Option<Self> {
27125        if Self::can_cast(syntax.kind()) {
27126            Some(Self { syntax })
27127        } else {
27128            None
27129        }
27130    }
27131    #[inline]
27132    fn syntax(&self) -> &SyntaxNode {
27133        &self.syntax
27134    }
27135}
27136impl AstNode for MergeWhenNotMatchedSource {
27137    #[inline]
27138    fn can_cast(kind: SyntaxKind) -> bool {
27139        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
27140    }
27141    #[inline]
27142    fn cast(syntax: SyntaxNode) -> Option<Self> {
27143        if Self::can_cast(syntax.kind()) {
27144            Some(Self { syntax })
27145        } else {
27146            None
27147        }
27148    }
27149    #[inline]
27150    fn syntax(&self) -> &SyntaxNode {
27151        &self.syntax
27152    }
27153}
27154impl AstNode for MergeWhenNotMatchedTarget {
27155    #[inline]
27156    fn can_cast(kind: SyntaxKind) -> bool {
27157        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
27158    }
27159    #[inline]
27160    fn cast(syntax: SyntaxNode) -> Option<Self> {
27161        if Self::can_cast(syntax.kind()) {
27162            Some(Self { syntax })
27163        } else {
27164            None
27165        }
27166    }
27167    #[inline]
27168    fn syntax(&self) -> &SyntaxNode {
27169        &self.syntax
27170    }
27171}
27172impl AstNode for Move {
27173    #[inline]
27174    fn can_cast(kind: SyntaxKind) -> bool {
27175        kind == SyntaxKind::MOVE
27176    }
27177    #[inline]
27178    fn cast(syntax: SyntaxNode) -> Option<Self> {
27179        if Self::can_cast(syntax.kind()) {
27180            Some(Self { syntax })
27181        } else {
27182            None
27183        }
27184    }
27185    #[inline]
27186    fn syntax(&self) -> &SyntaxNode {
27187        &self.syntax
27188    }
27189}
27190impl AstNode for Name {
27191    #[inline]
27192    fn can_cast(kind: SyntaxKind) -> bool {
27193        kind == SyntaxKind::NAME
27194    }
27195    #[inline]
27196    fn cast(syntax: SyntaxNode) -> Option<Self> {
27197        if Self::can_cast(syntax.kind()) {
27198            Some(Self { syntax })
27199        } else {
27200            None
27201        }
27202    }
27203    #[inline]
27204    fn syntax(&self) -> &SyntaxNode {
27205        &self.syntax
27206    }
27207}
27208impl AstNode for NameRef {
27209    #[inline]
27210    fn can_cast(kind: SyntaxKind) -> bool {
27211        kind == SyntaxKind::NAME_REF
27212    }
27213    #[inline]
27214    fn cast(syntax: SyntaxNode) -> Option<Self> {
27215        if Self::can_cast(syntax.kind()) {
27216            Some(Self { syntax })
27217        } else {
27218            None
27219        }
27220    }
27221    #[inline]
27222    fn syntax(&self) -> &SyntaxNode {
27223        &self.syntax
27224    }
27225}
27226impl AstNode for NamedArg {
27227    #[inline]
27228    fn can_cast(kind: SyntaxKind) -> bool {
27229        kind == SyntaxKind::NAMED_ARG
27230    }
27231    #[inline]
27232    fn cast(syntax: SyntaxNode) -> Option<Self> {
27233        if Self::can_cast(syntax.kind()) {
27234            Some(Self { syntax })
27235        } else {
27236            None
27237        }
27238    }
27239    #[inline]
27240    fn syntax(&self) -> &SyntaxNode {
27241        &self.syntax
27242    }
27243}
27244impl AstNode for Neq {
27245    #[inline]
27246    fn can_cast(kind: SyntaxKind) -> bool {
27247        kind == SyntaxKind::NEQ
27248    }
27249    #[inline]
27250    fn cast(syntax: SyntaxNode) -> Option<Self> {
27251        if Self::can_cast(syntax.kind()) {
27252            Some(Self { syntax })
27253        } else {
27254            None
27255        }
27256    }
27257    #[inline]
27258    fn syntax(&self) -> &SyntaxNode {
27259        &self.syntax
27260    }
27261}
27262impl AstNode for Neqb {
27263    #[inline]
27264    fn can_cast(kind: SyntaxKind) -> bool {
27265        kind == SyntaxKind::NEQB
27266    }
27267    #[inline]
27268    fn cast(syntax: SyntaxNode) -> Option<Self> {
27269        if Self::can_cast(syntax.kind()) {
27270            Some(Self { syntax })
27271        } else {
27272            None
27273        }
27274    }
27275    #[inline]
27276    fn syntax(&self) -> &SyntaxNode {
27277        &self.syntax
27278    }
27279}
27280impl AstNode for NoAction {
27281    #[inline]
27282    fn can_cast(kind: SyntaxKind) -> bool {
27283        kind == SyntaxKind::NO_ACTION
27284    }
27285    #[inline]
27286    fn cast(syntax: SyntaxNode) -> Option<Self> {
27287        if Self::can_cast(syntax.kind()) {
27288            Some(Self { syntax })
27289        } else {
27290            None
27291        }
27292    }
27293    #[inline]
27294    fn syntax(&self) -> &SyntaxNode {
27295        &self.syntax
27296    }
27297}
27298impl AstNode for NoDependsOnExtension {
27299    #[inline]
27300    fn can_cast(kind: SyntaxKind) -> bool {
27301        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
27302    }
27303    #[inline]
27304    fn cast(syntax: SyntaxNode) -> Option<Self> {
27305        if Self::can_cast(syntax.kind()) {
27306            Some(Self { syntax })
27307        } else {
27308            None
27309        }
27310    }
27311    #[inline]
27312    fn syntax(&self) -> &SyntaxNode {
27313        &self.syntax
27314    }
27315}
27316impl AstNode for NoForceRls {
27317    #[inline]
27318    fn can_cast(kind: SyntaxKind) -> bool {
27319        kind == SyntaxKind::NO_FORCE_RLS
27320    }
27321    #[inline]
27322    fn cast(syntax: SyntaxNode) -> Option<Self> {
27323        if Self::can_cast(syntax.kind()) {
27324            Some(Self { syntax })
27325        } else {
27326            None
27327        }
27328    }
27329    #[inline]
27330    fn syntax(&self) -> &SyntaxNode {
27331        &self.syntax
27332    }
27333}
27334impl AstNode for NoInherit {
27335    #[inline]
27336    fn can_cast(kind: SyntaxKind) -> bool {
27337        kind == SyntaxKind::NO_INHERIT
27338    }
27339    #[inline]
27340    fn cast(syntax: SyntaxNode) -> Option<Self> {
27341        if Self::can_cast(syntax.kind()) {
27342            Some(Self { syntax })
27343        } else {
27344            None
27345        }
27346    }
27347    #[inline]
27348    fn syntax(&self) -> &SyntaxNode {
27349        &self.syntax
27350    }
27351}
27352impl AstNode for NoInheritTable {
27353    #[inline]
27354    fn can_cast(kind: SyntaxKind) -> bool {
27355        kind == SyntaxKind::NO_INHERIT_TABLE
27356    }
27357    #[inline]
27358    fn cast(syntax: SyntaxNode) -> Option<Self> {
27359        if Self::can_cast(syntax.kind()) {
27360            Some(Self { syntax })
27361        } else {
27362            None
27363        }
27364    }
27365    #[inline]
27366    fn syntax(&self) -> &SyntaxNode {
27367        &self.syntax
27368    }
27369}
27370impl AstNode for NoProperties {
27371    #[inline]
27372    fn can_cast(kind: SyntaxKind) -> bool {
27373        kind == SyntaxKind::NO_PROPERTIES
27374    }
27375    #[inline]
27376    fn cast(syntax: SyntaxNode) -> Option<Self> {
27377        if Self::can_cast(syntax.kind()) {
27378            Some(Self { syntax })
27379        } else {
27380            None
27381        }
27382    }
27383    #[inline]
27384    fn syntax(&self) -> &SyntaxNode {
27385        &self.syntax
27386    }
27387}
27388impl AstNode for NonStandardParam {
27389    #[inline]
27390    fn can_cast(kind: SyntaxKind) -> bool {
27391        kind == SyntaxKind::NON_STANDARD_PARAM
27392    }
27393    #[inline]
27394    fn cast(syntax: SyntaxNode) -> Option<Self> {
27395        if Self::can_cast(syntax.kind()) {
27396            Some(Self { syntax })
27397        } else {
27398            None
27399        }
27400    }
27401    #[inline]
27402    fn syntax(&self) -> &SyntaxNode {
27403        &self.syntax
27404    }
27405}
27406impl AstNode for NotDeferrable {
27407    #[inline]
27408    fn can_cast(kind: SyntaxKind) -> bool {
27409        kind == SyntaxKind::NOT_DEFERRABLE
27410    }
27411    #[inline]
27412    fn cast(syntax: SyntaxNode) -> Option<Self> {
27413        if Self::can_cast(syntax.kind()) {
27414            Some(Self { syntax })
27415        } else {
27416            None
27417        }
27418    }
27419    #[inline]
27420    fn syntax(&self) -> &SyntaxNode {
27421        &self.syntax
27422    }
27423}
27424impl AstNode for NotDeferrableConstraintOption {
27425    #[inline]
27426    fn can_cast(kind: SyntaxKind) -> bool {
27427        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
27428    }
27429    #[inline]
27430    fn cast(syntax: SyntaxNode) -> Option<Self> {
27431        if Self::can_cast(syntax.kind()) {
27432            Some(Self { syntax })
27433        } else {
27434            None
27435        }
27436    }
27437    #[inline]
27438    fn syntax(&self) -> &SyntaxNode {
27439        &self.syntax
27440    }
27441}
27442impl AstNode for NotEnforced {
27443    #[inline]
27444    fn can_cast(kind: SyntaxKind) -> bool {
27445        kind == SyntaxKind::NOT_ENFORCED
27446    }
27447    #[inline]
27448    fn cast(syntax: SyntaxNode) -> Option<Self> {
27449        if Self::can_cast(syntax.kind()) {
27450            Some(Self { syntax })
27451        } else {
27452            None
27453        }
27454    }
27455    #[inline]
27456    fn syntax(&self) -> &SyntaxNode {
27457        &self.syntax
27458    }
27459}
27460impl AstNode for NotIlike {
27461    #[inline]
27462    fn can_cast(kind: SyntaxKind) -> bool {
27463        kind == SyntaxKind::NOT_ILIKE
27464    }
27465    #[inline]
27466    fn cast(syntax: SyntaxNode) -> Option<Self> {
27467        if Self::can_cast(syntax.kind()) {
27468            Some(Self { syntax })
27469        } else {
27470            None
27471        }
27472    }
27473    #[inline]
27474    fn syntax(&self) -> &SyntaxNode {
27475        &self.syntax
27476    }
27477}
27478impl AstNode for NotIn {
27479    #[inline]
27480    fn can_cast(kind: SyntaxKind) -> bool {
27481        kind == SyntaxKind::NOT_IN
27482    }
27483    #[inline]
27484    fn cast(syntax: SyntaxNode) -> Option<Self> {
27485        if Self::can_cast(syntax.kind()) {
27486            Some(Self { syntax })
27487        } else {
27488            None
27489        }
27490    }
27491    #[inline]
27492    fn syntax(&self) -> &SyntaxNode {
27493        &self.syntax
27494    }
27495}
27496impl AstNode for NotLike {
27497    #[inline]
27498    fn can_cast(kind: SyntaxKind) -> bool {
27499        kind == SyntaxKind::NOT_LIKE
27500    }
27501    #[inline]
27502    fn cast(syntax: SyntaxNode) -> Option<Self> {
27503        if Self::can_cast(syntax.kind()) {
27504            Some(Self { syntax })
27505        } else {
27506            None
27507        }
27508    }
27509    #[inline]
27510    fn syntax(&self) -> &SyntaxNode {
27511        &self.syntax
27512    }
27513}
27514impl AstNode for NotMaterialized {
27515    #[inline]
27516    fn can_cast(kind: SyntaxKind) -> bool {
27517        kind == SyntaxKind::NOT_MATERIALIZED
27518    }
27519    #[inline]
27520    fn cast(syntax: SyntaxNode) -> Option<Self> {
27521        if Self::can_cast(syntax.kind()) {
27522            Some(Self { syntax })
27523        } else {
27524            None
27525        }
27526    }
27527    #[inline]
27528    fn syntax(&self) -> &SyntaxNode {
27529        &self.syntax
27530    }
27531}
27532impl AstNode for NotNullConstraint {
27533    #[inline]
27534    fn can_cast(kind: SyntaxKind) -> bool {
27535        kind == SyntaxKind::NOT_NULL_CONSTRAINT
27536    }
27537    #[inline]
27538    fn cast(syntax: SyntaxNode) -> Option<Self> {
27539        if Self::can_cast(syntax.kind()) {
27540            Some(Self { syntax })
27541        } else {
27542            None
27543        }
27544    }
27545    #[inline]
27546    fn syntax(&self) -> &SyntaxNode {
27547        &self.syntax
27548    }
27549}
27550impl AstNode for NotOf {
27551    #[inline]
27552    fn can_cast(kind: SyntaxKind) -> bool {
27553        kind == SyntaxKind::NOT_OF
27554    }
27555    #[inline]
27556    fn cast(syntax: SyntaxNode) -> Option<Self> {
27557        if Self::can_cast(syntax.kind()) {
27558            Some(Self { syntax })
27559        } else {
27560            None
27561        }
27562    }
27563    #[inline]
27564    fn syntax(&self) -> &SyntaxNode {
27565        &self.syntax
27566    }
27567}
27568impl AstNode for NotSimilarTo {
27569    #[inline]
27570    fn can_cast(kind: SyntaxKind) -> bool {
27571        kind == SyntaxKind::NOT_SIMILAR_TO
27572    }
27573    #[inline]
27574    fn cast(syntax: SyntaxNode) -> Option<Self> {
27575        if Self::can_cast(syntax.kind()) {
27576            Some(Self { syntax })
27577        } else {
27578            None
27579        }
27580    }
27581    #[inline]
27582    fn syntax(&self) -> &SyntaxNode {
27583        &self.syntax
27584    }
27585}
27586impl AstNode for NotValid {
27587    #[inline]
27588    fn can_cast(kind: SyntaxKind) -> bool {
27589        kind == SyntaxKind::NOT_VALID
27590    }
27591    #[inline]
27592    fn cast(syntax: SyntaxNode) -> Option<Self> {
27593        if Self::can_cast(syntax.kind()) {
27594            Some(Self { syntax })
27595        } else {
27596            None
27597        }
27598    }
27599    #[inline]
27600    fn syntax(&self) -> &SyntaxNode {
27601        &self.syntax
27602    }
27603}
27604impl AstNode for Nothing {
27605    #[inline]
27606    fn can_cast(kind: SyntaxKind) -> bool {
27607        kind == SyntaxKind::NOTHING
27608    }
27609    #[inline]
27610    fn cast(syntax: SyntaxNode) -> Option<Self> {
27611        if Self::can_cast(syntax.kind()) {
27612            Some(Self { syntax })
27613        } else {
27614            None
27615        }
27616    }
27617    #[inline]
27618    fn syntax(&self) -> &SyntaxNode {
27619        &self.syntax
27620    }
27621}
27622impl AstNode for Notify {
27623    #[inline]
27624    fn can_cast(kind: SyntaxKind) -> bool {
27625        kind == SyntaxKind::NOTIFY
27626    }
27627    #[inline]
27628    fn cast(syntax: SyntaxNode) -> Option<Self> {
27629        if Self::can_cast(syntax.kind()) {
27630            Some(Self { syntax })
27631        } else {
27632            None
27633        }
27634    }
27635    #[inline]
27636    fn syntax(&self) -> &SyntaxNode {
27637        &self.syntax
27638    }
27639}
27640impl AstNode for NullConstraint {
27641    #[inline]
27642    fn can_cast(kind: SyntaxKind) -> bool {
27643        kind == SyntaxKind::NULL_CONSTRAINT
27644    }
27645    #[inline]
27646    fn cast(syntax: SyntaxNode) -> Option<Self> {
27647        if Self::can_cast(syntax.kind()) {
27648            Some(Self { syntax })
27649        } else {
27650            None
27651        }
27652    }
27653    #[inline]
27654    fn syntax(&self) -> &SyntaxNode {
27655        &self.syntax
27656    }
27657}
27658impl AstNode for NullsDistinct {
27659    #[inline]
27660    fn can_cast(kind: SyntaxKind) -> bool {
27661        kind == SyntaxKind::NULLS_DISTINCT
27662    }
27663    #[inline]
27664    fn cast(syntax: SyntaxNode) -> Option<Self> {
27665        if Self::can_cast(syntax.kind()) {
27666            Some(Self { syntax })
27667        } else {
27668            None
27669        }
27670    }
27671    #[inline]
27672    fn syntax(&self) -> &SyntaxNode {
27673        &self.syntax
27674    }
27675}
27676impl AstNode for NullsFirst {
27677    #[inline]
27678    fn can_cast(kind: SyntaxKind) -> bool {
27679        kind == SyntaxKind::NULLS_FIRST
27680    }
27681    #[inline]
27682    fn cast(syntax: SyntaxNode) -> Option<Self> {
27683        if Self::can_cast(syntax.kind()) {
27684            Some(Self { syntax })
27685        } else {
27686            None
27687        }
27688    }
27689    #[inline]
27690    fn syntax(&self) -> &SyntaxNode {
27691        &self.syntax
27692    }
27693}
27694impl AstNode for NullsLast {
27695    #[inline]
27696    fn can_cast(kind: SyntaxKind) -> bool {
27697        kind == SyntaxKind::NULLS_LAST
27698    }
27699    #[inline]
27700    fn cast(syntax: SyntaxNode) -> Option<Self> {
27701        if Self::can_cast(syntax.kind()) {
27702            Some(Self { syntax })
27703        } else {
27704            None
27705        }
27706    }
27707    #[inline]
27708    fn syntax(&self) -> &SyntaxNode {
27709        &self.syntax
27710    }
27711}
27712impl AstNode for NullsNotDistinct {
27713    #[inline]
27714    fn can_cast(kind: SyntaxKind) -> bool {
27715        kind == SyntaxKind::NULLS_NOT_DISTINCT
27716    }
27717    #[inline]
27718    fn cast(syntax: SyntaxNode) -> Option<Self> {
27719        if Self::can_cast(syntax.kind()) {
27720            Some(Self { syntax })
27721        } else {
27722            None
27723        }
27724    }
27725    #[inline]
27726    fn syntax(&self) -> &SyntaxNode {
27727        &self.syntax
27728    }
27729}
27730impl AstNode for OfType {
27731    #[inline]
27732    fn can_cast(kind: SyntaxKind) -> bool {
27733        kind == SyntaxKind::OF_TYPE
27734    }
27735    #[inline]
27736    fn cast(syntax: SyntaxNode) -> Option<Self> {
27737        if Self::can_cast(syntax.kind()) {
27738            Some(Self { syntax })
27739        } else {
27740            None
27741        }
27742    }
27743    #[inline]
27744    fn syntax(&self) -> &SyntaxNode {
27745        &self.syntax
27746    }
27747}
27748impl AstNode for OffsetClause {
27749    #[inline]
27750    fn can_cast(kind: SyntaxKind) -> bool {
27751        kind == SyntaxKind::OFFSET_CLAUSE
27752    }
27753    #[inline]
27754    fn cast(syntax: SyntaxNode) -> Option<Self> {
27755        if Self::can_cast(syntax.kind()) {
27756            Some(Self { syntax })
27757        } else {
27758            None
27759        }
27760    }
27761    #[inline]
27762    fn syntax(&self) -> &SyntaxNode {
27763        &self.syntax
27764    }
27765}
27766impl AstNode for OnClause {
27767    #[inline]
27768    fn can_cast(kind: SyntaxKind) -> bool {
27769        kind == SyntaxKind::ON_CLAUSE
27770    }
27771    #[inline]
27772    fn cast(syntax: SyntaxNode) -> Option<Self> {
27773        if Self::can_cast(syntax.kind()) {
27774            Some(Self { syntax })
27775        } else {
27776            None
27777        }
27778    }
27779    #[inline]
27780    fn syntax(&self) -> &SyntaxNode {
27781        &self.syntax
27782    }
27783}
27784impl AstNode for OnCommit {
27785    #[inline]
27786    fn can_cast(kind: SyntaxKind) -> bool {
27787        kind == SyntaxKind::ON_COMMIT
27788    }
27789    #[inline]
27790    fn cast(syntax: SyntaxNode) -> Option<Self> {
27791        if Self::can_cast(syntax.kind()) {
27792            Some(Self { syntax })
27793        } else {
27794            None
27795        }
27796    }
27797    #[inline]
27798    fn syntax(&self) -> &SyntaxNode {
27799        &self.syntax
27800    }
27801}
27802impl AstNode for OnConflictClause {
27803    #[inline]
27804    fn can_cast(kind: SyntaxKind) -> bool {
27805        kind == SyntaxKind::ON_CONFLICT_CLAUSE
27806    }
27807    #[inline]
27808    fn cast(syntax: SyntaxNode) -> Option<Self> {
27809        if Self::can_cast(syntax.kind()) {
27810            Some(Self { syntax })
27811        } else {
27812            None
27813        }
27814    }
27815    #[inline]
27816    fn syntax(&self) -> &SyntaxNode {
27817        &self.syntax
27818    }
27819}
27820impl AstNode for OnDeleteAction {
27821    #[inline]
27822    fn can_cast(kind: SyntaxKind) -> bool {
27823        kind == SyntaxKind::ON_DELETE_ACTION
27824    }
27825    #[inline]
27826    fn cast(syntax: SyntaxNode) -> Option<Self> {
27827        if Self::can_cast(syntax.kind()) {
27828            Some(Self { syntax })
27829        } else {
27830            None
27831        }
27832    }
27833    #[inline]
27834    fn syntax(&self) -> &SyntaxNode {
27835        &self.syntax
27836    }
27837}
27838impl AstNode for OnPath {
27839    #[inline]
27840    fn can_cast(kind: SyntaxKind) -> bool {
27841        kind == SyntaxKind::ON_PATH
27842    }
27843    #[inline]
27844    fn cast(syntax: SyntaxNode) -> Option<Self> {
27845        if Self::can_cast(syntax.kind()) {
27846            Some(Self { syntax })
27847        } else {
27848            None
27849        }
27850    }
27851    #[inline]
27852    fn syntax(&self) -> &SyntaxNode {
27853        &self.syntax
27854    }
27855}
27856impl AstNode for OnTable {
27857    #[inline]
27858    fn can_cast(kind: SyntaxKind) -> bool {
27859        kind == SyntaxKind::ON_TABLE
27860    }
27861    #[inline]
27862    fn cast(syntax: SyntaxNode) -> Option<Self> {
27863        if Self::can_cast(syntax.kind()) {
27864            Some(Self { syntax })
27865        } else {
27866            None
27867        }
27868    }
27869    #[inline]
27870    fn syntax(&self) -> &SyntaxNode {
27871        &self.syntax
27872    }
27873}
27874impl AstNode for OnUpdateAction {
27875    #[inline]
27876    fn can_cast(kind: SyntaxKind) -> bool {
27877        kind == SyntaxKind::ON_UPDATE_ACTION
27878    }
27879    #[inline]
27880    fn cast(syntax: SyntaxNode) -> Option<Self> {
27881        if Self::can_cast(syntax.kind()) {
27882            Some(Self { syntax })
27883        } else {
27884            None
27885        }
27886    }
27887    #[inline]
27888    fn syntax(&self) -> &SyntaxNode {
27889        &self.syntax
27890    }
27891}
27892impl AstNode for Op {
27893    #[inline]
27894    fn can_cast(kind: SyntaxKind) -> bool {
27895        kind == SyntaxKind::OP
27896    }
27897    #[inline]
27898    fn cast(syntax: SyntaxNode) -> Option<Self> {
27899        if Self::can_cast(syntax.kind()) {
27900            Some(Self { syntax })
27901        } else {
27902            None
27903        }
27904    }
27905    #[inline]
27906    fn syntax(&self) -> &SyntaxNode {
27907        &self.syntax
27908    }
27909}
27910impl AstNode for OpClassOption {
27911    #[inline]
27912    fn can_cast(kind: SyntaxKind) -> bool {
27913        kind == SyntaxKind::OP_CLASS_OPTION
27914    }
27915    #[inline]
27916    fn cast(syntax: SyntaxNode) -> Option<Self> {
27917        if Self::can_cast(syntax.kind()) {
27918            Some(Self { syntax })
27919        } else {
27920            None
27921        }
27922    }
27923    #[inline]
27924    fn syntax(&self) -> &SyntaxNode {
27925        &self.syntax
27926    }
27927}
27928impl AstNode for OpSig {
27929    #[inline]
27930    fn can_cast(kind: SyntaxKind) -> bool {
27931        kind == SyntaxKind::OP_SIG
27932    }
27933    #[inline]
27934    fn cast(syntax: SyntaxNode) -> Option<Self> {
27935        if Self::can_cast(syntax.kind()) {
27936            Some(Self { syntax })
27937        } else {
27938            None
27939        }
27940    }
27941    #[inline]
27942    fn syntax(&self) -> &SyntaxNode {
27943        &self.syntax
27944    }
27945}
27946impl AstNode for OpSigList {
27947    #[inline]
27948    fn can_cast(kind: SyntaxKind) -> bool {
27949        kind == SyntaxKind::OP_SIG_LIST
27950    }
27951    #[inline]
27952    fn cast(syntax: SyntaxNode) -> Option<Self> {
27953        if Self::can_cast(syntax.kind()) {
27954            Some(Self { syntax })
27955        } else {
27956            None
27957        }
27958    }
27959    #[inline]
27960    fn syntax(&self) -> &SyntaxNode {
27961        &self.syntax
27962    }
27963}
27964impl AstNode for OperatorCall {
27965    #[inline]
27966    fn can_cast(kind: SyntaxKind) -> bool {
27967        kind == SyntaxKind::OPERATOR_CALL
27968    }
27969    #[inline]
27970    fn cast(syntax: SyntaxNode) -> Option<Self> {
27971        if Self::can_cast(syntax.kind()) {
27972            Some(Self { syntax })
27973        } else {
27974            None
27975        }
27976    }
27977    #[inline]
27978    fn syntax(&self) -> &SyntaxNode {
27979        &self.syntax
27980    }
27981}
27982impl AstNode for OperatorClassOptionList {
27983    #[inline]
27984    fn can_cast(kind: SyntaxKind) -> bool {
27985        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27986    }
27987    #[inline]
27988    fn cast(syntax: SyntaxNode) -> Option<Self> {
27989        if Self::can_cast(syntax.kind()) {
27990            Some(Self { syntax })
27991        } else {
27992            None
27993        }
27994    }
27995    #[inline]
27996    fn syntax(&self) -> &SyntaxNode {
27997        &self.syntax
27998    }
27999}
28000impl AstNode for OptionItem {
28001    #[inline]
28002    fn can_cast(kind: SyntaxKind) -> bool {
28003        kind == SyntaxKind::OPTION_ITEM
28004    }
28005    #[inline]
28006    fn cast(syntax: SyntaxNode) -> Option<Self> {
28007        if Self::can_cast(syntax.kind()) {
28008            Some(Self { syntax })
28009        } else {
28010            None
28011        }
28012    }
28013    #[inline]
28014    fn syntax(&self) -> &SyntaxNode {
28015        &self.syntax
28016    }
28017}
28018impl AstNode for OptionItemList {
28019    #[inline]
28020    fn can_cast(kind: SyntaxKind) -> bool {
28021        kind == SyntaxKind::OPTION_ITEM_LIST
28022    }
28023    #[inline]
28024    fn cast(syntax: SyntaxNode) -> Option<Self> {
28025        if Self::can_cast(syntax.kind()) {
28026            Some(Self { syntax })
28027        } else {
28028            None
28029        }
28030    }
28031    #[inline]
28032    fn syntax(&self) -> &SyntaxNode {
28033        &self.syntax
28034    }
28035}
28036impl AstNode for OrReplace {
28037    #[inline]
28038    fn can_cast(kind: SyntaxKind) -> bool {
28039        kind == SyntaxKind::OR_REPLACE
28040    }
28041    #[inline]
28042    fn cast(syntax: SyntaxNode) -> Option<Self> {
28043        if Self::can_cast(syntax.kind()) {
28044            Some(Self { syntax })
28045        } else {
28046            None
28047        }
28048    }
28049    #[inline]
28050    fn syntax(&self) -> &SyntaxNode {
28051        &self.syntax
28052    }
28053}
28054impl AstNode for OrderByClause {
28055    #[inline]
28056    fn can_cast(kind: SyntaxKind) -> bool {
28057        kind == SyntaxKind::ORDER_BY_CLAUSE
28058    }
28059    #[inline]
28060    fn cast(syntax: SyntaxNode) -> Option<Self> {
28061        if Self::can_cast(syntax.kind()) {
28062            Some(Self { syntax })
28063        } else {
28064            None
28065        }
28066    }
28067    #[inline]
28068    fn syntax(&self) -> &SyntaxNode {
28069        &self.syntax
28070    }
28071}
28072impl AstNode for OverClause {
28073    #[inline]
28074    fn can_cast(kind: SyntaxKind) -> bool {
28075        kind == SyntaxKind::OVER_CLAUSE
28076    }
28077    #[inline]
28078    fn cast(syntax: SyntaxNode) -> Option<Self> {
28079        if Self::can_cast(syntax.kind()) {
28080            Some(Self { syntax })
28081        } else {
28082            None
28083        }
28084    }
28085    #[inline]
28086    fn syntax(&self) -> &SyntaxNode {
28087        &self.syntax
28088    }
28089}
28090impl AstNode for OverlayFn {
28091    #[inline]
28092    fn can_cast(kind: SyntaxKind) -> bool {
28093        kind == SyntaxKind::OVERLAY_FN
28094    }
28095    #[inline]
28096    fn cast(syntax: SyntaxNode) -> Option<Self> {
28097        if Self::can_cast(syntax.kind()) {
28098            Some(Self { syntax })
28099        } else {
28100            None
28101        }
28102    }
28103    #[inline]
28104    fn syntax(&self) -> &SyntaxNode {
28105        &self.syntax
28106    }
28107}
28108impl AstNode for OwnedByRoles {
28109    #[inline]
28110    fn can_cast(kind: SyntaxKind) -> bool {
28111        kind == SyntaxKind::OWNED_BY_ROLES
28112    }
28113    #[inline]
28114    fn cast(syntax: SyntaxNode) -> Option<Self> {
28115        if Self::can_cast(syntax.kind()) {
28116            Some(Self { syntax })
28117        } else {
28118            None
28119        }
28120    }
28121    #[inline]
28122    fn syntax(&self) -> &SyntaxNode {
28123        &self.syntax
28124    }
28125}
28126impl AstNode for OwnerTo {
28127    #[inline]
28128    fn can_cast(kind: SyntaxKind) -> bool {
28129        kind == SyntaxKind::OWNER_TO
28130    }
28131    #[inline]
28132    fn cast(syntax: SyntaxNode) -> Option<Self> {
28133        if Self::can_cast(syntax.kind()) {
28134            Some(Self { syntax })
28135        } else {
28136            None
28137        }
28138    }
28139    #[inline]
28140    fn syntax(&self) -> &SyntaxNode {
28141        &self.syntax
28142    }
28143}
28144impl AstNode for ParallelFuncOption {
28145    #[inline]
28146    fn can_cast(kind: SyntaxKind) -> bool {
28147        kind == SyntaxKind::PARALLEL_FUNC_OPTION
28148    }
28149    #[inline]
28150    fn cast(syntax: SyntaxNode) -> Option<Self> {
28151        if Self::can_cast(syntax.kind()) {
28152            Some(Self { syntax })
28153        } else {
28154            None
28155        }
28156    }
28157    #[inline]
28158    fn syntax(&self) -> &SyntaxNode {
28159        &self.syntax
28160    }
28161}
28162impl AstNode for Param {
28163    #[inline]
28164    fn can_cast(kind: SyntaxKind) -> bool {
28165        kind == SyntaxKind::PARAM
28166    }
28167    #[inline]
28168    fn cast(syntax: SyntaxNode) -> Option<Self> {
28169        if Self::can_cast(syntax.kind()) {
28170            Some(Self { syntax })
28171        } else {
28172            None
28173        }
28174    }
28175    #[inline]
28176    fn syntax(&self) -> &SyntaxNode {
28177        &self.syntax
28178    }
28179}
28180impl AstNode for ParamDefault {
28181    #[inline]
28182    fn can_cast(kind: SyntaxKind) -> bool {
28183        kind == SyntaxKind::PARAM_DEFAULT
28184    }
28185    #[inline]
28186    fn cast(syntax: SyntaxNode) -> Option<Self> {
28187        if Self::can_cast(syntax.kind()) {
28188            Some(Self { syntax })
28189        } else {
28190            None
28191        }
28192    }
28193    #[inline]
28194    fn syntax(&self) -> &SyntaxNode {
28195        &self.syntax
28196    }
28197}
28198impl AstNode for ParamIn {
28199    #[inline]
28200    fn can_cast(kind: SyntaxKind) -> bool {
28201        kind == SyntaxKind::PARAM_IN
28202    }
28203    #[inline]
28204    fn cast(syntax: SyntaxNode) -> Option<Self> {
28205        if Self::can_cast(syntax.kind()) {
28206            Some(Self { syntax })
28207        } else {
28208            None
28209        }
28210    }
28211    #[inline]
28212    fn syntax(&self) -> &SyntaxNode {
28213        &self.syntax
28214    }
28215}
28216impl AstNode for ParamInOut {
28217    #[inline]
28218    fn can_cast(kind: SyntaxKind) -> bool {
28219        kind == SyntaxKind::PARAM_IN_OUT
28220    }
28221    #[inline]
28222    fn cast(syntax: SyntaxNode) -> Option<Self> {
28223        if Self::can_cast(syntax.kind()) {
28224            Some(Self { syntax })
28225        } else {
28226            None
28227        }
28228    }
28229    #[inline]
28230    fn syntax(&self) -> &SyntaxNode {
28231        &self.syntax
28232    }
28233}
28234impl AstNode for ParamList {
28235    #[inline]
28236    fn can_cast(kind: SyntaxKind) -> bool {
28237        kind == SyntaxKind::PARAM_LIST
28238    }
28239    #[inline]
28240    fn cast(syntax: SyntaxNode) -> Option<Self> {
28241        if Self::can_cast(syntax.kind()) {
28242            Some(Self { syntax })
28243        } else {
28244            None
28245        }
28246    }
28247    #[inline]
28248    fn syntax(&self) -> &SyntaxNode {
28249        &self.syntax
28250    }
28251}
28252impl AstNode for ParamOut {
28253    #[inline]
28254    fn can_cast(kind: SyntaxKind) -> bool {
28255        kind == SyntaxKind::PARAM_OUT
28256    }
28257    #[inline]
28258    fn cast(syntax: SyntaxNode) -> Option<Self> {
28259        if Self::can_cast(syntax.kind()) {
28260            Some(Self { syntax })
28261        } else {
28262            None
28263        }
28264    }
28265    #[inline]
28266    fn syntax(&self) -> &SyntaxNode {
28267        &self.syntax
28268    }
28269}
28270impl AstNode for ParamVariadic {
28271    #[inline]
28272    fn can_cast(kind: SyntaxKind) -> bool {
28273        kind == SyntaxKind::PARAM_VARIADIC
28274    }
28275    #[inline]
28276    fn cast(syntax: SyntaxNode) -> Option<Self> {
28277        if Self::can_cast(syntax.kind()) {
28278            Some(Self { syntax })
28279        } else {
28280            None
28281        }
28282    }
28283    #[inline]
28284    fn syntax(&self) -> &SyntaxNode {
28285        &self.syntax
28286    }
28287}
28288impl AstNode for ParenExpr {
28289    #[inline]
28290    fn can_cast(kind: SyntaxKind) -> bool {
28291        kind == SyntaxKind::PAREN_EXPR
28292    }
28293    #[inline]
28294    fn cast(syntax: SyntaxNode) -> Option<Self> {
28295        if Self::can_cast(syntax.kind()) {
28296            Some(Self { syntax })
28297        } else {
28298            None
28299        }
28300    }
28301    #[inline]
28302    fn syntax(&self) -> &SyntaxNode {
28303        &self.syntax
28304    }
28305}
28306impl AstNode for ParenGraphPattern {
28307    #[inline]
28308    fn can_cast(kind: SyntaxKind) -> bool {
28309        kind == SyntaxKind::PAREN_GRAPH_PATTERN
28310    }
28311    #[inline]
28312    fn cast(syntax: SyntaxNode) -> Option<Self> {
28313        if Self::can_cast(syntax.kind()) {
28314            Some(Self { syntax })
28315        } else {
28316            None
28317        }
28318    }
28319    #[inline]
28320    fn syntax(&self) -> &SyntaxNode {
28321        &self.syntax
28322    }
28323}
28324impl AstNode for ParenSelect {
28325    #[inline]
28326    fn can_cast(kind: SyntaxKind) -> bool {
28327        kind == SyntaxKind::PAREN_SELECT
28328    }
28329    #[inline]
28330    fn cast(syntax: SyntaxNode) -> Option<Self> {
28331        if Self::can_cast(syntax.kind()) {
28332            Some(Self { syntax })
28333        } else {
28334            None
28335        }
28336    }
28337    #[inline]
28338    fn syntax(&self) -> &SyntaxNode {
28339        &self.syntax
28340    }
28341}
28342impl AstNode for Partition {
28343    #[inline]
28344    fn can_cast(kind: SyntaxKind) -> bool {
28345        kind == SyntaxKind::PARTITION
28346    }
28347    #[inline]
28348    fn cast(syntax: SyntaxNode) -> Option<Self> {
28349        if Self::can_cast(syntax.kind()) {
28350            Some(Self { syntax })
28351        } else {
28352            None
28353        }
28354    }
28355    #[inline]
28356    fn syntax(&self) -> &SyntaxNode {
28357        &self.syntax
28358    }
28359}
28360impl AstNode for PartitionBy {
28361    #[inline]
28362    fn can_cast(kind: SyntaxKind) -> bool {
28363        kind == SyntaxKind::PARTITION_BY
28364    }
28365    #[inline]
28366    fn cast(syntax: SyntaxNode) -> Option<Self> {
28367        if Self::can_cast(syntax.kind()) {
28368            Some(Self { syntax })
28369        } else {
28370            None
28371        }
28372    }
28373    #[inline]
28374    fn syntax(&self) -> &SyntaxNode {
28375        &self.syntax
28376    }
28377}
28378impl AstNode for PartitionDefault {
28379    #[inline]
28380    fn can_cast(kind: SyntaxKind) -> bool {
28381        kind == SyntaxKind::PARTITION_DEFAULT
28382    }
28383    #[inline]
28384    fn cast(syntax: SyntaxNode) -> Option<Self> {
28385        if Self::can_cast(syntax.kind()) {
28386            Some(Self { syntax })
28387        } else {
28388            None
28389        }
28390    }
28391    #[inline]
28392    fn syntax(&self) -> &SyntaxNode {
28393        &self.syntax
28394    }
28395}
28396impl AstNode for PartitionForValuesFrom {
28397    #[inline]
28398    fn can_cast(kind: SyntaxKind) -> bool {
28399        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
28400    }
28401    #[inline]
28402    fn cast(syntax: SyntaxNode) -> Option<Self> {
28403        if Self::can_cast(syntax.kind()) {
28404            Some(Self { syntax })
28405        } else {
28406            None
28407        }
28408    }
28409    #[inline]
28410    fn syntax(&self) -> &SyntaxNode {
28411        &self.syntax
28412    }
28413}
28414impl AstNode for PartitionForValuesIn {
28415    #[inline]
28416    fn can_cast(kind: SyntaxKind) -> bool {
28417        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
28418    }
28419    #[inline]
28420    fn cast(syntax: SyntaxNode) -> Option<Self> {
28421        if Self::can_cast(syntax.kind()) {
28422            Some(Self { syntax })
28423        } else {
28424            None
28425        }
28426    }
28427    #[inline]
28428    fn syntax(&self) -> &SyntaxNode {
28429        &self.syntax
28430    }
28431}
28432impl AstNode for PartitionForValuesWith {
28433    #[inline]
28434    fn can_cast(kind: SyntaxKind) -> bool {
28435        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
28436    }
28437    #[inline]
28438    fn cast(syntax: SyntaxNode) -> Option<Self> {
28439        if Self::can_cast(syntax.kind()) {
28440            Some(Self { syntax })
28441        } else {
28442            None
28443        }
28444    }
28445    #[inline]
28446    fn syntax(&self) -> &SyntaxNode {
28447        &self.syntax
28448    }
28449}
28450impl AstNode for PartitionItem {
28451    #[inline]
28452    fn can_cast(kind: SyntaxKind) -> bool {
28453        kind == SyntaxKind::PARTITION_ITEM
28454    }
28455    #[inline]
28456    fn cast(syntax: SyntaxNode) -> Option<Self> {
28457        if Self::can_cast(syntax.kind()) {
28458            Some(Self { syntax })
28459        } else {
28460            None
28461        }
28462    }
28463    #[inline]
28464    fn syntax(&self) -> &SyntaxNode {
28465        &self.syntax
28466    }
28467}
28468impl AstNode for PartitionItemList {
28469    #[inline]
28470    fn can_cast(kind: SyntaxKind) -> bool {
28471        kind == SyntaxKind::PARTITION_ITEM_LIST
28472    }
28473    #[inline]
28474    fn cast(syntax: SyntaxNode) -> Option<Self> {
28475        if Self::can_cast(syntax.kind()) {
28476            Some(Self { syntax })
28477        } else {
28478            None
28479        }
28480    }
28481    #[inline]
28482    fn syntax(&self) -> &SyntaxNode {
28483        &self.syntax
28484    }
28485}
28486impl AstNode for PartitionList {
28487    #[inline]
28488    fn can_cast(kind: SyntaxKind) -> bool {
28489        kind == SyntaxKind::PARTITION_LIST
28490    }
28491    #[inline]
28492    fn cast(syntax: SyntaxNode) -> Option<Self> {
28493        if Self::can_cast(syntax.kind()) {
28494            Some(Self { syntax })
28495        } else {
28496            None
28497        }
28498    }
28499    #[inline]
28500    fn syntax(&self) -> &SyntaxNode {
28501        &self.syntax
28502    }
28503}
28504impl AstNode for PartitionOf {
28505    #[inline]
28506    fn can_cast(kind: SyntaxKind) -> bool {
28507        kind == SyntaxKind::PARTITION_OF
28508    }
28509    #[inline]
28510    fn cast(syntax: SyntaxNode) -> Option<Self> {
28511        if Self::can_cast(syntax.kind()) {
28512            Some(Self { syntax })
28513        } else {
28514            None
28515        }
28516    }
28517    #[inline]
28518    fn syntax(&self) -> &SyntaxNode {
28519        &self.syntax
28520    }
28521}
28522impl AstNode for Path {
28523    #[inline]
28524    fn can_cast(kind: SyntaxKind) -> bool {
28525        kind == SyntaxKind::PATH
28526    }
28527    #[inline]
28528    fn cast(syntax: SyntaxNode) -> Option<Self> {
28529        if Self::can_cast(syntax.kind()) {
28530            Some(Self { syntax })
28531        } else {
28532            None
28533        }
28534    }
28535    #[inline]
28536    fn syntax(&self) -> &SyntaxNode {
28537        &self.syntax
28538    }
28539}
28540impl AstNode for PathFactor {
28541    #[inline]
28542    fn can_cast(kind: SyntaxKind) -> bool {
28543        kind == SyntaxKind::PATH_FACTOR
28544    }
28545    #[inline]
28546    fn cast(syntax: SyntaxNode) -> Option<Self> {
28547        if Self::can_cast(syntax.kind()) {
28548            Some(Self { syntax })
28549        } else {
28550            None
28551        }
28552    }
28553    #[inline]
28554    fn syntax(&self) -> &SyntaxNode {
28555        &self.syntax
28556    }
28557}
28558impl AstNode for PathPattern {
28559    #[inline]
28560    fn can_cast(kind: SyntaxKind) -> bool {
28561        kind == SyntaxKind::PATH_PATTERN
28562    }
28563    #[inline]
28564    fn cast(syntax: SyntaxNode) -> Option<Self> {
28565        if Self::can_cast(syntax.kind()) {
28566            Some(Self { syntax })
28567        } else {
28568            None
28569        }
28570    }
28571    #[inline]
28572    fn syntax(&self) -> &SyntaxNode {
28573        &self.syntax
28574    }
28575}
28576impl AstNode for PathPatternList {
28577    #[inline]
28578    fn can_cast(kind: SyntaxKind) -> bool {
28579        kind == SyntaxKind::PATH_PATTERN_LIST
28580    }
28581    #[inline]
28582    fn cast(syntax: SyntaxNode) -> Option<Self> {
28583        if Self::can_cast(syntax.kind()) {
28584            Some(Self { syntax })
28585        } else {
28586            None
28587        }
28588    }
28589    #[inline]
28590    fn syntax(&self) -> &SyntaxNode {
28591        &self.syntax
28592    }
28593}
28594impl AstNode for PathSegment {
28595    #[inline]
28596    fn can_cast(kind: SyntaxKind) -> bool {
28597        kind == SyntaxKind::PATH_SEGMENT
28598    }
28599    #[inline]
28600    fn cast(syntax: SyntaxNode) -> Option<Self> {
28601        if Self::can_cast(syntax.kind()) {
28602            Some(Self { syntax })
28603        } else {
28604            None
28605        }
28606    }
28607    #[inline]
28608    fn syntax(&self) -> &SyntaxNode {
28609        &self.syntax
28610    }
28611}
28612impl AstNode for PathType {
28613    #[inline]
28614    fn can_cast(kind: SyntaxKind) -> bool {
28615        kind == SyntaxKind::PATH_TYPE
28616    }
28617    #[inline]
28618    fn cast(syntax: SyntaxNode) -> Option<Self> {
28619        if Self::can_cast(syntax.kind()) {
28620            Some(Self { syntax })
28621        } else {
28622            None
28623        }
28624    }
28625    #[inline]
28626    fn syntax(&self) -> &SyntaxNode {
28627        &self.syntax
28628    }
28629}
28630impl AstNode for PercentType {
28631    #[inline]
28632    fn can_cast(kind: SyntaxKind) -> bool {
28633        kind == SyntaxKind::PERCENT_TYPE
28634    }
28635    #[inline]
28636    fn cast(syntax: SyntaxNode) -> Option<Self> {
28637        if Self::can_cast(syntax.kind()) {
28638            Some(Self { syntax })
28639        } else {
28640            None
28641        }
28642    }
28643    #[inline]
28644    fn syntax(&self) -> &SyntaxNode {
28645        &self.syntax
28646    }
28647}
28648impl AstNode for PercentTypeClause {
28649    #[inline]
28650    fn can_cast(kind: SyntaxKind) -> bool {
28651        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
28652    }
28653    #[inline]
28654    fn cast(syntax: SyntaxNode) -> Option<Self> {
28655        if Self::can_cast(syntax.kind()) {
28656            Some(Self { syntax })
28657        } else {
28658            None
28659        }
28660    }
28661    #[inline]
28662    fn syntax(&self) -> &SyntaxNode {
28663        &self.syntax
28664    }
28665}
28666impl AstNode for PositionFn {
28667    #[inline]
28668    fn can_cast(kind: SyntaxKind) -> bool {
28669        kind == SyntaxKind::POSITION_FN
28670    }
28671    #[inline]
28672    fn cast(syntax: SyntaxNode) -> Option<Self> {
28673        if Self::can_cast(syntax.kind()) {
28674            Some(Self { syntax })
28675        } else {
28676            None
28677        }
28678    }
28679    #[inline]
28680    fn syntax(&self) -> &SyntaxNode {
28681        &self.syntax
28682    }
28683}
28684impl AstNode for PostfixExpr {
28685    #[inline]
28686    fn can_cast(kind: SyntaxKind) -> bool {
28687        kind == SyntaxKind::POSTFIX_EXPR
28688    }
28689    #[inline]
28690    fn cast(syntax: SyntaxNode) -> Option<Self> {
28691        if Self::can_cast(syntax.kind()) {
28692            Some(Self { syntax })
28693        } else {
28694            None
28695        }
28696    }
28697    #[inline]
28698    fn syntax(&self) -> &SyntaxNode {
28699        &self.syntax
28700    }
28701}
28702impl AstNode for PrefixExpr {
28703    #[inline]
28704    fn can_cast(kind: SyntaxKind) -> bool {
28705        kind == SyntaxKind::PREFIX_EXPR
28706    }
28707    #[inline]
28708    fn cast(syntax: SyntaxNode) -> Option<Self> {
28709        if Self::can_cast(syntax.kind()) {
28710            Some(Self { syntax })
28711        } else {
28712            None
28713        }
28714    }
28715    #[inline]
28716    fn syntax(&self) -> &SyntaxNode {
28717        &self.syntax
28718    }
28719}
28720impl AstNode for Prepare {
28721    #[inline]
28722    fn can_cast(kind: SyntaxKind) -> bool {
28723        kind == SyntaxKind::PREPARE
28724    }
28725    #[inline]
28726    fn cast(syntax: SyntaxNode) -> Option<Self> {
28727        if Self::can_cast(syntax.kind()) {
28728            Some(Self { syntax })
28729        } else {
28730            None
28731        }
28732    }
28733    #[inline]
28734    fn syntax(&self) -> &SyntaxNode {
28735        &self.syntax
28736    }
28737}
28738impl AstNode for PrepareTransaction {
28739    #[inline]
28740    fn can_cast(kind: SyntaxKind) -> bool {
28741        kind == SyntaxKind::PREPARE_TRANSACTION
28742    }
28743    #[inline]
28744    fn cast(syntax: SyntaxNode) -> Option<Self> {
28745        if Self::can_cast(syntax.kind()) {
28746            Some(Self { syntax })
28747        } else {
28748            None
28749        }
28750    }
28751    #[inline]
28752    fn syntax(&self) -> &SyntaxNode {
28753        &self.syntax
28754    }
28755}
28756impl AstNode for PreserveRows {
28757    #[inline]
28758    fn can_cast(kind: SyntaxKind) -> bool {
28759        kind == SyntaxKind::PRESERVE_ROWS
28760    }
28761    #[inline]
28762    fn cast(syntax: SyntaxNode) -> Option<Self> {
28763        if Self::can_cast(syntax.kind()) {
28764            Some(Self { syntax })
28765        } else {
28766            None
28767        }
28768    }
28769    #[inline]
28770    fn syntax(&self) -> &SyntaxNode {
28771        &self.syntax
28772    }
28773}
28774impl AstNode for PrimaryKeyConstraint {
28775    #[inline]
28776    fn can_cast(kind: SyntaxKind) -> bool {
28777        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
28778    }
28779    #[inline]
28780    fn cast(syntax: SyntaxNode) -> Option<Self> {
28781        if Self::can_cast(syntax.kind()) {
28782            Some(Self { syntax })
28783        } else {
28784            None
28785        }
28786    }
28787    #[inline]
28788    fn syntax(&self) -> &SyntaxNode {
28789        &self.syntax
28790    }
28791}
28792impl AstNode for PrivilegeTarget {
28793    #[inline]
28794    fn can_cast(kind: SyntaxKind) -> bool {
28795        kind == SyntaxKind::PRIVILEGE_TARGET
28796    }
28797    #[inline]
28798    fn cast(syntax: SyntaxNode) -> Option<Self> {
28799        if Self::can_cast(syntax.kind()) {
28800            Some(Self { syntax })
28801        } else {
28802            None
28803        }
28804    }
28805    #[inline]
28806    fn syntax(&self) -> &SyntaxNode {
28807        &self.syntax
28808    }
28809}
28810impl AstNode for Privileges {
28811    #[inline]
28812    fn can_cast(kind: SyntaxKind) -> bool {
28813        kind == SyntaxKind::PRIVILEGES
28814    }
28815    #[inline]
28816    fn cast(syntax: SyntaxNode) -> Option<Self> {
28817        if Self::can_cast(syntax.kind()) {
28818            Some(Self { syntax })
28819        } else {
28820            None
28821        }
28822    }
28823    #[inline]
28824    fn syntax(&self) -> &SyntaxNode {
28825        &self.syntax
28826    }
28827}
28828impl AstNode for Properties {
28829    #[inline]
28830    fn can_cast(kind: SyntaxKind) -> bool {
28831        kind == SyntaxKind::PROPERTIES
28832    }
28833    #[inline]
28834    fn cast(syntax: SyntaxNode) -> Option<Self> {
28835        if Self::can_cast(syntax.kind()) {
28836            Some(Self { syntax })
28837        } else {
28838            None
28839        }
28840    }
28841    #[inline]
28842    fn syntax(&self) -> &SyntaxNode {
28843        &self.syntax
28844    }
28845}
28846impl AstNode for PublicationObject {
28847    #[inline]
28848    fn can_cast(kind: SyntaxKind) -> bool {
28849        kind == SyntaxKind::PUBLICATION_OBJECT
28850    }
28851    #[inline]
28852    fn cast(syntax: SyntaxNode) -> Option<Self> {
28853        if Self::can_cast(syntax.kind()) {
28854            Some(Self { syntax })
28855        } else {
28856            None
28857        }
28858    }
28859    #[inline]
28860    fn syntax(&self) -> &SyntaxNode {
28861        &self.syntax
28862    }
28863}
28864impl AstNode for ReadCommitted {
28865    #[inline]
28866    fn can_cast(kind: SyntaxKind) -> bool {
28867        kind == SyntaxKind::READ_COMMITTED
28868    }
28869    #[inline]
28870    fn cast(syntax: SyntaxNode) -> Option<Self> {
28871        if Self::can_cast(syntax.kind()) {
28872            Some(Self { syntax })
28873        } else {
28874            None
28875        }
28876    }
28877    #[inline]
28878    fn syntax(&self) -> &SyntaxNode {
28879        &self.syntax
28880    }
28881}
28882impl AstNode for ReadOnly {
28883    #[inline]
28884    fn can_cast(kind: SyntaxKind) -> bool {
28885        kind == SyntaxKind::READ_ONLY
28886    }
28887    #[inline]
28888    fn cast(syntax: SyntaxNode) -> Option<Self> {
28889        if Self::can_cast(syntax.kind()) {
28890            Some(Self { syntax })
28891        } else {
28892            None
28893        }
28894    }
28895    #[inline]
28896    fn syntax(&self) -> &SyntaxNode {
28897        &self.syntax
28898    }
28899}
28900impl AstNode for ReadUncommitted {
28901    #[inline]
28902    fn can_cast(kind: SyntaxKind) -> bool {
28903        kind == SyntaxKind::READ_UNCOMMITTED
28904    }
28905    #[inline]
28906    fn cast(syntax: SyntaxNode) -> Option<Self> {
28907        if Self::can_cast(syntax.kind()) {
28908            Some(Self { syntax })
28909        } else {
28910            None
28911        }
28912    }
28913    #[inline]
28914    fn syntax(&self) -> &SyntaxNode {
28915        &self.syntax
28916    }
28917}
28918impl AstNode for ReadWrite {
28919    #[inline]
28920    fn can_cast(kind: SyntaxKind) -> bool {
28921        kind == SyntaxKind::READ_WRITE
28922    }
28923    #[inline]
28924    fn cast(syntax: SyntaxNode) -> Option<Self> {
28925        if Self::can_cast(syntax.kind()) {
28926            Some(Self { syntax })
28927        } else {
28928            None
28929        }
28930    }
28931    #[inline]
28932    fn syntax(&self) -> &SyntaxNode {
28933        &self.syntax
28934    }
28935}
28936impl AstNode for Reassign {
28937    #[inline]
28938    fn can_cast(kind: SyntaxKind) -> bool {
28939        kind == SyntaxKind::REASSIGN
28940    }
28941    #[inline]
28942    fn cast(syntax: SyntaxNode) -> Option<Self> {
28943        if Self::can_cast(syntax.kind()) {
28944            Some(Self { syntax })
28945        } else {
28946            None
28947        }
28948    }
28949    #[inline]
28950    fn syntax(&self) -> &SyntaxNode {
28951        &self.syntax
28952    }
28953}
28954impl AstNode for ReferencesConstraint {
28955    #[inline]
28956    fn can_cast(kind: SyntaxKind) -> bool {
28957        kind == SyntaxKind::REFERENCES_CONSTRAINT
28958    }
28959    #[inline]
28960    fn cast(syntax: SyntaxNode) -> Option<Self> {
28961        if Self::can_cast(syntax.kind()) {
28962            Some(Self { syntax })
28963        } else {
28964            None
28965        }
28966    }
28967    #[inline]
28968    fn syntax(&self) -> &SyntaxNode {
28969        &self.syntax
28970    }
28971}
28972impl AstNode for ReferencesTable {
28973    #[inline]
28974    fn can_cast(kind: SyntaxKind) -> bool {
28975        kind == SyntaxKind::REFERENCES_TABLE
28976    }
28977    #[inline]
28978    fn cast(syntax: SyntaxNode) -> Option<Self> {
28979        if Self::can_cast(syntax.kind()) {
28980            Some(Self { syntax })
28981        } else {
28982            None
28983        }
28984    }
28985    #[inline]
28986    fn syntax(&self) -> &SyntaxNode {
28987        &self.syntax
28988    }
28989}
28990impl AstNode for Referencing {
28991    #[inline]
28992    fn can_cast(kind: SyntaxKind) -> bool {
28993        kind == SyntaxKind::REFERENCING
28994    }
28995    #[inline]
28996    fn cast(syntax: SyntaxNode) -> Option<Self> {
28997        if Self::can_cast(syntax.kind()) {
28998            Some(Self { syntax })
28999        } else {
29000            None
29001        }
29002    }
29003    #[inline]
29004    fn syntax(&self) -> &SyntaxNode {
29005        &self.syntax
29006    }
29007}
29008impl AstNode for ReferencingTable {
29009    #[inline]
29010    fn can_cast(kind: SyntaxKind) -> bool {
29011        kind == SyntaxKind::REFERENCING_TABLE
29012    }
29013    #[inline]
29014    fn cast(syntax: SyntaxNode) -> Option<Self> {
29015        if Self::can_cast(syntax.kind()) {
29016            Some(Self { syntax })
29017        } else {
29018            None
29019        }
29020    }
29021    #[inline]
29022    fn syntax(&self) -> &SyntaxNode {
29023        &self.syntax
29024    }
29025}
29026impl AstNode for Refresh {
29027    #[inline]
29028    fn can_cast(kind: SyntaxKind) -> bool {
29029        kind == SyntaxKind::REFRESH
29030    }
29031    #[inline]
29032    fn cast(syntax: SyntaxNode) -> Option<Self> {
29033        if Self::can_cast(syntax.kind()) {
29034            Some(Self { syntax })
29035        } else {
29036            None
29037        }
29038    }
29039    #[inline]
29040    fn syntax(&self) -> &SyntaxNode {
29041        &self.syntax
29042    }
29043}
29044impl AstNode for RefreshCollationVersion {
29045    #[inline]
29046    fn can_cast(kind: SyntaxKind) -> bool {
29047        kind == SyntaxKind::REFRESH_COLLATION_VERSION
29048    }
29049    #[inline]
29050    fn cast(syntax: SyntaxNode) -> Option<Self> {
29051        if Self::can_cast(syntax.kind()) {
29052            Some(Self { syntax })
29053        } else {
29054            None
29055        }
29056    }
29057    #[inline]
29058    fn syntax(&self) -> &SyntaxNode {
29059        &self.syntax
29060    }
29061}
29062impl AstNode for RefreshVersion {
29063    #[inline]
29064    fn can_cast(kind: SyntaxKind) -> bool {
29065        kind == SyntaxKind::REFRESH_VERSION
29066    }
29067    #[inline]
29068    fn cast(syntax: SyntaxNode) -> Option<Self> {
29069        if Self::can_cast(syntax.kind()) {
29070            Some(Self { syntax })
29071        } else {
29072            None
29073        }
29074    }
29075    #[inline]
29076    fn syntax(&self) -> &SyntaxNode {
29077        &self.syntax
29078    }
29079}
29080impl AstNode for Reindex {
29081    #[inline]
29082    fn can_cast(kind: SyntaxKind) -> bool {
29083        kind == SyntaxKind::REINDEX
29084    }
29085    #[inline]
29086    fn cast(syntax: SyntaxNode) -> Option<Self> {
29087        if Self::can_cast(syntax.kind()) {
29088            Some(Self { syntax })
29089        } else {
29090            None
29091        }
29092    }
29093    #[inline]
29094    fn syntax(&self) -> &SyntaxNode {
29095        &self.syntax
29096    }
29097}
29098impl AstNode for RelationName {
29099    #[inline]
29100    fn can_cast(kind: SyntaxKind) -> bool {
29101        kind == SyntaxKind::RELATION_NAME
29102    }
29103    #[inline]
29104    fn cast(syntax: SyntaxNode) -> Option<Self> {
29105        if Self::can_cast(syntax.kind()) {
29106            Some(Self { syntax })
29107        } else {
29108            None
29109        }
29110    }
29111    #[inline]
29112    fn syntax(&self) -> &SyntaxNode {
29113        &self.syntax
29114    }
29115}
29116impl AstNode for ReleaseSavepoint {
29117    #[inline]
29118    fn can_cast(kind: SyntaxKind) -> bool {
29119        kind == SyntaxKind::RELEASE_SAVEPOINT
29120    }
29121    #[inline]
29122    fn cast(syntax: SyntaxNode) -> Option<Self> {
29123        if Self::can_cast(syntax.kind()) {
29124            Some(Self { syntax })
29125        } else {
29126            None
29127        }
29128    }
29129    #[inline]
29130    fn syntax(&self) -> &SyntaxNode {
29131        &self.syntax
29132    }
29133}
29134impl AstNode for RenameAttribute {
29135    #[inline]
29136    fn can_cast(kind: SyntaxKind) -> bool {
29137        kind == SyntaxKind::RENAME_ATTRIBUTE
29138    }
29139    #[inline]
29140    fn cast(syntax: SyntaxNode) -> Option<Self> {
29141        if Self::can_cast(syntax.kind()) {
29142            Some(Self { syntax })
29143        } else {
29144            None
29145        }
29146    }
29147    #[inline]
29148    fn syntax(&self) -> &SyntaxNode {
29149        &self.syntax
29150    }
29151}
29152impl AstNode for RenameColumn {
29153    #[inline]
29154    fn can_cast(kind: SyntaxKind) -> bool {
29155        kind == SyntaxKind::RENAME_COLUMN
29156    }
29157    #[inline]
29158    fn cast(syntax: SyntaxNode) -> Option<Self> {
29159        if Self::can_cast(syntax.kind()) {
29160            Some(Self { syntax })
29161        } else {
29162            None
29163        }
29164    }
29165    #[inline]
29166    fn syntax(&self) -> &SyntaxNode {
29167        &self.syntax
29168    }
29169}
29170impl AstNode for RenameConstraint {
29171    #[inline]
29172    fn can_cast(kind: SyntaxKind) -> bool {
29173        kind == SyntaxKind::RENAME_CONSTRAINT
29174    }
29175    #[inline]
29176    fn cast(syntax: SyntaxNode) -> Option<Self> {
29177        if Self::can_cast(syntax.kind()) {
29178            Some(Self { syntax })
29179        } else {
29180            None
29181        }
29182    }
29183    #[inline]
29184    fn syntax(&self) -> &SyntaxNode {
29185        &self.syntax
29186    }
29187}
29188impl AstNode for RenameTo {
29189    #[inline]
29190    fn can_cast(kind: SyntaxKind) -> bool {
29191        kind == SyntaxKind::RENAME_TO
29192    }
29193    #[inline]
29194    fn cast(syntax: SyntaxNode) -> Option<Self> {
29195        if Self::can_cast(syntax.kind()) {
29196            Some(Self { syntax })
29197        } else {
29198            None
29199        }
29200    }
29201    #[inline]
29202    fn syntax(&self) -> &SyntaxNode {
29203        &self.syntax
29204    }
29205}
29206impl AstNode for RenameValue {
29207    #[inline]
29208    fn can_cast(kind: SyntaxKind) -> bool {
29209        kind == SyntaxKind::RENAME_VALUE
29210    }
29211    #[inline]
29212    fn cast(syntax: SyntaxNode) -> Option<Self> {
29213        if Self::can_cast(syntax.kind()) {
29214            Some(Self { syntax })
29215        } else {
29216            None
29217        }
29218    }
29219    #[inline]
29220    fn syntax(&self) -> &SyntaxNode {
29221        &self.syntax
29222    }
29223}
29224impl AstNode for Repack {
29225    #[inline]
29226    fn can_cast(kind: SyntaxKind) -> bool {
29227        kind == SyntaxKind::REPACK
29228    }
29229    #[inline]
29230    fn cast(syntax: SyntaxNode) -> Option<Self> {
29231        if Self::can_cast(syntax.kind()) {
29232            Some(Self { syntax })
29233        } else {
29234            None
29235        }
29236    }
29237    #[inline]
29238    fn syntax(&self) -> &SyntaxNode {
29239        &self.syntax
29240    }
29241}
29242impl AstNode for RepeatableClause {
29243    #[inline]
29244    fn can_cast(kind: SyntaxKind) -> bool {
29245        kind == SyntaxKind::REPEATABLE_CLAUSE
29246    }
29247    #[inline]
29248    fn cast(syntax: SyntaxNode) -> Option<Self> {
29249        if Self::can_cast(syntax.kind()) {
29250            Some(Self { syntax })
29251        } else {
29252            None
29253        }
29254    }
29255    #[inline]
29256    fn syntax(&self) -> &SyntaxNode {
29257        &self.syntax
29258    }
29259}
29260impl AstNode for RepeatableRead {
29261    #[inline]
29262    fn can_cast(kind: SyntaxKind) -> bool {
29263        kind == SyntaxKind::REPEATABLE_READ
29264    }
29265    #[inline]
29266    fn cast(syntax: SyntaxNode) -> Option<Self> {
29267        if Self::can_cast(syntax.kind()) {
29268            Some(Self { syntax })
29269        } else {
29270            None
29271        }
29272    }
29273    #[inline]
29274    fn syntax(&self) -> &SyntaxNode {
29275        &self.syntax
29276    }
29277}
29278impl AstNode for ReplicaIdentity {
29279    #[inline]
29280    fn can_cast(kind: SyntaxKind) -> bool {
29281        kind == SyntaxKind::REPLICA_IDENTITY
29282    }
29283    #[inline]
29284    fn cast(syntax: SyntaxNode) -> Option<Self> {
29285        if Self::can_cast(syntax.kind()) {
29286            Some(Self { syntax })
29287        } else {
29288            None
29289        }
29290    }
29291    #[inline]
29292    fn syntax(&self) -> &SyntaxNode {
29293        &self.syntax
29294    }
29295}
29296impl AstNode for Reset {
29297    #[inline]
29298    fn can_cast(kind: SyntaxKind) -> bool {
29299        kind == SyntaxKind::RESET
29300    }
29301    #[inline]
29302    fn cast(syntax: SyntaxNode) -> Option<Self> {
29303        if Self::can_cast(syntax.kind()) {
29304            Some(Self { syntax })
29305        } else {
29306            None
29307        }
29308    }
29309    #[inline]
29310    fn syntax(&self) -> &SyntaxNode {
29311        &self.syntax
29312    }
29313}
29314impl AstNode for ResetConfigParam {
29315    #[inline]
29316    fn can_cast(kind: SyntaxKind) -> bool {
29317        kind == SyntaxKind::RESET_CONFIG_PARAM
29318    }
29319    #[inline]
29320    fn cast(syntax: SyntaxNode) -> Option<Self> {
29321        if Self::can_cast(syntax.kind()) {
29322            Some(Self { syntax })
29323        } else {
29324            None
29325        }
29326    }
29327    #[inline]
29328    fn syntax(&self) -> &SyntaxNode {
29329        &self.syntax
29330    }
29331}
29332impl AstNode for ResetFuncOption {
29333    #[inline]
29334    fn can_cast(kind: SyntaxKind) -> bool {
29335        kind == SyntaxKind::RESET_FUNC_OPTION
29336    }
29337    #[inline]
29338    fn cast(syntax: SyntaxNode) -> Option<Self> {
29339        if Self::can_cast(syntax.kind()) {
29340            Some(Self { syntax })
29341        } else {
29342            None
29343        }
29344    }
29345    #[inline]
29346    fn syntax(&self) -> &SyntaxNode {
29347        &self.syntax
29348    }
29349}
29350impl AstNode for ResetOptions {
29351    #[inline]
29352    fn can_cast(kind: SyntaxKind) -> bool {
29353        kind == SyntaxKind::RESET_OPTIONS
29354    }
29355    #[inline]
29356    fn cast(syntax: SyntaxNode) -> Option<Self> {
29357        if Self::can_cast(syntax.kind()) {
29358            Some(Self { syntax })
29359        } else {
29360            None
29361        }
29362    }
29363    #[inline]
29364    fn syntax(&self) -> &SyntaxNode {
29365        &self.syntax
29366    }
29367}
29368impl AstNode for ResetSessionAuth {
29369    #[inline]
29370    fn can_cast(kind: SyntaxKind) -> bool {
29371        kind == SyntaxKind::RESET_SESSION_AUTH
29372    }
29373    #[inline]
29374    fn cast(syntax: SyntaxNode) -> Option<Self> {
29375        if Self::can_cast(syntax.kind()) {
29376            Some(Self { syntax })
29377        } else {
29378            None
29379        }
29380    }
29381    #[inline]
29382    fn syntax(&self) -> &SyntaxNode {
29383        &self.syntax
29384    }
29385}
29386impl AstNode for Restart {
29387    #[inline]
29388    fn can_cast(kind: SyntaxKind) -> bool {
29389        kind == SyntaxKind::RESTART
29390    }
29391    #[inline]
29392    fn cast(syntax: SyntaxNode) -> Option<Self> {
29393        if Self::can_cast(syntax.kind()) {
29394            Some(Self { syntax })
29395        } else {
29396            None
29397        }
29398    }
29399    #[inline]
29400    fn syntax(&self) -> &SyntaxNode {
29401        &self.syntax
29402    }
29403}
29404impl AstNode for Restrict {
29405    #[inline]
29406    fn can_cast(kind: SyntaxKind) -> bool {
29407        kind == SyntaxKind::RESTRICT
29408    }
29409    #[inline]
29410    fn cast(syntax: SyntaxNode) -> Option<Self> {
29411        if Self::can_cast(syntax.kind()) {
29412            Some(Self { syntax })
29413        } else {
29414            None
29415        }
29416    }
29417    #[inline]
29418    fn syntax(&self) -> &SyntaxNode {
29419        &self.syntax
29420    }
29421}
29422impl AstNode for RetType {
29423    #[inline]
29424    fn can_cast(kind: SyntaxKind) -> bool {
29425        kind == SyntaxKind::RET_TYPE
29426    }
29427    #[inline]
29428    fn cast(syntax: SyntaxNode) -> Option<Self> {
29429        if Self::can_cast(syntax.kind()) {
29430            Some(Self { syntax })
29431        } else {
29432            None
29433        }
29434    }
29435    #[inline]
29436    fn syntax(&self) -> &SyntaxNode {
29437        &self.syntax
29438    }
29439}
29440impl AstNode for ReturnFuncOption {
29441    #[inline]
29442    fn can_cast(kind: SyntaxKind) -> bool {
29443        kind == SyntaxKind::RETURN_FUNC_OPTION
29444    }
29445    #[inline]
29446    fn cast(syntax: SyntaxNode) -> Option<Self> {
29447        if Self::can_cast(syntax.kind()) {
29448            Some(Self { syntax })
29449        } else {
29450            None
29451        }
29452    }
29453    #[inline]
29454    fn syntax(&self) -> &SyntaxNode {
29455        &self.syntax
29456    }
29457}
29458impl AstNode for ReturningClause {
29459    #[inline]
29460    fn can_cast(kind: SyntaxKind) -> bool {
29461        kind == SyntaxKind::RETURNING_CLAUSE
29462    }
29463    #[inline]
29464    fn cast(syntax: SyntaxNode) -> Option<Self> {
29465        if Self::can_cast(syntax.kind()) {
29466            Some(Self { syntax })
29467        } else {
29468            None
29469        }
29470    }
29471    #[inline]
29472    fn syntax(&self) -> &SyntaxNode {
29473        &self.syntax
29474    }
29475}
29476impl AstNode for ReturningOption {
29477    #[inline]
29478    fn can_cast(kind: SyntaxKind) -> bool {
29479        kind == SyntaxKind::RETURNING_OPTION
29480    }
29481    #[inline]
29482    fn cast(syntax: SyntaxNode) -> Option<Self> {
29483        if Self::can_cast(syntax.kind()) {
29484            Some(Self { syntax })
29485        } else {
29486            None
29487        }
29488    }
29489    #[inline]
29490    fn syntax(&self) -> &SyntaxNode {
29491        &self.syntax
29492    }
29493}
29494impl AstNode for ReturningOptionList {
29495    #[inline]
29496    fn can_cast(kind: SyntaxKind) -> bool {
29497        kind == SyntaxKind::RETURNING_OPTION_LIST
29498    }
29499    #[inline]
29500    fn cast(syntax: SyntaxNode) -> Option<Self> {
29501        if Self::can_cast(syntax.kind()) {
29502            Some(Self { syntax })
29503        } else {
29504            None
29505        }
29506    }
29507    #[inline]
29508    fn syntax(&self) -> &SyntaxNode {
29509        &self.syntax
29510    }
29511}
29512impl AstNode for Revoke {
29513    #[inline]
29514    fn can_cast(kind: SyntaxKind) -> bool {
29515        kind == SyntaxKind::REVOKE
29516    }
29517    #[inline]
29518    fn cast(syntax: SyntaxNode) -> Option<Self> {
29519        if Self::can_cast(syntax.kind()) {
29520            Some(Self { syntax })
29521        } else {
29522            None
29523        }
29524    }
29525    #[inline]
29526    fn syntax(&self) -> &SyntaxNode {
29527        &self.syntax
29528    }
29529}
29530impl AstNode for RevokeCommand {
29531    #[inline]
29532    fn can_cast(kind: SyntaxKind) -> bool {
29533        kind == SyntaxKind::REVOKE_COMMAND
29534    }
29535    #[inline]
29536    fn cast(syntax: SyntaxNode) -> Option<Self> {
29537        if Self::can_cast(syntax.kind()) {
29538            Some(Self { syntax })
29539        } else {
29540            None
29541        }
29542    }
29543    #[inline]
29544    fn syntax(&self) -> &SyntaxNode {
29545        &self.syntax
29546    }
29547}
29548impl AstNode for RevokeCommandList {
29549    #[inline]
29550    fn can_cast(kind: SyntaxKind) -> bool {
29551        kind == SyntaxKind::REVOKE_COMMAND_LIST
29552    }
29553    #[inline]
29554    fn cast(syntax: SyntaxNode) -> Option<Self> {
29555        if Self::can_cast(syntax.kind()) {
29556            Some(Self { syntax })
29557        } else {
29558            None
29559        }
29560    }
29561    #[inline]
29562    fn syntax(&self) -> &SyntaxNode {
29563        &self.syntax
29564    }
29565}
29566impl AstNode for RevokeDefaultPrivileges {
29567    #[inline]
29568    fn can_cast(kind: SyntaxKind) -> bool {
29569        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
29570    }
29571    #[inline]
29572    fn cast(syntax: SyntaxNode) -> Option<Self> {
29573        if Self::can_cast(syntax.kind()) {
29574            Some(Self { syntax })
29575        } else {
29576            None
29577        }
29578    }
29579    #[inline]
29580    fn syntax(&self) -> &SyntaxNode {
29581        &self.syntax
29582    }
29583}
29584impl AstNode for Role {
29585    #[inline]
29586    fn can_cast(kind: SyntaxKind) -> bool {
29587        kind == SyntaxKind::ROLE
29588    }
29589    #[inline]
29590    fn cast(syntax: SyntaxNode) -> Option<Self> {
29591        if Self::can_cast(syntax.kind()) {
29592            Some(Self { syntax })
29593        } else {
29594            None
29595        }
29596    }
29597    #[inline]
29598    fn syntax(&self) -> &SyntaxNode {
29599        &self.syntax
29600    }
29601}
29602impl AstNode for RoleOption {
29603    #[inline]
29604    fn can_cast(kind: SyntaxKind) -> bool {
29605        kind == SyntaxKind::ROLE_OPTION
29606    }
29607    #[inline]
29608    fn cast(syntax: SyntaxNode) -> Option<Self> {
29609        if Self::can_cast(syntax.kind()) {
29610            Some(Self { syntax })
29611        } else {
29612            None
29613        }
29614    }
29615    #[inline]
29616    fn syntax(&self) -> &SyntaxNode {
29617        &self.syntax
29618    }
29619}
29620impl AstNode for RoleOptionList {
29621    #[inline]
29622    fn can_cast(kind: SyntaxKind) -> bool {
29623        kind == SyntaxKind::ROLE_OPTION_LIST
29624    }
29625    #[inline]
29626    fn cast(syntax: SyntaxNode) -> Option<Self> {
29627        if Self::can_cast(syntax.kind()) {
29628            Some(Self { syntax })
29629        } else {
29630            None
29631        }
29632    }
29633    #[inline]
29634    fn syntax(&self) -> &SyntaxNode {
29635        &self.syntax
29636    }
29637}
29638impl AstNode for RoleRef {
29639    #[inline]
29640    fn can_cast(kind: SyntaxKind) -> bool {
29641        kind == SyntaxKind::ROLE_REF
29642    }
29643    #[inline]
29644    fn cast(syntax: SyntaxNode) -> Option<Self> {
29645        if Self::can_cast(syntax.kind()) {
29646            Some(Self { syntax })
29647        } else {
29648            None
29649        }
29650    }
29651    #[inline]
29652    fn syntax(&self) -> &SyntaxNode {
29653        &self.syntax
29654    }
29655}
29656impl AstNode for RoleRefList {
29657    #[inline]
29658    fn can_cast(kind: SyntaxKind) -> bool {
29659        kind == SyntaxKind::ROLE_REF_LIST
29660    }
29661    #[inline]
29662    fn cast(syntax: SyntaxNode) -> Option<Self> {
29663        if Self::can_cast(syntax.kind()) {
29664            Some(Self { syntax })
29665        } else {
29666            None
29667        }
29668    }
29669    #[inline]
29670    fn syntax(&self) -> &SyntaxNode {
29671        &self.syntax
29672    }
29673}
29674impl AstNode for Rollback {
29675    #[inline]
29676    fn can_cast(kind: SyntaxKind) -> bool {
29677        kind == SyntaxKind::ROLLBACK
29678    }
29679    #[inline]
29680    fn cast(syntax: SyntaxNode) -> Option<Self> {
29681        if Self::can_cast(syntax.kind()) {
29682            Some(Self { syntax })
29683        } else {
29684            None
29685        }
29686    }
29687    #[inline]
29688    fn syntax(&self) -> &SyntaxNode {
29689        &self.syntax
29690    }
29691}
29692impl AstNode for Row {
29693    #[inline]
29694    fn can_cast(kind: SyntaxKind) -> bool {
29695        kind == SyntaxKind::ROW
29696    }
29697    #[inline]
29698    fn cast(syntax: SyntaxNode) -> Option<Self> {
29699        if Self::can_cast(syntax.kind()) {
29700            Some(Self { syntax })
29701        } else {
29702            None
29703        }
29704    }
29705    #[inline]
29706    fn syntax(&self) -> &SyntaxNode {
29707        &self.syntax
29708    }
29709}
29710impl AstNode for RowList {
29711    #[inline]
29712    fn can_cast(kind: SyntaxKind) -> bool {
29713        kind == SyntaxKind::ROW_LIST
29714    }
29715    #[inline]
29716    fn cast(syntax: SyntaxNode) -> Option<Self> {
29717        if Self::can_cast(syntax.kind()) {
29718            Some(Self { syntax })
29719        } else {
29720            None
29721        }
29722    }
29723    #[inline]
29724    fn syntax(&self) -> &SyntaxNode {
29725        &self.syntax
29726    }
29727}
29728impl AstNode for RowsFuncOption {
29729    #[inline]
29730    fn can_cast(kind: SyntaxKind) -> bool {
29731        kind == SyntaxKind::ROWS_FUNC_OPTION
29732    }
29733    #[inline]
29734    fn cast(syntax: SyntaxNode) -> Option<Self> {
29735        if Self::can_cast(syntax.kind()) {
29736            Some(Self { syntax })
29737        } else {
29738            None
29739        }
29740    }
29741    #[inline]
29742    fn syntax(&self) -> &SyntaxNode {
29743        &self.syntax
29744    }
29745}
29746impl AstNode for RuleDo {
29747    #[inline]
29748    fn can_cast(kind: SyntaxKind) -> bool {
29749        kind == SyntaxKind::RULE_DO
29750    }
29751    #[inline]
29752    fn cast(syntax: SyntaxNode) -> Option<Self> {
29753        if Self::can_cast(syntax.kind()) {
29754            Some(Self { syntax })
29755        } else {
29756            None
29757        }
29758    }
29759    #[inline]
29760    fn syntax(&self) -> &SyntaxNode {
29761        &self.syntax
29762    }
29763}
29764impl AstNode for RuleOn {
29765    #[inline]
29766    fn can_cast(kind: SyntaxKind) -> bool {
29767        kind == SyntaxKind::RULE_ON
29768    }
29769    #[inline]
29770    fn cast(syntax: SyntaxNode) -> Option<Self> {
29771        if Self::can_cast(syntax.kind()) {
29772            Some(Self { syntax })
29773        } else {
29774            None
29775        }
29776    }
29777    #[inline]
29778    fn syntax(&self) -> &SyntaxNode {
29779        &self.syntax
29780    }
29781}
29782impl AstNode for RuleStmtList {
29783    #[inline]
29784    fn can_cast(kind: SyntaxKind) -> bool {
29785        kind == SyntaxKind::RULE_STMT_LIST
29786    }
29787    #[inline]
29788    fn cast(syntax: SyntaxNode) -> Option<Self> {
29789        if Self::can_cast(syntax.kind()) {
29790            Some(Self { syntax })
29791        } else {
29792            None
29793        }
29794    }
29795    #[inline]
29796    fn syntax(&self) -> &SyntaxNode {
29797        &self.syntax
29798    }
29799}
29800impl AstNode for Savepoint {
29801    #[inline]
29802    fn can_cast(kind: SyntaxKind) -> bool {
29803        kind == SyntaxKind::SAVEPOINT
29804    }
29805    #[inline]
29806    fn cast(syntax: SyntaxNode) -> Option<Self> {
29807        if Self::can_cast(syntax.kind()) {
29808            Some(Self { syntax })
29809        } else {
29810            None
29811        }
29812    }
29813    #[inline]
29814    fn syntax(&self) -> &SyntaxNode {
29815        &self.syntax
29816    }
29817}
29818impl AstNode for SecurityFuncOption {
29819    #[inline]
29820    fn can_cast(kind: SyntaxKind) -> bool {
29821        kind == SyntaxKind::SECURITY_FUNC_OPTION
29822    }
29823    #[inline]
29824    fn cast(syntax: SyntaxNode) -> Option<Self> {
29825        if Self::can_cast(syntax.kind()) {
29826            Some(Self { syntax })
29827        } else {
29828            None
29829        }
29830    }
29831    #[inline]
29832    fn syntax(&self) -> &SyntaxNode {
29833        &self.syntax
29834    }
29835}
29836impl AstNode for SecurityLabel {
29837    #[inline]
29838    fn can_cast(kind: SyntaxKind) -> bool {
29839        kind == SyntaxKind::SECURITY_LABEL
29840    }
29841    #[inline]
29842    fn cast(syntax: SyntaxNode) -> Option<Self> {
29843        if Self::can_cast(syntax.kind()) {
29844            Some(Self { syntax })
29845        } else {
29846            None
29847        }
29848    }
29849    #[inline]
29850    fn syntax(&self) -> &SyntaxNode {
29851        &self.syntax
29852    }
29853}
29854impl AstNode for Select {
29855    #[inline]
29856    fn can_cast(kind: SyntaxKind) -> bool {
29857        kind == SyntaxKind::SELECT
29858    }
29859    #[inline]
29860    fn cast(syntax: SyntaxNode) -> Option<Self> {
29861        if Self::can_cast(syntax.kind()) {
29862            Some(Self { syntax })
29863        } else {
29864            None
29865        }
29866    }
29867    #[inline]
29868    fn syntax(&self) -> &SyntaxNode {
29869        &self.syntax
29870    }
29871}
29872impl AstNode for SelectClause {
29873    #[inline]
29874    fn can_cast(kind: SyntaxKind) -> bool {
29875        kind == SyntaxKind::SELECT_CLAUSE
29876    }
29877    #[inline]
29878    fn cast(syntax: SyntaxNode) -> Option<Self> {
29879        if Self::can_cast(syntax.kind()) {
29880            Some(Self { syntax })
29881        } else {
29882            None
29883        }
29884    }
29885    #[inline]
29886    fn syntax(&self) -> &SyntaxNode {
29887        &self.syntax
29888    }
29889}
29890impl AstNode for SelectInto {
29891    #[inline]
29892    fn can_cast(kind: SyntaxKind) -> bool {
29893        kind == SyntaxKind::SELECT_INTO
29894    }
29895    #[inline]
29896    fn cast(syntax: SyntaxNode) -> Option<Self> {
29897        if Self::can_cast(syntax.kind()) {
29898            Some(Self { syntax })
29899        } else {
29900            None
29901        }
29902    }
29903    #[inline]
29904    fn syntax(&self) -> &SyntaxNode {
29905        &self.syntax
29906    }
29907}
29908impl AstNode for SequenceOption {
29909    #[inline]
29910    fn can_cast(kind: SyntaxKind) -> bool {
29911        kind == SyntaxKind::SEQUENCE_OPTION
29912    }
29913    #[inline]
29914    fn cast(syntax: SyntaxNode) -> Option<Self> {
29915        if Self::can_cast(syntax.kind()) {
29916            Some(Self { syntax })
29917        } else {
29918            None
29919        }
29920    }
29921    #[inline]
29922    fn syntax(&self) -> &SyntaxNode {
29923        &self.syntax
29924    }
29925}
29926impl AstNode for SequenceOptionList {
29927    #[inline]
29928    fn can_cast(kind: SyntaxKind) -> bool {
29929        kind == SyntaxKind::SEQUENCE_OPTION_LIST
29930    }
29931    #[inline]
29932    fn cast(syntax: SyntaxNode) -> Option<Self> {
29933        if Self::can_cast(syntax.kind()) {
29934            Some(Self { syntax })
29935        } else {
29936            None
29937        }
29938    }
29939    #[inline]
29940    fn syntax(&self) -> &SyntaxNode {
29941        &self.syntax
29942    }
29943}
29944impl AstNode for Serializable {
29945    #[inline]
29946    fn can_cast(kind: SyntaxKind) -> bool {
29947        kind == SyntaxKind::SERIALIZABLE
29948    }
29949    #[inline]
29950    fn cast(syntax: SyntaxNode) -> Option<Self> {
29951        if Self::can_cast(syntax.kind()) {
29952            Some(Self { syntax })
29953        } else {
29954            None
29955        }
29956    }
29957    #[inline]
29958    fn syntax(&self) -> &SyntaxNode {
29959        &self.syntax
29960    }
29961}
29962impl AstNode for ServerName {
29963    #[inline]
29964    fn can_cast(kind: SyntaxKind) -> bool {
29965        kind == SyntaxKind::SERVER_NAME
29966    }
29967    #[inline]
29968    fn cast(syntax: SyntaxNode) -> Option<Self> {
29969        if Self::can_cast(syntax.kind()) {
29970            Some(Self { syntax })
29971        } else {
29972            None
29973        }
29974    }
29975    #[inline]
29976    fn syntax(&self) -> &SyntaxNode {
29977        &self.syntax
29978    }
29979}
29980impl AstNode for Set {
29981    #[inline]
29982    fn can_cast(kind: SyntaxKind) -> bool {
29983        kind == SyntaxKind::SET
29984    }
29985    #[inline]
29986    fn cast(syntax: SyntaxNode) -> Option<Self> {
29987        if Self::can_cast(syntax.kind()) {
29988            Some(Self { syntax })
29989        } else {
29990            None
29991        }
29992    }
29993    #[inline]
29994    fn syntax(&self) -> &SyntaxNode {
29995        &self.syntax
29996    }
29997}
29998impl AstNode for SetAccessMethod {
29999    #[inline]
30000    fn can_cast(kind: SyntaxKind) -> bool {
30001        kind == SyntaxKind::SET_ACCESS_METHOD
30002    }
30003    #[inline]
30004    fn cast(syntax: SyntaxNode) -> Option<Self> {
30005        if Self::can_cast(syntax.kind()) {
30006            Some(Self { syntax })
30007        } else {
30008            None
30009        }
30010    }
30011    #[inline]
30012    fn syntax(&self) -> &SyntaxNode {
30013        &self.syntax
30014    }
30015}
30016impl AstNode for SetClause {
30017    #[inline]
30018    fn can_cast(kind: SyntaxKind) -> bool {
30019        kind == SyntaxKind::SET_CLAUSE
30020    }
30021    #[inline]
30022    fn cast(syntax: SyntaxNode) -> Option<Self> {
30023        if Self::can_cast(syntax.kind()) {
30024            Some(Self { syntax })
30025        } else {
30026            None
30027        }
30028    }
30029    #[inline]
30030    fn syntax(&self) -> &SyntaxNode {
30031        &self.syntax
30032    }
30033}
30034impl AstNode for SetColumnList {
30035    #[inline]
30036    fn can_cast(kind: SyntaxKind) -> bool {
30037        kind == SyntaxKind::SET_COLUMN_LIST
30038    }
30039    #[inline]
30040    fn cast(syntax: SyntaxNode) -> Option<Self> {
30041        if Self::can_cast(syntax.kind()) {
30042            Some(Self { syntax })
30043        } else {
30044            None
30045        }
30046    }
30047    #[inline]
30048    fn syntax(&self) -> &SyntaxNode {
30049        &self.syntax
30050    }
30051}
30052impl AstNode for SetCompression {
30053    #[inline]
30054    fn can_cast(kind: SyntaxKind) -> bool {
30055        kind == SyntaxKind::SET_COMPRESSION
30056    }
30057    #[inline]
30058    fn cast(syntax: SyntaxNode) -> Option<Self> {
30059        if Self::can_cast(syntax.kind()) {
30060            Some(Self { syntax })
30061        } else {
30062            None
30063        }
30064    }
30065    #[inline]
30066    fn syntax(&self) -> &SyntaxNode {
30067        &self.syntax
30068    }
30069}
30070impl AstNode for SetConfigParam {
30071    #[inline]
30072    fn can_cast(kind: SyntaxKind) -> bool {
30073        kind == SyntaxKind::SET_CONFIG_PARAM
30074    }
30075    #[inline]
30076    fn cast(syntax: SyntaxNode) -> Option<Self> {
30077        if Self::can_cast(syntax.kind()) {
30078            Some(Self { syntax })
30079        } else {
30080            None
30081        }
30082    }
30083    #[inline]
30084    fn syntax(&self) -> &SyntaxNode {
30085        &self.syntax
30086    }
30087}
30088impl AstNode for SetConstraints {
30089    #[inline]
30090    fn can_cast(kind: SyntaxKind) -> bool {
30091        kind == SyntaxKind::SET_CONSTRAINTS
30092    }
30093    #[inline]
30094    fn cast(syntax: SyntaxNode) -> Option<Self> {
30095        if Self::can_cast(syntax.kind()) {
30096            Some(Self { syntax })
30097        } else {
30098            None
30099        }
30100    }
30101    #[inline]
30102    fn syntax(&self) -> &SyntaxNode {
30103        &self.syntax
30104    }
30105}
30106impl AstNode for SetDefault {
30107    #[inline]
30108    fn can_cast(kind: SyntaxKind) -> bool {
30109        kind == SyntaxKind::SET_DEFAULT
30110    }
30111    #[inline]
30112    fn cast(syntax: SyntaxNode) -> Option<Self> {
30113        if Self::can_cast(syntax.kind()) {
30114            Some(Self { syntax })
30115        } else {
30116            None
30117        }
30118    }
30119    #[inline]
30120    fn syntax(&self) -> &SyntaxNode {
30121        &self.syntax
30122    }
30123}
30124impl AstNode for SetDefaultColumns {
30125    #[inline]
30126    fn can_cast(kind: SyntaxKind) -> bool {
30127        kind == SyntaxKind::SET_DEFAULT_COLUMNS
30128    }
30129    #[inline]
30130    fn cast(syntax: SyntaxNode) -> Option<Self> {
30131        if Self::can_cast(syntax.kind()) {
30132            Some(Self { syntax })
30133        } else {
30134            None
30135        }
30136    }
30137    #[inline]
30138    fn syntax(&self) -> &SyntaxNode {
30139        &self.syntax
30140    }
30141}
30142impl AstNode for SetExpr {
30143    #[inline]
30144    fn can_cast(kind: SyntaxKind) -> bool {
30145        kind == SyntaxKind::SET_EXPR
30146    }
30147    #[inline]
30148    fn cast(syntax: SyntaxNode) -> Option<Self> {
30149        if Self::can_cast(syntax.kind()) {
30150            Some(Self { syntax })
30151        } else {
30152            None
30153        }
30154    }
30155    #[inline]
30156    fn syntax(&self) -> &SyntaxNode {
30157        &self.syntax
30158    }
30159}
30160impl AstNode for SetExprList {
30161    #[inline]
30162    fn can_cast(kind: SyntaxKind) -> bool {
30163        kind == SyntaxKind::SET_EXPR_LIST
30164    }
30165    #[inline]
30166    fn cast(syntax: SyntaxNode) -> Option<Self> {
30167        if Self::can_cast(syntax.kind()) {
30168            Some(Self { syntax })
30169        } else {
30170            None
30171        }
30172    }
30173    #[inline]
30174    fn syntax(&self) -> &SyntaxNode {
30175        &self.syntax
30176    }
30177}
30178impl AstNode for SetExpression {
30179    #[inline]
30180    fn can_cast(kind: SyntaxKind) -> bool {
30181        kind == SyntaxKind::SET_EXPRESSION
30182    }
30183    #[inline]
30184    fn cast(syntax: SyntaxNode) -> Option<Self> {
30185        if Self::can_cast(syntax.kind()) {
30186            Some(Self { syntax })
30187        } else {
30188            None
30189        }
30190    }
30191    #[inline]
30192    fn syntax(&self) -> &SyntaxNode {
30193        &self.syntax
30194    }
30195}
30196impl AstNode for SetFuncOption {
30197    #[inline]
30198    fn can_cast(kind: SyntaxKind) -> bool {
30199        kind == SyntaxKind::SET_FUNC_OPTION
30200    }
30201    #[inline]
30202    fn cast(syntax: SyntaxNode) -> Option<Self> {
30203        if Self::can_cast(syntax.kind()) {
30204            Some(Self { syntax })
30205        } else {
30206            None
30207        }
30208    }
30209    #[inline]
30210    fn syntax(&self) -> &SyntaxNode {
30211        &self.syntax
30212    }
30213}
30214impl AstNode for SetGenerated {
30215    #[inline]
30216    fn can_cast(kind: SyntaxKind) -> bool {
30217        kind == SyntaxKind::SET_GENERATED
30218    }
30219    #[inline]
30220    fn cast(syntax: SyntaxNode) -> Option<Self> {
30221        if Self::can_cast(syntax.kind()) {
30222            Some(Self { syntax })
30223        } else {
30224            None
30225        }
30226    }
30227    #[inline]
30228    fn syntax(&self) -> &SyntaxNode {
30229        &self.syntax
30230    }
30231}
30232impl AstNode for SetGeneratedOptions {
30233    #[inline]
30234    fn can_cast(kind: SyntaxKind) -> bool {
30235        kind == SyntaxKind::SET_GENERATED_OPTIONS
30236    }
30237    #[inline]
30238    fn cast(syntax: SyntaxNode) -> Option<Self> {
30239        if Self::can_cast(syntax.kind()) {
30240            Some(Self { syntax })
30241        } else {
30242            None
30243        }
30244    }
30245    #[inline]
30246    fn syntax(&self) -> &SyntaxNode {
30247        &self.syntax
30248    }
30249}
30250impl AstNode for SetLogged {
30251    #[inline]
30252    fn can_cast(kind: SyntaxKind) -> bool {
30253        kind == SyntaxKind::SET_LOGGED
30254    }
30255    #[inline]
30256    fn cast(syntax: SyntaxNode) -> Option<Self> {
30257        if Self::can_cast(syntax.kind()) {
30258            Some(Self { syntax })
30259        } else {
30260            None
30261        }
30262    }
30263    #[inline]
30264    fn syntax(&self) -> &SyntaxNode {
30265        &self.syntax
30266    }
30267}
30268impl AstNode for SetMultipleColumns {
30269    #[inline]
30270    fn can_cast(kind: SyntaxKind) -> bool {
30271        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
30272    }
30273    #[inline]
30274    fn cast(syntax: SyntaxNode) -> Option<Self> {
30275        if Self::can_cast(syntax.kind()) {
30276            Some(Self { syntax })
30277        } else {
30278            None
30279        }
30280    }
30281    #[inline]
30282    fn syntax(&self) -> &SyntaxNode {
30283        &self.syntax
30284    }
30285}
30286impl AstNode for SetNotNull {
30287    #[inline]
30288    fn can_cast(kind: SyntaxKind) -> bool {
30289        kind == SyntaxKind::SET_NOT_NULL
30290    }
30291    #[inline]
30292    fn cast(syntax: SyntaxNode) -> Option<Self> {
30293        if Self::can_cast(syntax.kind()) {
30294            Some(Self { syntax })
30295        } else {
30296            None
30297        }
30298    }
30299    #[inline]
30300    fn syntax(&self) -> &SyntaxNode {
30301        &self.syntax
30302    }
30303}
30304impl AstNode for SetNullColumns {
30305    #[inline]
30306    fn can_cast(kind: SyntaxKind) -> bool {
30307        kind == SyntaxKind::SET_NULL_COLUMNS
30308    }
30309    #[inline]
30310    fn cast(syntax: SyntaxNode) -> Option<Self> {
30311        if Self::can_cast(syntax.kind()) {
30312            Some(Self { syntax })
30313        } else {
30314            None
30315        }
30316    }
30317    #[inline]
30318    fn syntax(&self) -> &SyntaxNode {
30319        &self.syntax
30320    }
30321}
30322impl AstNode for SetOptions {
30323    #[inline]
30324    fn can_cast(kind: SyntaxKind) -> bool {
30325        kind == SyntaxKind::SET_OPTIONS
30326    }
30327    #[inline]
30328    fn cast(syntax: SyntaxNode) -> Option<Self> {
30329        if Self::can_cast(syntax.kind()) {
30330            Some(Self { syntax })
30331        } else {
30332            None
30333        }
30334    }
30335    #[inline]
30336    fn syntax(&self) -> &SyntaxNode {
30337        &self.syntax
30338    }
30339}
30340impl AstNode for SetOptionsList {
30341    #[inline]
30342    fn can_cast(kind: SyntaxKind) -> bool {
30343        kind == SyntaxKind::SET_OPTIONS_LIST
30344    }
30345    #[inline]
30346    fn cast(syntax: SyntaxNode) -> Option<Self> {
30347        if Self::can_cast(syntax.kind()) {
30348            Some(Self { syntax })
30349        } else {
30350            None
30351        }
30352    }
30353    #[inline]
30354    fn syntax(&self) -> &SyntaxNode {
30355        &self.syntax
30356    }
30357}
30358impl AstNode for SetRole {
30359    #[inline]
30360    fn can_cast(kind: SyntaxKind) -> bool {
30361        kind == SyntaxKind::SET_ROLE
30362    }
30363    #[inline]
30364    fn cast(syntax: SyntaxNode) -> Option<Self> {
30365        if Self::can_cast(syntax.kind()) {
30366            Some(Self { syntax })
30367        } else {
30368            None
30369        }
30370    }
30371    #[inline]
30372    fn syntax(&self) -> &SyntaxNode {
30373        &self.syntax
30374    }
30375}
30376impl AstNode for SetSchema {
30377    #[inline]
30378    fn can_cast(kind: SyntaxKind) -> bool {
30379        kind == SyntaxKind::SET_SCHEMA
30380    }
30381    #[inline]
30382    fn cast(syntax: SyntaxNode) -> Option<Self> {
30383        if Self::can_cast(syntax.kind()) {
30384            Some(Self { syntax })
30385        } else {
30386            None
30387        }
30388    }
30389    #[inline]
30390    fn syntax(&self) -> &SyntaxNode {
30391        &self.syntax
30392    }
30393}
30394impl AstNode for SetSequenceOption {
30395    #[inline]
30396    fn can_cast(kind: SyntaxKind) -> bool {
30397        kind == SyntaxKind::SET_SEQUENCE_OPTION
30398    }
30399    #[inline]
30400    fn cast(syntax: SyntaxNode) -> Option<Self> {
30401        if Self::can_cast(syntax.kind()) {
30402            Some(Self { syntax })
30403        } else {
30404            None
30405        }
30406    }
30407    #[inline]
30408    fn syntax(&self) -> &SyntaxNode {
30409        &self.syntax
30410    }
30411}
30412impl AstNode for SetSessionAuth {
30413    #[inline]
30414    fn can_cast(kind: SyntaxKind) -> bool {
30415        kind == SyntaxKind::SET_SESSION_AUTH
30416    }
30417    #[inline]
30418    fn cast(syntax: SyntaxNode) -> Option<Self> {
30419        if Self::can_cast(syntax.kind()) {
30420            Some(Self { syntax })
30421        } else {
30422            None
30423        }
30424    }
30425    #[inline]
30426    fn syntax(&self) -> &SyntaxNode {
30427        &self.syntax
30428    }
30429}
30430impl AstNode for SetSingleColumn {
30431    #[inline]
30432    fn can_cast(kind: SyntaxKind) -> bool {
30433        kind == SyntaxKind::SET_SINGLE_COLUMN
30434    }
30435    #[inline]
30436    fn cast(syntax: SyntaxNode) -> Option<Self> {
30437        if Self::can_cast(syntax.kind()) {
30438            Some(Self { syntax })
30439        } else {
30440            None
30441        }
30442    }
30443    #[inline]
30444    fn syntax(&self) -> &SyntaxNode {
30445        &self.syntax
30446    }
30447}
30448impl AstNode for SetStatistics {
30449    #[inline]
30450    fn can_cast(kind: SyntaxKind) -> bool {
30451        kind == SyntaxKind::SET_STATISTICS
30452    }
30453    #[inline]
30454    fn cast(syntax: SyntaxNode) -> Option<Self> {
30455        if Self::can_cast(syntax.kind()) {
30456            Some(Self { syntax })
30457        } else {
30458            None
30459        }
30460    }
30461    #[inline]
30462    fn syntax(&self) -> &SyntaxNode {
30463        &self.syntax
30464    }
30465}
30466impl AstNode for SetStorage {
30467    #[inline]
30468    fn can_cast(kind: SyntaxKind) -> bool {
30469        kind == SyntaxKind::SET_STORAGE
30470    }
30471    #[inline]
30472    fn cast(syntax: SyntaxNode) -> Option<Self> {
30473        if Self::can_cast(syntax.kind()) {
30474            Some(Self { syntax })
30475        } else {
30476            None
30477        }
30478    }
30479    #[inline]
30480    fn syntax(&self) -> &SyntaxNode {
30481        &self.syntax
30482    }
30483}
30484impl AstNode for SetTablespace {
30485    #[inline]
30486    fn can_cast(kind: SyntaxKind) -> bool {
30487        kind == SyntaxKind::SET_TABLESPACE
30488    }
30489    #[inline]
30490    fn cast(syntax: SyntaxNode) -> Option<Self> {
30491        if Self::can_cast(syntax.kind()) {
30492            Some(Self { syntax })
30493        } else {
30494            None
30495        }
30496    }
30497    #[inline]
30498    fn syntax(&self) -> &SyntaxNode {
30499        &self.syntax
30500    }
30501}
30502impl AstNode for SetTransaction {
30503    #[inline]
30504    fn can_cast(kind: SyntaxKind) -> bool {
30505        kind == SyntaxKind::SET_TRANSACTION
30506    }
30507    #[inline]
30508    fn cast(syntax: SyntaxNode) -> Option<Self> {
30509        if Self::can_cast(syntax.kind()) {
30510            Some(Self { syntax })
30511        } else {
30512            None
30513        }
30514    }
30515    #[inline]
30516    fn syntax(&self) -> &SyntaxNode {
30517        &self.syntax
30518    }
30519}
30520impl AstNode for SetType {
30521    #[inline]
30522    fn can_cast(kind: SyntaxKind) -> bool {
30523        kind == SyntaxKind::SET_TYPE
30524    }
30525    #[inline]
30526    fn cast(syntax: SyntaxNode) -> Option<Self> {
30527        if Self::can_cast(syntax.kind()) {
30528            Some(Self { syntax })
30529        } else {
30530            None
30531        }
30532    }
30533    #[inline]
30534    fn syntax(&self) -> &SyntaxNode {
30535        &self.syntax
30536    }
30537}
30538impl AstNode for SetUnlogged {
30539    #[inline]
30540    fn can_cast(kind: SyntaxKind) -> bool {
30541        kind == SyntaxKind::SET_UNLOGGED
30542    }
30543    #[inline]
30544    fn cast(syntax: SyntaxNode) -> Option<Self> {
30545        if Self::can_cast(syntax.kind()) {
30546            Some(Self { syntax })
30547        } else {
30548            None
30549        }
30550    }
30551    #[inline]
30552    fn syntax(&self) -> &SyntaxNode {
30553        &self.syntax
30554    }
30555}
30556impl AstNode for SetWithoutCluster {
30557    #[inline]
30558    fn can_cast(kind: SyntaxKind) -> bool {
30559        kind == SyntaxKind::SET_WITHOUT_CLUSTER
30560    }
30561    #[inline]
30562    fn cast(syntax: SyntaxNode) -> Option<Self> {
30563        if Self::can_cast(syntax.kind()) {
30564            Some(Self { syntax })
30565        } else {
30566            None
30567        }
30568    }
30569    #[inline]
30570    fn syntax(&self) -> &SyntaxNode {
30571        &self.syntax
30572    }
30573}
30574impl AstNode for SetWithoutOids {
30575    #[inline]
30576    fn can_cast(kind: SyntaxKind) -> bool {
30577        kind == SyntaxKind::SET_WITHOUT_OIDS
30578    }
30579    #[inline]
30580    fn cast(syntax: SyntaxNode) -> Option<Self> {
30581        if Self::can_cast(syntax.kind()) {
30582            Some(Self { syntax })
30583        } else {
30584            None
30585        }
30586    }
30587    #[inline]
30588    fn syntax(&self) -> &SyntaxNode {
30589        &self.syntax
30590    }
30591}
30592impl AstNode for Show {
30593    #[inline]
30594    fn can_cast(kind: SyntaxKind) -> bool {
30595        kind == SyntaxKind::SHOW
30596    }
30597    #[inline]
30598    fn cast(syntax: SyntaxNode) -> Option<Self> {
30599        if Self::can_cast(syntax.kind()) {
30600            Some(Self { syntax })
30601        } else {
30602            None
30603        }
30604    }
30605    #[inline]
30606    fn syntax(&self) -> &SyntaxNode {
30607        &self.syntax
30608    }
30609}
30610impl AstNode for SimilarTo {
30611    #[inline]
30612    fn can_cast(kind: SyntaxKind) -> bool {
30613        kind == SyntaxKind::SIMILAR_TO
30614    }
30615    #[inline]
30616    fn cast(syntax: SyntaxNode) -> Option<Self> {
30617        if Self::can_cast(syntax.kind()) {
30618            Some(Self { syntax })
30619        } else {
30620            None
30621        }
30622    }
30623    #[inline]
30624    fn syntax(&self) -> &SyntaxNode {
30625        &self.syntax
30626    }
30627}
30628impl AstNode for SliceExpr {
30629    #[inline]
30630    fn can_cast(kind: SyntaxKind) -> bool {
30631        kind == SyntaxKind::SLICE_EXPR
30632    }
30633    #[inline]
30634    fn cast(syntax: SyntaxNode) -> Option<Self> {
30635        if Self::can_cast(syntax.kind()) {
30636            Some(Self { syntax })
30637        } else {
30638            None
30639        }
30640    }
30641    #[inline]
30642    fn syntax(&self) -> &SyntaxNode {
30643        &self.syntax
30644    }
30645}
30646impl AstNode for SomeFn {
30647    #[inline]
30648    fn can_cast(kind: SyntaxKind) -> bool {
30649        kind == SyntaxKind::SOME_FN
30650    }
30651    #[inline]
30652    fn cast(syntax: SyntaxNode) -> Option<Self> {
30653        if Self::can_cast(syntax.kind()) {
30654            Some(Self { syntax })
30655        } else {
30656            None
30657        }
30658    }
30659    #[inline]
30660    fn syntax(&self) -> &SyntaxNode {
30661        &self.syntax
30662    }
30663}
30664impl AstNode for SortAsc {
30665    #[inline]
30666    fn can_cast(kind: SyntaxKind) -> bool {
30667        kind == SyntaxKind::SORT_ASC
30668    }
30669    #[inline]
30670    fn cast(syntax: SyntaxNode) -> Option<Self> {
30671        if Self::can_cast(syntax.kind()) {
30672            Some(Self { syntax })
30673        } else {
30674            None
30675        }
30676    }
30677    #[inline]
30678    fn syntax(&self) -> &SyntaxNode {
30679        &self.syntax
30680    }
30681}
30682impl AstNode for SortBy {
30683    #[inline]
30684    fn can_cast(kind: SyntaxKind) -> bool {
30685        kind == SyntaxKind::SORT_BY
30686    }
30687    #[inline]
30688    fn cast(syntax: SyntaxNode) -> Option<Self> {
30689        if Self::can_cast(syntax.kind()) {
30690            Some(Self { syntax })
30691        } else {
30692            None
30693        }
30694    }
30695    #[inline]
30696    fn syntax(&self) -> &SyntaxNode {
30697        &self.syntax
30698    }
30699}
30700impl AstNode for SortByList {
30701    #[inline]
30702    fn can_cast(kind: SyntaxKind) -> bool {
30703        kind == SyntaxKind::SORT_BY_LIST
30704    }
30705    #[inline]
30706    fn cast(syntax: SyntaxNode) -> Option<Self> {
30707        if Self::can_cast(syntax.kind()) {
30708            Some(Self { syntax })
30709        } else {
30710            None
30711        }
30712    }
30713    #[inline]
30714    fn syntax(&self) -> &SyntaxNode {
30715        &self.syntax
30716    }
30717}
30718impl AstNode for SortDesc {
30719    #[inline]
30720    fn can_cast(kind: SyntaxKind) -> bool {
30721        kind == SyntaxKind::SORT_DESC
30722    }
30723    #[inline]
30724    fn cast(syntax: SyntaxNode) -> Option<Self> {
30725        if Self::can_cast(syntax.kind()) {
30726            Some(Self { syntax })
30727        } else {
30728            None
30729        }
30730    }
30731    #[inline]
30732    fn syntax(&self) -> &SyntaxNode {
30733        &self.syntax
30734    }
30735}
30736impl AstNode for SortUsing {
30737    #[inline]
30738    fn can_cast(kind: SyntaxKind) -> bool {
30739        kind == SyntaxKind::SORT_USING
30740    }
30741    #[inline]
30742    fn cast(syntax: SyntaxNode) -> Option<Self> {
30743        if Self::can_cast(syntax.kind()) {
30744            Some(Self { syntax })
30745        } else {
30746            None
30747        }
30748    }
30749    #[inline]
30750    fn syntax(&self) -> &SyntaxNode {
30751        &self.syntax
30752    }
30753}
30754impl AstNode for SourceFile {
30755    #[inline]
30756    fn can_cast(kind: SyntaxKind) -> bool {
30757        kind == SyntaxKind::SOURCE_FILE
30758    }
30759    #[inline]
30760    fn cast(syntax: SyntaxNode) -> Option<Self> {
30761        if Self::can_cast(syntax.kind()) {
30762            Some(Self { syntax })
30763        } else {
30764            None
30765        }
30766    }
30767    #[inline]
30768    fn syntax(&self) -> &SyntaxNode {
30769        &self.syntax
30770    }
30771}
30772impl AstNode for SourceVertexTable {
30773    #[inline]
30774    fn can_cast(kind: SyntaxKind) -> bool {
30775        kind == SyntaxKind::SOURCE_VERTEX_TABLE
30776    }
30777    #[inline]
30778    fn cast(syntax: SyntaxNode) -> Option<Self> {
30779        if Self::can_cast(syntax.kind()) {
30780            Some(Self { syntax })
30781        } else {
30782            None
30783        }
30784    }
30785    #[inline]
30786    fn syntax(&self) -> &SyntaxNode {
30787        &self.syntax
30788    }
30789}
30790impl AstNode for SplitPartition {
30791    #[inline]
30792    fn can_cast(kind: SyntaxKind) -> bool {
30793        kind == SyntaxKind::SPLIT_PARTITION
30794    }
30795    #[inline]
30796    fn cast(syntax: SyntaxNode) -> Option<Self> {
30797        if Self::can_cast(syntax.kind()) {
30798            Some(Self { syntax })
30799        } else {
30800            None
30801        }
30802    }
30803    #[inline]
30804    fn syntax(&self) -> &SyntaxNode {
30805        &self.syntax
30806    }
30807}
30808impl AstNode for Storage {
30809    #[inline]
30810    fn can_cast(kind: SyntaxKind) -> bool {
30811        kind == SyntaxKind::STORAGE
30812    }
30813    #[inline]
30814    fn cast(syntax: SyntaxNode) -> Option<Self> {
30815        if Self::can_cast(syntax.kind()) {
30816            Some(Self { syntax })
30817        } else {
30818            None
30819        }
30820    }
30821    #[inline]
30822    fn syntax(&self) -> &SyntaxNode {
30823        &self.syntax
30824    }
30825}
30826impl AstNode for StrictFuncOption {
30827    #[inline]
30828    fn can_cast(kind: SyntaxKind) -> bool {
30829        kind == SyntaxKind::STRICT_FUNC_OPTION
30830    }
30831    #[inline]
30832    fn cast(syntax: SyntaxNode) -> Option<Self> {
30833        if Self::can_cast(syntax.kind()) {
30834            Some(Self { syntax })
30835        } else {
30836            None
30837        }
30838    }
30839    #[inline]
30840    fn syntax(&self) -> &SyntaxNode {
30841        &self.syntax
30842    }
30843}
30844impl AstNode for SubstringFn {
30845    #[inline]
30846    fn can_cast(kind: SyntaxKind) -> bool {
30847        kind == SyntaxKind::SUBSTRING_FN
30848    }
30849    #[inline]
30850    fn cast(syntax: SyntaxNode) -> Option<Self> {
30851        if Self::can_cast(syntax.kind()) {
30852            Some(Self { syntax })
30853        } else {
30854            None
30855        }
30856    }
30857    #[inline]
30858    fn syntax(&self) -> &SyntaxNode {
30859        &self.syntax
30860    }
30861}
30862impl AstNode for SupportFuncOption {
30863    #[inline]
30864    fn can_cast(kind: SyntaxKind) -> bool {
30865        kind == SyntaxKind::SUPPORT_FUNC_OPTION
30866    }
30867    #[inline]
30868    fn cast(syntax: SyntaxNode) -> Option<Self> {
30869        if Self::can_cast(syntax.kind()) {
30870            Some(Self { syntax })
30871        } else {
30872            None
30873        }
30874    }
30875    #[inline]
30876    fn syntax(&self) -> &SyntaxNode {
30877        &self.syntax
30878    }
30879}
30880impl AstNode for Table {
30881    #[inline]
30882    fn can_cast(kind: SyntaxKind) -> bool {
30883        kind == SyntaxKind::TABLE
30884    }
30885    #[inline]
30886    fn cast(syntax: SyntaxNode) -> Option<Self> {
30887        if Self::can_cast(syntax.kind()) {
30888            Some(Self { syntax })
30889        } else {
30890            None
30891        }
30892    }
30893    #[inline]
30894    fn syntax(&self) -> &SyntaxNode {
30895        &self.syntax
30896    }
30897}
30898impl AstNode for TableAndColumns {
30899    #[inline]
30900    fn can_cast(kind: SyntaxKind) -> bool {
30901        kind == SyntaxKind::TABLE_AND_COLUMNS
30902    }
30903    #[inline]
30904    fn cast(syntax: SyntaxNode) -> Option<Self> {
30905        if Self::can_cast(syntax.kind()) {
30906            Some(Self { syntax })
30907        } else {
30908            None
30909        }
30910    }
30911    #[inline]
30912    fn syntax(&self) -> &SyntaxNode {
30913        &self.syntax
30914    }
30915}
30916impl AstNode for TableAndColumnsList {
30917    #[inline]
30918    fn can_cast(kind: SyntaxKind) -> bool {
30919        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
30920    }
30921    #[inline]
30922    fn cast(syntax: SyntaxNode) -> Option<Self> {
30923        if Self::can_cast(syntax.kind()) {
30924            Some(Self { syntax })
30925        } else {
30926            None
30927        }
30928    }
30929    #[inline]
30930    fn syntax(&self) -> &SyntaxNode {
30931        &self.syntax
30932    }
30933}
30934impl AstNode for TableArgList {
30935    #[inline]
30936    fn can_cast(kind: SyntaxKind) -> bool {
30937        kind == SyntaxKind::TABLE_ARG_LIST
30938    }
30939    #[inline]
30940    fn cast(syntax: SyntaxNode) -> Option<Self> {
30941        if Self::can_cast(syntax.kind()) {
30942            Some(Self { syntax })
30943        } else {
30944            None
30945        }
30946    }
30947    #[inline]
30948    fn syntax(&self) -> &SyntaxNode {
30949        &self.syntax
30950    }
30951}
30952impl AstNode for TableList {
30953    #[inline]
30954    fn can_cast(kind: SyntaxKind) -> bool {
30955        kind == SyntaxKind::TABLE_LIST
30956    }
30957    #[inline]
30958    fn cast(syntax: SyntaxNode) -> Option<Self> {
30959        if Self::can_cast(syntax.kind()) {
30960            Some(Self { syntax })
30961        } else {
30962            None
30963        }
30964    }
30965    #[inline]
30966    fn syntax(&self) -> &SyntaxNode {
30967        &self.syntax
30968    }
30969}
30970impl AstNode for TablesampleClause {
30971    #[inline]
30972    fn can_cast(kind: SyntaxKind) -> bool {
30973        kind == SyntaxKind::TABLESAMPLE_CLAUSE
30974    }
30975    #[inline]
30976    fn cast(syntax: SyntaxNode) -> Option<Self> {
30977        if Self::can_cast(syntax.kind()) {
30978            Some(Self { syntax })
30979        } else {
30980            None
30981        }
30982    }
30983    #[inline]
30984    fn syntax(&self) -> &SyntaxNode {
30985        &self.syntax
30986    }
30987}
30988impl AstNode for Tablespace {
30989    #[inline]
30990    fn can_cast(kind: SyntaxKind) -> bool {
30991        kind == SyntaxKind::TABLESPACE
30992    }
30993    #[inline]
30994    fn cast(syntax: SyntaxNode) -> Option<Self> {
30995        if Self::can_cast(syntax.kind()) {
30996            Some(Self { syntax })
30997        } else {
30998            None
30999        }
31000    }
31001    #[inline]
31002    fn syntax(&self) -> &SyntaxNode {
31003        &self.syntax
31004    }
31005}
31006impl AstNode for Target {
31007    #[inline]
31008    fn can_cast(kind: SyntaxKind) -> bool {
31009        kind == SyntaxKind::TARGET
31010    }
31011    #[inline]
31012    fn cast(syntax: SyntaxNode) -> Option<Self> {
31013        if Self::can_cast(syntax.kind()) {
31014            Some(Self { syntax })
31015        } else {
31016            None
31017        }
31018    }
31019    #[inline]
31020    fn syntax(&self) -> &SyntaxNode {
31021        &self.syntax
31022    }
31023}
31024impl AstNode for TargetList {
31025    #[inline]
31026    fn can_cast(kind: SyntaxKind) -> bool {
31027        kind == SyntaxKind::TARGET_LIST
31028    }
31029    #[inline]
31030    fn cast(syntax: SyntaxNode) -> Option<Self> {
31031        if Self::can_cast(syntax.kind()) {
31032            Some(Self { syntax })
31033        } else {
31034            None
31035        }
31036    }
31037    #[inline]
31038    fn syntax(&self) -> &SyntaxNode {
31039        &self.syntax
31040    }
31041}
31042impl AstNode for Temp {
31043    #[inline]
31044    fn can_cast(kind: SyntaxKind) -> bool {
31045        kind == SyntaxKind::TEMP
31046    }
31047    #[inline]
31048    fn cast(syntax: SyntaxNode) -> Option<Self> {
31049        if Self::can_cast(syntax.kind()) {
31050            Some(Self { syntax })
31051        } else {
31052            None
31053        }
31054    }
31055    #[inline]
31056    fn syntax(&self) -> &SyntaxNode {
31057        &self.syntax
31058    }
31059}
31060impl AstNode for TimeType {
31061    #[inline]
31062    fn can_cast(kind: SyntaxKind) -> bool {
31063        kind == SyntaxKind::TIME_TYPE
31064    }
31065    #[inline]
31066    fn cast(syntax: SyntaxNode) -> Option<Self> {
31067        if Self::can_cast(syntax.kind()) {
31068            Some(Self { syntax })
31069        } else {
31070            None
31071        }
31072    }
31073    #[inline]
31074    fn syntax(&self) -> &SyntaxNode {
31075        &self.syntax
31076    }
31077}
31078impl AstNode for Timing {
31079    #[inline]
31080    fn can_cast(kind: SyntaxKind) -> bool {
31081        kind == SyntaxKind::TIMING
31082    }
31083    #[inline]
31084    fn cast(syntax: SyntaxNode) -> Option<Self> {
31085        if Self::can_cast(syntax.kind()) {
31086            Some(Self { syntax })
31087        } else {
31088            None
31089        }
31090    }
31091    #[inline]
31092    fn syntax(&self) -> &SyntaxNode {
31093        &self.syntax
31094    }
31095}
31096impl AstNode for TransactionModeList {
31097    #[inline]
31098    fn can_cast(kind: SyntaxKind) -> bool {
31099        kind == SyntaxKind::TRANSACTION_MODE_LIST
31100    }
31101    #[inline]
31102    fn cast(syntax: SyntaxNode) -> Option<Self> {
31103        if Self::can_cast(syntax.kind()) {
31104            Some(Self { syntax })
31105        } else {
31106            None
31107        }
31108    }
31109    #[inline]
31110    fn syntax(&self) -> &SyntaxNode {
31111        &self.syntax
31112    }
31113}
31114impl AstNode for TransformFromFunc {
31115    #[inline]
31116    fn can_cast(kind: SyntaxKind) -> bool {
31117        kind == SyntaxKind::TRANSFORM_FROM_FUNC
31118    }
31119    #[inline]
31120    fn cast(syntax: SyntaxNode) -> Option<Self> {
31121        if Self::can_cast(syntax.kind()) {
31122            Some(Self { syntax })
31123        } else {
31124            None
31125        }
31126    }
31127    #[inline]
31128    fn syntax(&self) -> &SyntaxNode {
31129        &self.syntax
31130    }
31131}
31132impl AstNode for TransformFuncOption {
31133    #[inline]
31134    fn can_cast(kind: SyntaxKind) -> bool {
31135        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
31136    }
31137    #[inline]
31138    fn cast(syntax: SyntaxNode) -> Option<Self> {
31139        if Self::can_cast(syntax.kind()) {
31140            Some(Self { syntax })
31141        } else {
31142            None
31143        }
31144    }
31145    #[inline]
31146    fn syntax(&self) -> &SyntaxNode {
31147        &self.syntax
31148    }
31149}
31150impl AstNode for TransformToFunc {
31151    #[inline]
31152    fn can_cast(kind: SyntaxKind) -> bool {
31153        kind == SyntaxKind::TRANSFORM_TO_FUNC
31154    }
31155    #[inline]
31156    fn cast(syntax: SyntaxNode) -> Option<Self> {
31157        if Self::can_cast(syntax.kind()) {
31158            Some(Self { syntax })
31159        } else {
31160            None
31161        }
31162    }
31163    #[inline]
31164    fn syntax(&self) -> &SyntaxNode {
31165        &self.syntax
31166    }
31167}
31168impl AstNode for TriggerEvent {
31169    #[inline]
31170    fn can_cast(kind: SyntaxKind) -> bool {
31171        kind == SyntaxKind::TRIGGER_EVENT
31172    }
31173    #[inline]
31174    fn cast(syntax: SyntaxNode) -> Option<Self> {
31175        if Self::can_cast(syntax.kind()) {
31176            Some(Self { syntax })
31177        } else {
31178            None
31179        }
31180    }
31181    #[inline]
31182    fn syntax(&self) -> &SyntaxNode {
31183        &self.syntax
31184    }
31185}
31186impl AstNode for TriggerEventList {
31187    #[inline]
31188    fn can_cast(kind: SyntaxKind) -> bool {
31189        kind == SyntaxKind::TRIGGER_EVENT_LIST
31190    }
31191    #[inline]
31192    fn cast(syntax: SyntaxNode) -> Option<Self> {
31193        if Self::can_cast(syntax.kind()) {
31194            Some(Self { syntax })
31195        } else {
31196            None
31197        }
31198    }
31199    #[inline]
31200    fn syntax(&self) -> &SyntaxNode {
31201        &self.syntax
31202    }
31203}
31204impl AstNode for TriggerEventUpdate {
31205    #[inline]
31206    fn can_cast(kind: SyntaxKind) -> bool {
31207        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
31208    }
31209    #[inline]
31210    fn cast(syntax: SyntaxNode) -> Option<Self> {
31211        if Self::can_cast(syntax.kind()) {
31212            Some(Self { syntax })
31213        } else {
31214            None
31215        }
31216    }
31217    #[inline]
31218    fn syntax(&self) -> &SyntaxNode {
31219        &self.syntax
31220    }
31221}
31222impl AstNode for TrimFn {
31223    #[inline]
31224    fn can_cast(kind: SyntaxKind) -> bool {
31225        kind == SyntaxKind::TRIM_FN
31226    }
31227    #[inline]
31228    fn cast(syntax: SyntaxNode) -> Option<Self> {
31229        if Self::can_cast(syntax.kind()) {
31230            Some(Self { syntax })
31231        } else {
31232            None
31233        }
31234    }
31235    #[inline]
31236    fn syntax(&self) -> &SyntaxNode {
31237        &self.syntax
31238    }
31239}
31240impl AstNode for Truncate {
31241    #[inline]
31242    fn can_cast(kind: SyntaxKind) -> bool {
31243        kind == SyntaxKind::TRUNCATE
31244    }
31245    #[inline]
31246    fn cast(syntax: SyntaxNode) -> Option<Self> {
31247        if Self::can_cast(syntax.kind()) {
31248            Some(Self { syntax })
31249        } else {
31250            None
31251        }
31252    }
31253    #[inline]
31254    fn syntax(&self) -> &SyntaxNode {
31255        &self.syntax
31256    }
31257}
31258impl AstNode for TupleExpr {
31259    #[inline]
31260    fn can_cast(kind: SyntaxKind) -> bool {
31261        kind == SyntaxKind::TUPLE_EXPR
31262    }
31263    #[inline]
31264    fn cast(syntax: SyntaxNode) -> Option<Self> {
31265        if Self::can_cast(syntax.kind()) {
31266            Some(Self { syntax })
31267        } else {
31268            None
31269        }
31270    }
31271    #[inline]
31272    fn syntax(&self) -> &SyntaxNode {
31273        &self.syntax
31274    }
31275}
31276impl AstNode for UnicodeNormalForm {
31277    #[inline]
31278    fn can_cast(kind: SyntaxKind) -> bool {
31279        kind == SyntaxKind::UNICODE_NORMAL_FORM
31280    }
31281    #[inline]
31282    fn cast(syntax: SyntaxNode) -> Option<Self> {
31283        if Self::can_cast(syntax.kind()) {
31284            Some(Self { syntax })
31285        } else {
31286            None
31287        }
31288    }
31289    #[inline]
31290    fn syntax(&self) -> &SyntaxNode {
31291        &self.syntax
31292    }
31293}
31294impl AstNode for UniqueConstraint {
31295    #[inline]
31296    fn can_cast(kind: SyntaxKind) -> bool {
31297        kind == SyntaxKind::UNIQUE_CONSTRAINT
31298    }
31299    #[inline]
31300    fn cast(syntax: SyntaxNode) -> Option<Self> {
31301        if Self::can_cast(syntax.kind()) {
31302            Some(Self { syntax })
31303        } else {
31304            None
31305        }
31306    }
31307    #[inline]
31308    fn syntax(&self) -> &SyntaxNode {
31309        &self.syntax
31310    }
31311}
31312impl AstNode for Unlisten {
31313    #[inline]
31314    fn can_cast(kind: SyntaxKind) -> bool {
31315        kind == SyntaxKind::UNLISTEN
31316    }
31317    #[inline]
31318    fn cast(syntax: SyntaxNode) -> Option<Self> {
31319        if Self::can_cast(syntax.kind()) {
31320            Some(Self { syntax })
31321        } else {
31322            None
31323        }
31324    }
31325    #[inline]
31326    fn syntax(&self) -> &SyntaxNode {
31327        &self.syntax
31328    }
31329}
31330impl AstNode for Unlogged {
31331    #[inline]
31332    fn can_cast(kind: SyntaxKind) -> bool {
31333        kind == SyntaxKind::UNLOGGED
31334    }
31335    #[inline]
31336    fn cast(syntax: SyntaxNode) -> Option<Self> {
31337        if Self::can_cast(syntax.kind()) {
31338            Some(Self { syntax })
31339        } else {
31340            None
31341        }
31342    }
31343    #[inline]
31344    fn syntax(&self) -> &SyntaxNode {
31345        &self.syntax
31346    }
31347}
31348impl AstNode for Update {
31349    #[inline]
31350    fn can_cast(kind: SyntaxKind) -> bool {
31351        kind == SyntaxKind::UPDATE
31352    }
31353    #[inline]
31354    fn cast(syntax: SyntaxNode) -> Option<Self> {
31355        if Self::can_cast(syntax.kind()) {
31356            Some(Self { syntax })
31357        } else {
31358            None
31359        }
31360    }
31361    #[inline]
31362    fn syntax(&self) -> &SyntaxNode {
31363        &self.syntax
31364    }
31365}
31366impl AstNode for UsingClause {
31367    #[inline]
31368    fn can_cast(kind: SyntaxKind) -> bool {
31369        kind == SyntaxKind::USING_CLAUSE
31370    }
31371    #[inline]
31372    fn cast(syntax: SyntaxNode) -> Option<Self> {
31373        if Self::can_cast(syntax.kind()) {
31374            Some(Self { syntax })
31375        } else {
31376            None
31377        }
31378    }
31379    #[inline]
31380    fn syntax(&self) -> &SyntaxNode {
31381        &self.syntax
31382    }
31383}
31384impl AstNode for UsingExprClause {
31385    #[inline]
31386    fn can_cast(kind: SyntaxKind) -> bool {
31387        kind == SyntaxKind::USING_EXPR_CLAUSE
31388    }
31389    #[inline]
31390    fn cast(syntax: SyntaxNode) -> Option<Self> {
31391        if Self::can_cast(syntax.kind()) {
31392            Some(Self { syntax })
31393        } else {
31394            None
31395        }
31396    }
31397    #[inline]
31398    fn syntax(&self) -> &SyntaxNode {
31399        &self.syntax
31400    }
31401}
31402impl AstNode for UsingIndex {
31403    #[inline]
31404    fn can_cast(kind: SyntaxKind) -> bool {
31405        kind == SyntaxKind::USING_INDEX
31406    }
31407    #[inline]
31408    fn cast(syntax: SyntaxNode) -> Option<Self> {
31409        if Self::can_cast(syntax.kind()) {
31410            Some(Self { syntax })
31411        } else {
31412            None
31413        }
31414    }
31415    #[inline]
31416    fn syntax(&self) -> &SyntaxNode {
31417        &self.syntax
31418    }
31419}
31420impl AstNode for UsingMethod {
31421    #[inline]
31422    fn can_cast(kind: SyntaxKind) -> bool {
31423        kind == SyntaxKind::USING_METHOD
31424    }
31425    #[inline]
31426    fn cast(syntax: SyntaxNode) -> Option<Self> {
31427        if Self::can_cast(syntax.kind()) {
31428            Some(Self { syntax })
31429        } else {
31430            None
31431        }
31432    }
31433    #[inline]
31434    fn syntax(&self) -> &SyntaxNode {
31435        &self.syntax
31436    }
31437}
31438impl AstNode for UsingOnClause {
31439    #[inline]
31440    fn can_cast(kind: SyntaxKind) -> bool {
31441        kind == SyntaxKind::USING_ON_CLAUSE
31442    }
31443    #[inline]
31444    fn cast(syntax: SyntaxNode) -> Option<Self> {
31445        if Self::can_cast(syntax.kind()) {
31446            Some(Self { syntax })
31447        } else {
31448            None
31449        }
31450    }
31451    #[inline]
31452    fn syntax(&self) -> &SyntaxNode {
31453        &self.syntax
31454    }
31455}
31456impl AstNode for Vacuum {
31457    #[inline]
31458    fn can_cast(kind: SyntaxKind) -> bool {
31459        kind == SyntaxKind::VACUUM
31460    }
31461    #[inline]
31462    fn cast(syntax: SyntaxNode) -> Option<Self> {
31463        if Self::can_cast(syntax.kind()) {
31464            Some(Self { syntax })
31465        } else {
31466            None
31467        }
31468    }
31469    #[inline]
31470    fn syntax(&self) -> &SyntaxNode {
31471        &self.syntax
31472    }
31473}
31474impl AstNode for VacuumOption {
31475    #[inline]
31476    fn can_cast(kind: SyntaxKind) -> bool {
31477        kind == SyntaxKind::VACUUM_OPTION
31478    }
31479    #[inline]
31480    fn cast(syntax: SyntaxNode) -> Option<Self> {
31481        if Self::can_cast(syntax.kind()) {
31482            Some(Self { syntax })
31483        } else {
31484            None
31485        }
31486    }
31487    #[inline]
31488    fn syntax(&self) -> &SyntaxNode {
31489        &self.syntax
31490    }
31491}
31492impl AstNode for VacuumOptionList {
31493    #[inline]
31494    fn can_cast(kind: SyntaxKind) -> bool {
31495        kind == SyntaxKind::VACUUM_OPTION_LIST
31496    }
31497    #[inline]
31498    fn cast(syntax: SyntaxNode) -> Option<Self> {
31499        if Self::can_cast(syntax.kind()) {
31500            Some(Self { syntax })
31501        } else {
31502            None
31503        }
31504    }
31505    #[inline]
31506    fn syntax(&self) -> &SyntaxNode {
31507        &self.syntax
31508    }
31509}
31510impl AstNode for ValidateConstraint {
31511    #[inline]
31512    fn can_cast(kind: SyntaxKind) -> bool {
31513        kind == SyntaxKind::VALIDATE_CONSTRAINT
31514    }
31515    #[inline]
31516    fn cast(syntax: SyntaxNode) -> Option<Self> {
31517        if Self::can_cast(syntax.kind()) {
31518            Some(Self { syntax })
31519        } else {
31520            None
31521        }
31522    }
31523    #[inline]
31524    fn syntax(&self) -> &SyntaxNode {
31525        &self.syntax
31526    }
31527}
31528impl AstNode for Values {
31529    #[inline]
31530    fn can_cast(kind: SyntaxKind) -> bool {
31531        kind == SyntaxKind::VALUES
31532    }
31533    #[inline]
31534    fn cast(syntax: SyntaxNode) -> Option<Self> {
31535        if Self::can_cast(syntax.kind()) {
31536            Some(Self { syntax })
31537        } else {
31538            None
31539        }
31540    }
31541    #[inline]
31542    fn syntax(&self) -> &SyntaxNode {
31543        &self.syntax
31544    }
31545}
31546impl AstNode for Variant {
31547    #[inline]
31548    fn can_cast(kind: SyntaxKind) -> bool {
31549        kind == SyntaxKind::VARIANT
31550    }
31551    #[inline]
31552    fn cast(syntax: SyntaxNode) -> Option<Self> {
31553        if Self::can_cast(syntax.kind()) {
31554            Some(Self { syntax })
31555        } else {
31556            None
31557        }
31558    }
31559    #[inline]
31560    fn syntax(&self) -> &SyntaxNode {
31561        &self.syntax
31562    }
31563}
31564impl AstNode for VariantList {
31565    #[inline]
31566    fn can_cast(kind: SyntaxKind) -> bool {
31567        kind == SyntaxKind::VARIANT_LIST
31568    }
31569    #[inline]
31570    fn cast(syntax: SyntaxNode) -> Option<Self> {
31571        if Self::can_cast(syntax.kind()) {
31572            Some(Self { syntax })
31573        } else {
31574            None
31575        }
31576    }
31577    #[inline]
31578    fn syntax(&self) -> &SyntaxNode {
31579        &self.syntax
31580    }
31581}
31582impl AstNode for VertexPattern {
31583    #[inline]
31584    fn can_cast(kind: SyntaxKind) -> bool {
31585        kind == SyntaxKind::VERTEX_PATTERN
31586    }
31587    #[inline]
31588    fn cast(syntax: SyntaxNode) -> Option<Self> {
31589        if Self::can_cast(syntax.kind()) {
31590            Some(Self { syntax })
31591        } else {
31592            None
31593        }
31594    }
31595    #[inline]
31596    fn syntax(&self) -> &SyntaxNode {
31597        &self.syntax
31598    }
31599}
31600impl AstNode for VertexTableDef {
31601    #[inline]
31602    fn can_cast(kind: SyntaxKind) -> bool {
31603        kind == SyntaxKind::VERTEX_TABLE_DEF
31604    }
31605    #[inline]
31606    fn cast(syntax: SyntaxNode) -> Option<Self> {
31607        if Self::can_cast(syntax.kind()) {
31608            Some(Self { syntax })
31609        } else {
31610            None
31611        }
31612    }
31613    #[inline]
31614    fn syntax(&self) -> &SyntaxNode {
31615        &self.syntax
31616    }
31617}
31618impl AstNode for VertexTables {
31619    #[inline]
31620    fn can_cast(kind: SyntaxKind) -> bool {
31621        kind == SyntaxKind::VERTEX_TABLES
31622    }
31623    #[inline]
31624    fn cast(syntax: SyntaxNode) -> Option<Self> {
31625        if Self::can_cast(syntax.kind()) {
31626            Some(Self { syntax })
31627        } else {
31628            None
31629        }
31630    }
31631    #[inline]
31632    fn syntax(&self) -> &SyntaxNode {
31633        &self.syntax
31634    }
31635}
31636impl AstNode for VolatilityFuncOption {
31637    #[inline]
31638    fn can_cast(kind: SyntaxKind) -> bool {
31639        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
31640    }
31641    #[inline]
31642    fn cast(syntax: SyntaxNode) -> Option<Self> {
31643        if Self::can_cast(syntax.kind()) {
31644            Some(Self { syntax })
31645        } else {
31646            None
31647        }
31648    }
31649    #[inline]
31650    fn syntax(&self) -> &SyntaxNode {
31651        &self.syntax
31652    }
31653}
31654impl AstNode for WhenClause {
31655    #[inline]
31656    fn can_cast(kind: SyntaxKind) -> bool {
31657        kind == SyntaxKind::WHEN_CLAUSE
31658    }
31659    #[inline]
31660    fn cast(syntax: SyntaxNode) -> Option<Self> {
31661        if Self::can_cast(syntax.kind()) {
31662            Some(Self { syntax })
31663        } else {
31664            None
31665        }
31666    }
31667    #[inline]
31668    fn syntax(&self) -> &SyntaxNode {
31669        &self.syntax
31670    }
31671}
31672impl AstNode for WhenClauseList {
31673    #[inline]
31674    fn can_cast(kind: SyntaxKind) -> bool {
31675        kind == SyntaxKind::WHEN_CLAUSE_LIST
31676    }
31677    #[inline]
31678    fn cast(syntax: SyntaxNode) -> Option<Self> {
31679        if Self::can_cast(syntax.kind()) {
31680            Some(Self { syntax })
31681        } else {
31682            None
31683        }
31684    }
31685    #[inline]
31686    fn syntax(&self) -> &SyntaxNode {
31687        &self.syntax
31688    }
31689}
31690impl AstNode for WhenCondition {
31691    #[inline]
31692    fn can_cast(kind: SyntaxKind) -> bool {
31693        kind == SyntaxKind::WHEN_CONDITION
31694    }
31695    #[inline]
31696    fn cast(syntax: SyntaxNode) -> Option<Self> {
31697        if Self::can_cast(syntax.kind()) {
31698            Some(Self { syntax })
31699        } else {
31700            None
31701        }
31702    }
31703    #[inline]
31704    fn syntax(&self) -> &SyntaxNode {
31705        &self.syntax
31706    }
31707}
31708impl AstNode for WhereClause {
31709    #[inline]
31710    fn can_cast(kind: SyntaxKind) -> bool {
31711        kind == SyntaxKind::WHERE_CLAUSE
31712    }
31713    #[inline]
31714    fn cast(syntax: SyntaxNode) -> Option<Self> {
31715        if Self::can_cast(syntax.kind()) {
31716            Some(Self { syntax })
31717        } else {
31718            None
31719        }
31720    }
31721    #[inline]
31722    fn syntax(&self) -> &SyntaxNode {
31723        &self.syntax
31724    }
31725}
31726impl AstNode for WhereConditionClause {
31727    #[inline]
31728    fn can_cast(kind: SyntaxKind) -> bool {
31729        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
31730    }
31731    #[inline]
31732    fn cast(syntax: SyntaxNode) -> Option<Self> {
31733        if Self::can_cast(syntax.kind()) {
31734            Some(Self { syntax })
31735        } else {
31736            None
31737        }
31738    }
31739    #[inline]
31740    fn syntax(&self) -> &SyntaxNode {
31741        &self.syntax
31742    }
31743}
31744impl AstNode for WhereCurrentOf {
31745    #[inline]
31746    fn can_cast(kind: SyntaxKind) -> bool {
31747        kind == SyntaxKind::WHERE_CURRENT_OF
31748    }
31749    #[inline]
31750    fn cast(syntax: SyntaxNode) -> Option<Self> {
31751        if Self::can_cast(syntax.kind()) {
31752            Some(Self { syntax })
31753        } else {
31754            None
31755        }
31756    }
31757    #[inline]
31758    fn syntax(&self) -> &SyntaxNode {
31759        &self.syntax
31760    }
31761}
31762impl AstNode for WindowClause {
31763    #[inline]
31764    fn can_cast(kind: SyntaxKind) -> bool {
31765        kind == SyntaxKind::WINDOW_CLAUSE
31766    }
31767    #[inline]
31768    fn cast(syntax: SyntaxNode) -> Option<Self> {
31769        if Self::can_cast(syntax.kind()) {
31770            Some(Self { syntax })
31771        } else {
31772            None
31773        }
31774    }
31775    #[inline]
31776    fn syntax(&self) -> &SyntaxNode {
31777        &self.syntax
31778    }
31779}
31780impl AstNode for WindowDef {
31781    #[inline]
31782    fn can_cast(kind: SyntaxKind) -> bool {
31783        kind == SyntaxKind::WINDOW_DEF
31784    }
31785    #[inline]
31786    fn cast(syntax: SyntaxNode) -> Option<Self> {
31787        if Self::can_cast(syntax.kind()) {
31788            Some(Self { syntax })
31789        } else {
31790            None
31791        }
31792    }
31793    #[inline]
31794    fn syntax(&self) -> &SyntaxNode {
31795        &self.syntax
31796    }
31797}
31798impl AstNode for WindowFuncOption {
31799    #[inline]
31800    fn can_cast(kind: SyntaxKind) -> bool {
31801        kind == SyntaxKind::WINDOW_FUNC_OPTION
31802    }
31803    #[inline]
31804    fn cast(syntax: SyntaxNode) -> Option<Self> {
31805        if Self::can_cast(syntax.kind()) {
31806            Some(Self { syntax })
31807        } else {
31808            None
31809        }
31810    }
31811    #[inline]
31812    fn syntax(&self) -> &SyntaxNode {
31813        &self.syntax
31814    }
31815}
31816impl AstNode for WindowSpec {
31817    #[inline]
31818    fn can_cast(kind: SyntaxKind) -> bool {
31819        kind == SyntaxKind::WINDOW_SPEC
31820    }
31821    #[inline]
31822    fn cast(syntax: SyntaxNode) -> Option<Self> {
31823        if Self::can_cast(syntax.kind()) {
31824            Some(Self { syntax })
31825        } else {
31826            None
31827        }
31828    }
31829    #[inline]
31830    fn syntax(&self) -> &SyntaxNode {
31831        &self.syntax
31832    }
31833}
31834impl AstNode for WithCheckExprClause {
31835    #[inline]
31836    fn can_cast(kind: SyntaxKind) -> bool {
31837        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
31838    }
31839    #[inline]
31840    fn cast(syntax: SyntaxNode) -> Option<Self> {
31841        if Self::can_cast(syntax.kind()) {
31842            Some(Self { syntax })
31843        } else {
31844            None
31845        }
31846    }
31847    #[inline]
31848    fn syntax(&self) -> &SyntaxNode {
31849        &self.syntax
31850    }
31851}
31852impl AstNode for WithClause {
31853    #[inline]
31854    fn can_cast(kind: SyntaxKind) -> bool {
31855        kind == SyntaxKind::WITH_CLAUSE
31856    }
31857    #[inline]
31858    fn cast(syntax: SyntaxNode) -> Option<Self> {
31859        if Self::can_cast(syntax.kind()) {
31860            Some(Self { syntax })
31861        } else {
31862            None
31863        }
31864    }
31865    #[inline]
31866    fn syntax(&self) -> &SyntaxNode {
31867        &self.syntax
31868    }
31869}
31870impl AstNode for WithData {
31871    #[inline]
31872    fn can_cast(kind: SyntaxKind) -> bool {
31873        kind == SyntaxKind::WITH_DATA
31874    }
31875    #[inline]
31876    fn cast(syntax: SyntaxNode) -> Option<Self> {
31877        if Self::can_cast(syntax.kind()) {
31878            Some(Self { syntax })
31879        } else {
31880            None
31881        }
31882    }
31883    #[inline]
31884    fn syntax(&self) -> &SyntaxNode {
31885        &self.syntax
31886    }
31887}
31888impl AstNode for WithNoData {
31889    #[inline]
31890    fn can_cast(kind: SyntaxKind) -> bool {
31891        kind == SyntaxKind::WITH_NO_DATA
31892    }
31893    #[inline]
31894    fn cast(syntax: SyntaxNode) -> Option<Self> {
31895        if Self::can_cast(syntax.kind()) {
31896            Some(Self { syntax })
31897        } else {
31898            None
31899        }
31900    }
31901    #[inline]
31902    fn syntax(&self) -> &SyntaxNode {
31903        &self.syntax
31904    }
31905}
31906impl AstNode for WithOptions {
31907    #[inline]
31908    fn can_cast(kind: SyntaxKind) -> bool {
31909        kind == SyntaxKind::WITH_OPTIONS
31910    }
31911    #[inline]
31912    fn cast(syntax: SyntaxNode) -> Option<Self> {
31913        if Self::can_cast(syntax.kind()) {
31914            Some(Self { syntax })
31915        } else {
31916            None
31917        }
31918    }
31919    #[inline]
31920    fn syntax(&self) -> &SyntaxNode {
31921        &self.syntax
31922    }
31923}
31924impl AstNode for WithParams {
31925    #[inline]
31926    fn can_cast(kind: SyntaxKind) -> bool {
31927        kind == SyntaxKind::WITH_PARAMS
31928    }
31929    #[inline]
31930    fn cast(syntax: SyntaxNode) -> Option<Self> {
31931        if Self::can_cast(syntax.kind()) {
31932            Some(Self { syntax })
31933        } else {
31934            None
31935        }
31936    }
31937    #[inline]
31938    fn syntax(&self) -> &SyntaxNode {
31939        &self.syntax
31940    }
31941}
31942impl AstNode for WithTable {
31943    #[inline]
31944    fn can_cast(kind: SyntaxKind) -> bool {
31945        kind == SyntaxKind::WITH_TABLE
31946    }
31947    #[inline]
31948    fn cast(syntax: SyntaxNode) -> Option<Self> {
31949        if Self::can_cast(syntax.kind()) {
31950            Some(Self { syntax })
31951        } else {
31952            None
31953        }
31954    }
31955    #[inline]
31956    fn syntax(&self) -> &SyntaxNode {
31957        &self.syntax
31958    }
31959}
31960impl AstNode for WithTimezone {
31961    #[inline]
31962    fn can_cast(kind: SyntaxKind) -> bool {
31963        kind == SyntaxKind::WITH_TIMEZONE
31964    }
31965    #[inline]
31966    fn cast(syntax: SyntaxNode) -> Option<Self> {
31967        if Self::can_cast(syntax.kind()) {
31968            Some(Self { syntax })
31969        } else {
31970            None
31971        }
31972    }
31973    #[inline]
31974    fn syntax(&self) -> &SyntaxNode {
31975        &self.syntax
31976    }
31977}
31978impl AstNode for WithinClause {
31979    #[inline]
31980    fn can_cast(kind: SyntaxKind) -> bool {
31981        kind == SyntaxKind::WITHIN_CLAUSE
31982    }
31983    #[inline]
31984    fn cast(syntax: SyntaxNode) -> Option<Self> {
31985        if Self::can_cast(syntax.kind()) {
31986            Some(Self { syntax })
31987        } else {
31988            None
31989        }
31990    }
31991    #[inline]
31992    fn syntax(&self) -> &SyntaxNode {
31993        &self.syntax
31994    }
31995}
31996impl AstNode for WithoutOids {
31997    #[inline]
31998    fn can_cast(kind: SyntaxKind) -> bool {
31999        kind == SyntaxKind::WITHOUT_OIDS
32000    }
32001    #[inline]
32002    fn cast(syntax: SyntaxNode) -> Option<Self> {
32003        if Self::can_cast(syntax.kind()) {
32004            Some(Self { syntax })
32005        } else {
32006            None
32007        }
32008    }
32009    #[inline]
32010    fn syntax(&self) -> &SyntaxNode {
32011        &self.syntax
32012    }
32013}
32014impl AstNode for WithoutTimezone {
32015    #[inline]
32016    fn can_cast(kind: SyntaxKind) -> bool {
32017        kind == SyntaxKind::WITHOUT_TIMEZONE
32018    }
32019    #[inline]
32020    fn cast(syntax: SyntaxNode) -> Option<Self> {
32021        if Self::can_cast(syntax.kind()) {
32022            Some(Self { syntax })
32023        } else {
32024            None
32025        }
32026    }
32027    #[inline]
32028    fn syntax(&self) -> &SyntaxNode {
32029        &self.syntax
32030    }
32031}
32032impl AstNode for XmlColumnOption {
32033    #[inline]
32034    fn can_cast(kind: SyntaxKind) -> bool {
32035        kind == SyntaxKind::XML_COLUMN_OPTION
32036    }
32037    #[inline]
32038    fn cast(syntax: SyntaxNode) -> Option<Self> {
32039        if Self::can_cast(syntax.kind()) {
32040            Some(Self { syntax })
32041        } else {
32042            None
32043        }
32044    }
32045    #[inline]
32046    fn syntax(&self) -> &SyntaxNode {
32047        &self.syntax
32048    }
32049}
32050impl AstNode for XmlColumnOptionList {
32051    #[inline]
32052    fn can_cast(kind: SyntaxKind) -> bool {
32053        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
32054    }
32055    #[inline]
32056    fn cast(syntax: SyntaxNode) -> Option<Self> {
32057        if Self::can_cast(syntax.kind()) {
32058            Some(Self { syntax })
32059        } else {
32060            None
32061        }
32062    }
32063    #[inline]
32064    fn syntax(&self) -> &SyntaxNode {
32065        &self.syntax
32066    }
32067}
32068impl AstNode for XmlElementFn {
32069    #[inline]
32070    fn can_cast(kind: SyntaxKind) -> bool {
32071        kind == SyntaxKind::XML_ELEMENT_FN
32072    }
32073    #[inline]
32074    fn cast(syntax: SyntaxNode) -> Option<Self> {
32075        if Self::can_cast(syntax.kind()) {
32076            Some(Self { syntax })
32077        } else {
32078            None
32079        }
32080    }
32081    #[inline]
32082    fn syntax(&self) -> &SyntaxNode {
32083        &self.syntax
32084    }
32085}
32086impl AstNode for XmlExistsFn {
32087    #[inline]
32088    fn can_cast(kind: SyntaxKind) -> bool {
32089        kind == SyntaxKind::XML_EXISTS_FN
32090    }
32091    #[inline]
32092    fn cast(syntax: SyntaxNode) -> Option<Self> {
32093        if Self::can_cast(syntax.kind()) {
32094            Some(Self { syntax })
32095        } else {
32096            None
32097        }
32098    }
32099    #[inline]
32100    fn syntax(&self) -> &SyntaxNode {
32101        &self.syntax
32102    }
32103}
32104impl AstNode for XmlForestFn {
32105    #[inline]
32106    fn can_cast(kind: SyntaxKind) -> bool {
32107        kind == SyntaxKind::XML_FOREST_FN
32108    }
32109    #[inline]
32110    fn cast(syntax: SyntaxNode) -> Option<Self> {
32111        if Self::can_cast(syntax.kind()) {
32112            Some(Self { syntax })
32113        } else {
32114            None
32115        }
32116    }
32117    #[inline]
32118    fn syntax(&self) -> &SyntaxNode {
32119        &self.syntax
32120    }
32121}
32122impl AstNode for XmlNamespace {
32123    #[inline]
32124    fn can_cast(kind: SyntaxKind) -> bool {
32125        kind == SyntaxKind::XML_NAMESPACE
32126    }
32127    #[inline]
32128    fn cast(syntax: SyntaxNode) -> Option<Self> {
32129        if Self::can_cast(syntax.kind()) {
32130            Some(Self { syntax })
32131        } else {
32132            None
32133        }
32134    }
32135    #[inline]
32136    fn syntax(&self) -> &SyntaxNode {
32137        &self.syntax
32138    }
32139}
32140impl AstNode for XmlNamespaceList {
32141    #[inline]
32142    fn can_cast(kind: SyntaxKind) -> bool {
32143        kind == SyntaxKind::XML_NAMESPACE_LIST
32144    }
32145    #[inline]
32146    fn cast(syntax: SyntaxNode) -> Option<Self> {
32147        if Self::can_cast(syntax.kind()) {
32148            Some(Self { syntax })
32149        } else {
32150            None
32151        }
32152    }
32153    #[inline]
32154    fn syntax(&self) -> &SyntaxNode {
32155        &self.syntax
32156    }
32157}
32158impl AstNode for XmlParseFn {
32159    #[inline]
32160    fn can_cast(kind: SyntaxKind) -> bool {
32161        kind == SyntaxKind::XML_PARSE_FN
32162    }
32163    #[inline]
32164    fn cast(syntax: SyntaxNode) -> Option<Self> {
32165        if Self::can_cast(syntax.kind()) {
32166            Some(Self { syntax })
32167        } else {
32168            None
32169        }
32170    }
32171    #[inline]
32172    fn syntax(&self) -> &SyntaxNode {
32173        &self.syntax
32174    }
32175}
32176impl AstNode for XmlPassingMech {
32177    #[inline]
32178    fn can_cast(kind: SyntaxKind) -> bool {
32179        kind == SyntaxKind::XML_PASSING_MECH
32180    }
32181    #[inline]
32182    fn cast(syntax: SyntaxNode) -> Option<Self> {
32183        if Self::can_cast(syntax.kind()) {
32184            Some(Self { syntax })
32185        } else {
32186            None
32187        }
32188    }
32189    #[inline]
32190    fn syntax(&self) -> &SyntaxNode {
32191        &self.syntax
32192    }
32193}
32194impl AstNode for XmlPiFn {
32195    #[inline]
32196    fn can_cast(kind: SyntaxKind) -> bool {
32197        kind == SyntaxKind::XML_PI_FN
32198    }
32199    #[inline]
32200    fn cast(syntax: SyntaxNode) -> Option<Self> {
32201        if Self::can_cast(syntax.kind()) {
32202            Some(Self { syntax })
32203        } else {
32204            None
32205        }
32206    }
32207    #[inline]
32208    fn syntax(&self) -> &SyntaxNode {
32209        &self.syntax
32210    }
32211}
32212impl AstNode for XmlRootFn {
32213    #[inline]
32214    fn can_cast(kind: SyntaxKind) -> bool {
32215        kind == SyntaxKind::XML_ROOT_FN
32216    }
32217    #[inline]
32218    fn cast(syntax: SyntaxNode) -> Option<Self> {
32219        if Self::can_cast(syntax.kind()) {
32220            Some(Self { syntax })
32221        } else {
32222            None
32223        }
32224    }
32225    #[inline]
32226    fn syntax(&self) -> &SyntaxNode {
32227        &self.syntax
32228    }
32229}
32230impl AstNode for XmlRowPassingClause {
32231    #[inline]
32232    fn can_cast(kind: SyntaxKind) -> bool {
32233        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
32234    }
32235    #[inline]
32236    fn cast(syntax: SyntaxNode) -> Option<Self> {
32237        if Self::can_cast(syntax.kind()) {
32238            Some(Self { syntax })
32239        } else {
32240            None
32241        }
32242    }
32243    #[inline]
32244    fn syntax(&self) -> &SyntaxNode {
32245        &self.syntax
32246    }
32247}
32248impl AstNode for XmlSerializeFn {
32249    #[inline]
32250    fn can_cast(kind: SyntaxKind) -> bool {
32251        kind == SyntaxKind::XML_SERIALIZE_FN
32252    }
32253    #[inline]
32254    fn cast(syntax: SyntaxNode) -> Option<Self> {
32255        if Self::can_cast(syntax.kind()) {
32256            Some(Self { syntax })
32257        } else {
32258            None
32259        }
32260    }
32261    #[inline]
32262    fn syntax(&self) -> &SyntaxNode {
32263        &self.syntax
32264    }
32265}
32266impl AstNode for XmlTable {
32267    #[inline]
32268    fn can_cast(kind: SyntaxKind) -> bool {
32269        kind == SyntaxKind::XML_TABLE
32270    }
32271    #[inline]
32272    fn cast(syntax: SyntaxNode) -> Option<Self> {
32273        if Self::can_cast(syntax.kind()) {
32274            Some(Self { syntax })
32275        } else {
32276            None
32277        }
32278    }
32279    #[inline]
32280    fn syntax(&self) -> &SyntaxNode {
32281        &self.syntax
32282    }
32283}
32284impl AstNode for XmlTableColumn {
32285    #[inline]
32286    fn can_cast(kind: SyntaxKind) -> bool {
32287        kind == SyntaxKind::XML_TABLE_COLUMN
32288    }
32289    #[inline]
32290    fn cast(syntax: SyntaxNode) -> Option<Self> {
32291        if Self::can_cast(syntax.kind()) {
32292            Some(Self { syntax })
32293        } else {
32294            None
32295        }
32296    }
32297    #[inline]
32298    fn syntax(&self) -> &SyntaxNode {
32299        &self.syntax
32300    }
32301}
32302impl AstNode for XmlTableColumnList {
32303    #[inline]
32304    fn can_cast(kind: SyntaxKind) -> bool {
32305        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
32306    }
32307    #[inline]
32308    fn cast(syntax: SyntaxNode) -> Option<Self> {
32309        if Self::can_cast(syntax.kind()) {
32310            Some(Self { syntax })
32311        } else {
32312            None
32313        }
32314    }
32315    #[inline]
32316    fn syntax(&self) -> &SyntaxNode {
32317        &self.syntax
32318    }
32319}
32320impl AstNode for AlterColumnOption {
32321    #[inline]
32322    fn can_cast(kind: SyntaxKind) -> bool {
32323        matches!(
32324            kind,
32325            SyntaxKind::ADD_GENERATED
32326                | SyntaxKind::DROP_DEFAULT
32327                | SyntaxKind::DROP_EXPRESSION
32328                | SyntaxKind::DROP_IDENTITY
32329                | SyntaxKind::DROP_NOT_NULL
32330                | SyntaxKind::INHERIT
32331                | SyntaxKind::NO_INHERIT
32332                | SyntaxKind::RESET_OPTIONS
32333                | SyntaxKind::RESTART
32334                | SyntaxKind::SET_COMPRESSION
32335                | SyntaxKind::SET_DEFAULT
32336                | SyntaxKind::SET_EXPRESSION
32337                | SyntaxKind::SET_GENERATED
32338                | SyntaxKind::SET_GENERATED_OPTIONS
32339                | SyntaxKind::SET_NOT_NULL
32340                | SyntaxKind::SET_OPTIONS
32341                | SyntaxKind::SET_OPTIONS_LIST
32342                | SyntaxKind::SET_SEQUENCE_OPTION
32343                | SyntaxKind::SET_STATISTICS
32344                | SyntaxKind::SET_STORAGE
32345                | SyntaxKind::SET_TYPE
32346        )
32347    }
32348    #[inline]
32349    fn cast(syntax: SyntaxNode) -> Option<Self> {
32350        let res = match syntax.kind() {
32351            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
32352            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
32353            SyntaxKind::DROP_EXPRESSION => {
32354                AlterColumnOption::DropExpression(DropExpression { syntax })
32355            }
32356            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
32357            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
32358            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
32359            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
32360            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
32361            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
32362            SyntaxKind::SET_COMPRESSION => {
32363                AlterColumnOption::SetCompression(SetCompression { syntax })
32364            }
32365            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
32366            SyntaxKind::SET_EXPRESSION => {
32367                AlterColumnOption::SetExpression(SetExpression { syntax })
32368            }
32369            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
32370            SyntaxKind::SET_GENERATED_OPTIONS => {
32371                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
32372            }
32373            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
32374            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
32375            SyntaxKind::SET_OPTIONS_LIST => {
32376                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
32377            }
32378            SyntaxKind::SET_SEQUENCE_OPTION => {
32379                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
32380            }
32381            SyntaxKind::SET_STATISTICS => {
32382                AlterColumnOption::SetStatistics(SetStatistics { syntax })
32383            }
32384            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
32385            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
32386            _ => {
32387                return None;
32388            }
32389        };
32390        Some(res)
32391    }
32392    #[inline]
32393    fn syntax(&self) -> &SyntaxNode {
32394        match self {
32395            AlterColumnOption::AddGenerated(it) => &it.syntax,
32396            AlterColumnOption::DropDefault(it) => &it.syntax,
32397            AlterColumnOption::DropExpression(it) => &it.syntax,
32398            AlterColumnOption::DropIdentity(it) => &it.syntax,
32399            AlterColumnOption::DropNotNull(it) => &it.syntax,
32400            AlterColumnOption::Inherit(it) => &it.syntax,
32401            AlterColumnOption::NoInherit(it) => &it.syntax,
32402            AlterColumnOption::ResetOptions(it) => &it.syntax,
32403            AlterColumnOption::Restart(it) => &it.syntax,
32404            AlterColumnOption::SetCompression(it) => &it.syntax,
32405            AlterColumnOption::SetDefault(it) => &it.syntax,
32406            AlterColumnOption::SetExpression(it) => &it.syntax,
32407            AlterColumnOption::SetGenerated(it) => &it.syntax,
32408            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
32409            AlterColumnOption::SetNotNull(it) => &it.syntax,
32410            AlterColumnOption::SetOptions(it) => &it.syntax,
32411            AlterColumnOption::SetOptionsList(it) => &it.syntax,
32412            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
32413            AlterColumnOption::SetStatistics(it) => &it.syntax,
32414            AlterColumnOption::SetStorage(it) => &it.syntax,
32415            AlterColumnOption::SetType(it) => &it.syntax,
32416        }
32417    }
32418}
32419impl From<AddGenerated> for AlterColumnOption {
32420    #[inline]
32421    fn from(node: AddGenerated) -> AlterColumnOption {
32422        AlterColumnOption::AddGenerated(node)
32423    }
32424}
32425impl From<DropDefault> for AlterColumnOption {
32426    #[inline]
32427    fn from(node: DropDefault) -> AlterColumnOption {
32428        AlterColumnOption::DropDefault(node)
32429    }
32430}
32431impl From<DropExpression> for AlterColumnOption {
32432    #[inline]
32433    fn from(node: DropExpression) -> AlterColumnOption {
32434        AlterColumnOption::DropExpression(node)
32435    }
32436}
32437impl From<DropIdentity> for AlterColumnOption {
32438    #[inline]
32439    fn from(node: DropIdentity) -> AlterColumnOption {
32440        AlterColumnOption::DropIdentity(node)
32441    }
32442}
32443impl From<DropNotNull> for AlterColumnOption {
32444    #[inline]
32445    fn from(node: DropNotNull) -> AlterColumnOption {
32446        AlterColumnOption::DropNotNull(node)
32447    }
32448}
32449impl From<Inherit> for AlterColumnOption {
32450    #[inline]
32451    fn from(node: Inherit) -> AlterColumnOption {
32452        AlterColumnOption::Inherit(node)
32453    }
32454}
32455impl From<NoInherit> for AlterColumnOption {
32456    #[inline]
32457    fn from(node: NoInherit) -> AlterColumnOption {
32458        AlterColumnOption::NoInherit(node)
32459    }
32460}
32461impl From<ResetOptions> for AlterColumnOption {
32462    #[inline]
32463    fn from(node: ResetOptions) -> AlterColumnOption {
32464        AlterColumnOption::ResetOptions(node)
32465    }
32466}
32467impl From<Restart> for AlterColumnOption {
32468    #[inline]
32469    fn from(node: Restart) -> AlterColumnOption {
32470        AlterColumnOption::Restart(node)
32471    }
32472}
32473impl From<SetCompression> for AlterColumnOption {
32474    #[inline]
32475    fn from(node: SetCompression) -> AlterColumnOption {
32476        AlterColumnOption::SetCompression(node)
32477    }
32478}
32479impl From<SetDefault> for AlterColumnOption {
32480    #[inline]
32481    fn from(node: SetDefault) -> AlterColumnOption {
32482        AlterColumnOption::SetDefault(node)
32483    }
32484}
32485impl From<SetExpression> for AlterColumnOption {
32486    #[inline]
32487    fn from(node: SetExpression) -> AlterColumnOption {
32488        AlterColumnOption::SetExpression(node)
32489    }
32490}
32491impl From<SetGenerated> for AlterColumnOption {
32492    #[inline]
32493    fn from(node: SetGenerated) -> AlterColumnOption {
32494        AlterColumnOption::SetGenerated(node)
32495    }
32496}
32497impl From<SetGeneratedOptions> for AlterColumnOption {
32498    #[inline]
32499    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
32500        AlterColumnOption::SetGeneratedOptions(node)
32501    }
32502}
32503impl From<SetNotNull> for AlterColumnOption {
32504    #[inline]
32505    fn from(node: SetNotNull) -> AlterColumnOption {
32506        AlterColumnOption::SetNotNull(node)
32507    }
32508}
32509impl From<SetOptions> for AlterColumnOption {
32510    #[inline]
32511    fn from(node: SetOptions) -> AlterColumnOption {
32512        AlterColumnOption::SetOptions(node)
32513    }
32514}
32515impl From<SetOptionsList> for AlterColumnOption {
32516    #[inline]
32517    fn from(node: SetOptionsList) -> AlterColumnOption {
32518        AlterColumnOption::SetOptionsList(node)
32519    }
32520}
32521impl From<SetSequenceOption> for AlterColumnOption {
32522    #[inline]
32523    fn from(node: SetSequenceOption) -> AlterColumnOption {
32524        AlterColumnOption::SetSequenceOption(node)
32525    }
32526}
32527impl From<SetStatistics> for AlterColumnOption {
32528    #[inline]
32529    fn from(node: SetStatistics) -> AlterColumnOption {
32530        AlterColumnOption::SetStatistics(node)
32531    }
32532}
32533impl From<SetStorage> for AlterColumnOption {
32534    #[inline]
32535    fn from(node: SetStorage) -> AlterColumnOption {
32536        AlterColumnOption::SetStorage(node)
32537    }
32538}
32539impl From<SetType> for AlterColumnOption {
32540    #[inline]
32541    fn from(node: SetType) -> AlterColumnOption {
32542        AlterColumnOption::SetType(node)
32543    }
32544}
32545impl AstNode for AlterDomainAction {
32546    #[inline]
32547    fn can_cast(kind: SyntaxKind) -> bool {
32548        matches!(
32549            kind,
32550            SyntaxKind::ADD_CONSTRAINT
32551                | SyntaxKind::DROP_CONSTRAINT
32552                | SyntaxKind::DROP_DEFAULT
32553                | SyntaxKind::DROP_NOT_NULL
32554                | SyntaxKind::OWNER_TO
32555                | SyntaxKind::RENAME_CONSTRAINT
32556                | SyntaxKind::RENAME_TO
32557                | SyntaxKind::SET_DEFAULT
32558                | SyntaxKind::SET_NOT_NULL
32559                | SyntaxKind::SET_SCHEMA
32560                | SyntaxKind::VALIDATE_CONSTRAINT
32561        )
32562    }
32563    #[inline]
32564    fn cast(syntax: SyntaxNode) -> Option<Self> {
32565        let res = match syntax.kind() {
32566            SyntaxKind::ADD_CONSTRAINT => {
32567                AlterDomainAction::AddConstraint(AddConstraint { syntax })
32568            }
32569            SyntaxKind::DROP_CONSTRAINT => {
32570                AlterDomainAction::DropConstraint(DropConstraint { syntax })
32571            }
32572            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
32573            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
32574            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
32575            SyntaxKind::RENAME_CONSTRAINT => {
32576                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
32577            }
32578            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
32579            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
32580            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
32581            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
32582            SyntaxKind::VALIDATE_CONSTRAINT => {
32583                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
32584            }
32585            _ => {
32586                return None;
32587            }
32588        };
32589        Some(res)
32590    }
32591    #[inline]
32592    fn syntax(&self) -> &SyntaxNode {
32593        match self {
32594            AlterDomainAction::AddConstraint(it) => &it.syntax,
32595            AlterDomainAction::DropConstraint(it) => &it.syntax,
32596            AlterDomainAction::DropDefault(it) => &it.syntax,
32597            AlterDomainAction::DropNotNull(it) => &it.syntax,
32598            AlterDomainAction::OwnerTo(it) => &it.syntax,
32599            AlterDomainAction::RenameConstraint(it) => &it.syntax,
32600            AlterDomainAction::RenameTo(it) => &it.syntax,
32601            AlterDomainAction::SetDefault(it) => &it.syntax,
32602            AlterDomainAction::SetNotNull(it) => &it.syntax,
32603            AlterDomainAction::SetSchema(it) => &it.syntax,
32604            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
32605        }
32606    }
32607}
32608impl From<AddConstraint> for AlterDomainAction {
32609    #[inline]
32610    fn from(node: AddConstraint) -> AlterDomainAction {
32611        AlterDomainAction::AddConstraint(node)
32612    }
32613}
32614impl From<DropConstraint> for AlterDomainAction {
32615    #[inline]
32616    fn from(node: DropConstraint) -> AlterDomainAction {
32617        AlterDomainAction::DropConstraint(node)
32618    }
32619}
32620impl From<DropDefault> for AlterDomainAction {
32621    #[inline]
32622    fn from(node: DropDefault) -> AlterDomainAction {
32623        AlterDomainAction::DropDefault(node)
32624    }
32625}
32626impl From<DropNotNull> for AlterDomainAction {
32627    #[inline]
32628    fn from(node: DropNotNull) -> AlterDomainAction {
32629        AlterDomainAction::DropNotNull(node)
32630    }
32631}
32632impl From<OwnerTo> for AlterDomainAction {
32633    #[inline]
32634    fn from(node: OwnerTo) -> AlterDomainAction {
32635        AlterDomainAction::OwnerTo(node)
32636    }
32637}
32638impl From<RenameConstraint> for AlterDomainAction {
32639    #[inline]
32640    fn from(node: RenameConstraint) -> AlterDomainAction {
32641        AlterDomainAction::RenameConstraint(node)
32642    }
32643}
32644impl From<RenameTo> for AlterDomainAction {
32645    #[inline]
32646    fn from(node: RenameTo) -> AlterDomainAction {
32647        AlterDomainAction::RenameTo(node)
32648    }
32649}
32650impl From<SetDefault> for AlterDomainAction {
32651    #[inline]
32652    fn from(node: SetDefault) -> AlterDomainAction {
32653        AlterDomainAction::SetDefault(node)
32654    }
32655}
32656impl From<SetNotNull> for AlterDomainAction {
32657    #[inline]
32658    fn from(node: SetNotNull) -> AlterDomainAction {
32659        AlterDomainAction::SetNotNull(node)
32660    }
32661}
32662impl From<SetSchema> for AlterDomainAction {
32663    #[inline]
32664    fn from(node: SetSchema) -> AlterDomainAction {
32665        AlterDomainAction::SetSchema(node)
32666    }
32667}
32668impl From<ValidateConstraint> for AlterDomainAction {
32669    #[inline]
32670    fn from(node: ValidateConstraint) -> AlterDomainAction {
32671        AlterDomainAction::ValidateConstraint(node)
32672    }
32673}
32674impl AstNode for AlterIndexAction {
32675    #[inline]
32676    fn can_cast(kind: SyntaxKind) -> bool {
32677        matches!(
32678            kind,
32679            SyntaxKind::ALTER_SET_STATISTICS
32680                | SyntaxKind::ATTACH_PARTITION
32681                | SyntaxKind::DEPENDS_ON_EXTENSION
32682                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
32683                | SyntaxKind::RENAME_TO
32684                | SyntaxKind::RESET_OPTIONS
32685                | SyntaxKind::SET_OPTIONS
32686                | SyntaxKind::SET_TABLESPACE
32687        )
32688    }
32689    #[inline]
32690    fn cast(syntax: SyntaxNode) -> Option<Self> {
32691        let res = match syntax.kind() {
32692            SyntaxKind::ALTER_SET_STATISTICS => {
32693                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
32694            }
32695            SyntaxKind::ATTACH_PARTITION => {
32696                AlterIndexAction::AttachPartition(AttachPartition { syntax })
32697            }
32698            SyntaxKind::DEPENDS_ON_EXTENSION => {
32699                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
32700            }
32701            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
32702                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
32703            }
32704            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
32705            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
32706            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
32707            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
32708            _ => {
32709                return None;
32710            }
32711        };
32712        Some(res)
32713    }
32714    #[inline]
32715    fn syntax(&self) -> &SyntaxNode {
32716        match self {
32717            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
32718            AlterIndexAction::AttachPartition(it) => &it.syntax,
32719            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
32720            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
32721            AlterIndexAction::RenameTo(it) => &it.syntax,
32722            AlterIndexAction::ResetOptions(it) => &it.syntax,
32723            AlterIndexAction::SetOptions(it) => &it.syntax,
32724            AlterIndexAction::SetTablespace(it) => &it.syntax,
32725        }
32726    }
32727}
32728impl From<AlterSetStatistics> for AlterIndexAction {
32729    #[inline]
32730    fn from(node: AlterSetStatistics) -> AlterIndexAction {
32731        AlterIndexAction::AlterSetStatistics(node)
32732    }
32733}
32734impl From<AttachPartition> for AlterIndexAction {
32735    #[inline]
32736    fn from(node: AttachPartition) -> AlterIndexAction {
32737        AlterIndexAction::AttachPartition(node)
32738    }
32739}
32740impl From<DependsOnExtension> for AlterIndexAction {
32741    #[inline]
32742    fn from(node: DependsOnExtension) -> AlterIndexAction {
32743        AlterIndexAction::DependsOnExtension(node)
32744    }
32745}
32746impl From<NoDependsOnExtension> for AlterIndexAction {
32747    #[inline]
32748    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
32749        AlterIndexAction::NoDependsOnExtension(node)
32750    }
32751}
32752impl From<RenameTo> for AlterIndexAction {
32753    #[inline]
32754    fn from(node: RenameTo) -> AlterIndexAction {
32755        AlterIndexAction::RenameTo(node)
32756    }
32757}
32758impl From<ResetOptions> for AlterIndexAction {
32759    #[inline]
32760    fn from(node: ResetOptions) -> AlterIndexAction {
32761        AlterIndexAction::ResetOptions(node)
32762    }
32763}
32764impl From<SetOptions> for AlterIndexAction {
32765    #[inline]
32766    fn from(node: SetOptions) -> AlterIndexAction {
32767        AlterIndexAction::SetOptions(node)
32768    }
32769}
32770impl From<SetTablespace> for AlterIndexAction {
32771    #[inline]
32772    fn from(node: SetTablespace) -> AlterIndexAction {
32773        AlterIndexAction::SetTablespace(node)
32774    }
32775}
32776impl AstNode for AlterMaterializedViewAction {
32777    #[inline]
32778    fn can_cast(kind: SyntaxKind) -> bool {
32779        matches!(
32780            kind,
32781            SyntaxKind::DEPENDS_ON_EXTENSION
32782                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
32783                | SyntaxKind::RENAME_COLUMN
32784                | SyntaxKind::RENAME_TO
32785                | SyntaxKind::SET_SCHEMA
32786        )
32787    }
32788    #[inline]
32789    fn cast(syntax: SyntaxNode) -> Option<Self> {
32790        let res = match syntax.kind() {
32791            SyntaxKind::DEPENDS_ON_EXTENSION => {
32792                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
32793            }
32794            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
32795                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
32796            }
32797            SyntaxKind::RENAME_COLUMN => {
32798                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
32799            }
32800            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
32801            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
32802            _ => {
32803                if let Some(result) = AlterTableAction::cast(syntax) {
32804                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
32805                }
32806                return None;
32807            }
32808        };
32809        Some(res)
32810    }
32811    #[inline]
32812    fn syntax(&self) -> &SyntaxNode {
32813        match self {
32814            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
32815            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
32816            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
32817            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
32818            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
32819            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
32820        }
32821    }
32822}
32823impl From<DependsOnExtension> for AlterMaterializedViewAction {
32824    #[inline]
32825    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
32826        AlterMaterializedViewAction::DependsOnExtension(node)
32827    }
32828}
32829impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
32830    #[inline]
32831    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
32832        AlterMaterializedViewAction::NoDependsOnExtension(node)
32833    }
32834}
32835impl From<RenameColumn> for AlterMaterializedViewAction {
32836    #[inline]
32837    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
32838        AlterMaterializedViewAction::RenameColumn(node)
32839    }
32840}
32841impl From<RenameTo> for AlterMaterializedViewAction {
32842    #[inline]
32843    fn from(node: RenameTo) -> AlterMaterializedViewAction {
32844        AlterMaterializedViewAction::RenameTo(node)
32845    }
32846}
32847impl From<SetSchema> for AlterMaterializedViewAction {
32848    #[inline]
32849    fn from(node: SetSchema) -> AlterMaterializedViewAction {
32850        AlterMaterializedViewAction::SetSchema(node)
32851    }
32852}
32853impl AstNode for AlterPropertyGraphAction {
32854    #[inline]
32855    fn can_cast(kind: SyntaxKind) -> bool {
32856        matches!(
32857            kind,
32858            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
32859                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
32860                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
32861                | SyntaxKind::DROP_EDGE_TABLES
32862                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
32863                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
32864                | SyntaxKind::DROP_VERTEX_TABLES
32865                | SyntaxKind::OWNER_TO
32866                | SyntaxKind::RENAME_TO
32867                | SyntaxKind::SET_SCHEMA
32868        )
32869    }
32870    #[inline]
32871    fn cast(syntax: SyntaxNode) -> Option<Self> {
32872        let res = match syntax.kind() {
32873            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
32874                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
32875                    AddVertexEdgeLabelProperties { syntax },
32876                )
32877            }
32878            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
32879                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
32880            }
32881            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
32882                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
32883            }
32884            SyntaxKind::DROP_EDGE_TABLES => {
32885                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
32886            }
32887            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
32888                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
32889            }
32890            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
32891                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
32892                    DropVertexEdgeLabelProperties { syntax },
32893                )
32894            }
32895            SyntaxKind::DROP_VERTEX_TABLES => {
32896                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
32897            }
32898            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
32899            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
32900            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
32901            _ => {
32902                return None;
32903            }
32904        };
32905        Some(res)
32906    }
32907    #[inline]
32908    fn syntax(&self) -> &SyntaxNode {
32909        match self {
32910            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
32911            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
32912            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
32913            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
32914            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
32915            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
32916            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
32917            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
32918            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
32919            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
32920        }
32921    }
32922}
32923impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32924    #[inline]
32925    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32926        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
32927    }
32928}
32929impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
32930    #[inline]
32931    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
32932        AlterPropertyGraphAction::AddVertexEdgeTables(node)
32933    }
32934}
32935impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
32936    #[inline]
32937    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
32938        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
32939    }
32940}
32941impl From<DropEdgeTables> for AlterPropertyGraphAction {
32942    #[inline]
32943    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
32944        AlterPropertyGraphAction::DropEdgeTables(node)
32945    }
32946}
32947impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
32948    #[inline]
32949    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
32950        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
32951    }
32952}
32953impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32954    #[inline]
32955    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32956        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
32957    }
32958}
32959impl From<DropVertexTables> for AlterPropertyGraphAction {
32960    #[inline]
32961    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
32962        AlterPropertyGraphAction::DropVertexTables(node)
32963    }
32964}
32965impl From<OwnerTo> for AlterPropertyGraphAction {
32966    #[inline]
32967    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
32968        AlterPropertyGraphAction::OwnerTo(node)
32969    }
32970}
32971impl From<RenameTo> for AlterPropertyGraphAction {
32972    #[inline]
32973    fn from(node: RenameTo) -> AlterPropertyGraphAction {
32974        AlterPropertyGraphAction::RenameTo(node)
32975    }
32976}
32977impl From<SetSchema> for AlterPropertyGraphAction {
32978    #[inline]
32979    fn from(node: SetSchema) -> AlterPropertyGraphAction {
32980        AlterPropertyGraphAction::SetSchema(node)
32981    }
32982}
32983impl AstNode for AlterTableAction {
32984    #[inline]
32985    fn can_cast(kind: SyntaxKind) -> bool {
32986        matches!(
32987            kind,
32988            SyntaxKind::ADD_COLUMN
32989                | SyntaxKind::ADD_CONSTRAINT
32990                | SyntaxKind::ALTER_COLUMN
32991                | SyntaxKind::ALTER_CONSTRAINT
32992                | SyntaxKind::ATTACH_PARTITION
32993                | SyntaxKind::CLUSTER_ON
32994                | SyntaxKind::DETACH_PARTITION
32995                | SyntaxKind::DISABLE_RLS
32996                | SyntaxKind::DISABLE_RULE
32997                | SyntaxKind::DISABLE_TRIGGER
32998                | SyntaxKind::DROP_COLUMN
32999                | SyntaxKind::DROP_CONSTRAINT
33000                | SyntaxKind::ENABLE_ALWAYS_RULE
33001                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
33002                | SyntaxKind::ENABLE_REPLICA_RULE
33003                | SyntaxKind::ENABLE_REPLICA_TRIGGER
33004                | SyntaxKind::ENABLE_RLS
33005                | SyntaxKind::ENABLE_RULE
33006                | SyntaxKind::ENABLE_TRIGGER
33007                | SyntaxKind::FORCE_RLS
33008                | SyntaxKind::INHERIT_TABLE
33009                | SyntaxKind::MERGE_PARTITIONS
33010                | SyntaxKind::NO_FORCE_RLS
33011                | SyntaxKind::NO_INHERIT_TABLE
33012                | SyntaxKind::NOT_OF
33013                | SyntaxKind::OF_TYPE
33014                | SyntaxKind::OPTION_ITEM_LIST
33015                | SyntaxKind::OWNER_TO
33016                | SyntaxKind::RENAME_COLUMN
33017                | SyntaxKind::RENAME_CONSTRAINT
33018                | SyntaxKind::RENAME_TO
33019                | SyntaxKind::REPLICA_IDENTITY
33020                | SyntaxKind::RESET_OPTIONS
33021                | SyntaxKind::SET_ACCESS_METHOD
33022                | SyntaxKind::SET_LOGGED
33023                | SyntaxKind::SET_OPTIONS
33024                | SyntaxKind::SET_SCHEMA
33025                | SyntaxKind::SET_TABLESPACE
33026                | SyntaxKind::SET_UNLOGGED
33027                | SyntaxKind::SET_WITHOUT_CLUSTER
33028                | SyntaxKind::SET_WITHOUT_OIDS
33029                | SyntaxKind::SPLIT_PARTITION
33030                | SyntaxKind::VALIDATE_CONSTRAINT
33031        )
33032    }
33033    #[inline]
33034    fn cast(syntax: SyntaxNode) -> Option<Self> {
33035        let res = match syntax.kind() {
33036            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
33037            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
33038            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
33039            SyntaxKind::ALTER_CONSTRAINT => {
33040                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
33041            }
33042            SyntaxKind::ATTACH_PARTITION => {
33043                AlterTableAction::AttachPartition(AttachPartition { syntax })
33044            }
33045            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
33046            SyntaxKind::DETACH_PARTITION => {
33047                AlterTableAction::DetachPartition(DetachPartition { syntax })
33048            }
33049            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
33050            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
33051            SyntaxKind::DISABLE_TRIGGER => {
33052                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
33053            }
33054            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
33055            SyntaxKind::DROP_CONSTRAINT => {
33056                AlterTableAction::DropConstraint(DropConstraint { syntax })
33057            }
33058            SyntaxKind::ENABLE_ALWAYS_RULE => {
33059                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
33060            }
33061            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
33062                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
33063            }
33064            SyntaxKind::ENABLE_REPLICA_RULE => {
33065                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
33066            }
33067            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
33068                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
33069            }
33070            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
33071            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
33072            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
33073            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
33074            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
33075            SyntaxKind::MERGE_PARTITIONS => {
33076                AlterTableAction::MergePartitions(MergePartitions { syntax })
33077            }
33078            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
33079            SyntaxKind::NO_INHERIT_TABLE => {
33080                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
33081            }
33082            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
33083            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
33084            SyntaxKind::OPTION_ITEM_LIST => {
33085                AlterTableAction::OptionItemList(OptionItemList { syntax })
33086            }
33087            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
33088            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
33089            SyntaxKind::RENAME_CONSTRAINT => {
33090                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
33091            }
33092            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
33093            SyntaxKind::REPLICA_IDENTITY => {
33094                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
33095            }
33096            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
33097            SyntaxKind::SET_ACCESS_METHOD => {
33098                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
33099            }
33100            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
33101            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
33102            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
33103            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
33104            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
33105            SyntaxKind::SET_WITHOUT_CLUSTER => {
33106                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
33107            }
33108            SyntaxKind::SET_WITHOUT_OIDS => {
33109                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
33110            }
33111            SyntaxKind::SPLIT_PARTITION => {
33112                AlterTableAction::SplitPartition(SplitPartition { syntax })
33113            }
33114            SyntaxKind::VALIDATE_CONSTRAINT => {
33115                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
33116            }
33117            _ => {
33118                return None;
33119            }
33120        };
33121        Some(res)
33122    }
33123    #[inline]
33124    fn syntax(&self) -> &SyntaxNode {
33125        match self {
33126            AlterTableAction::AddColumn(it) => &it.syntax,
33127            AlterTableAction::AddConstraint(it) => &it.syntax,
33128            AlterTableAction::AlterColumn(it) => &it.syntax,
33129            AlterTableAction::AlterConstraint(it) => &it.syntax,
33130            AlterTableAction::AttachPartition(it) => &it.syntax,
33131            AlterTableAction::ClusterOn(it) => &it.syntax,
33132            AlterTableAction::DetachPartition(it) => &it.syntax,
33133            AlterTableAction::DisableRls(it) => &it.syntax,
33134            AlterTableAction::DisableRule(it) => &it.syntax,
33135            AlterTableAction::DisableTrigger(it) => &it.syntax,
33136            AlterTableAction::DropColumn(it) => &it.syntax,
33137            AlterTableAction::DropConstraint(it) => &it.syntax,
33138            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
33139            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
33140            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
33141            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
33142            AlterTableAction::EnableRls(it) => &it.syntax,
33143            AlterTableAction::EnableRule(it) => &it.syntax,
33144            AlterTableAction::EnableTrigger(it) => &it.syntax,
33145            AlterTableAction::ForceRls(it) => &it.syntax,
33146            AlterTableAction::InheritTable(it) => &it.syntax,
33147            AlterTableAction::MergePartitions(it) => &it.syntax,
33148            AlterTableAction::NoForceRls(it) => &it.syntax,
33149            AlterTableAction::NoInheritTable(it) => &it.syntax,
33150            AlterTableAction::NotOf(it) => &it.syntax,
33151            AlterTableAction::OfType(it) => &it.syntax,
33152            AlterTableAction::OptionItemList(it) => &it.syntax,
33153            AlterTableAction::OwnerTo(it) => &it.syntax,
33154            AlterTableAction::RenameColumn(it) => &it.syntax,
33155            AlterTableAction::RenameConstraint(it) => &it.syntax,
33156            AlterTableAction::RenameTo(it) => &it.syntax,
33157            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
33158            AlterTableAction::ResetOptions(it) => &it.syntax,
33159            AlterTableAction::SetAccessMethod(it) => &it.syntax,
33160            AlterTableAction::SetLogged(it) => &it.syntax,
33161            AlterTableAction::SetOptions(it) => &it.syntax,
33162            AlterTableAction::SetSchema(it) => &it.syntax,
33163            AlterTableAction::SetTablespace(it) => &it.syntax,
33164            AlterTableAction::SetUnlogged(it) => &it.syntax,
33165            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
33166            AlterTableAction::SetWithoutOids(it) => &it.syntax,
33167            AlterTableAction::SplitPartition(it) => &it.syntax,
33168            AlterTableAction::ValidateConstraint(it) => &it.syntax,
33169        }
33170    }
33171}
33172impl From<AddColumn> for AlterTableAction {
33173    #[inline]
33174    fn from(node: AddColumn) -> AlterTableAction {
33175        AlterTableAction::AddColumn(node)
33176    }
33177}
33178impl From<AddConstraint> for AlterTableAction {
33179    #[inline]
33180    fn from(node: AddConstraint) -> AlterTableAction {
33181        AlterTableAction::AddConstraint(node)
33182    }
33183}
33184impl From<AlterColumn> for AlterTableAction {
33185    #[inline]
33186    fn from(node: AlterColumn) -> AlterTableAction {
33187        AlterTableAction::AlterColumn(node)
33188    }
33189}
33190impl From<AlterConstraint> for AlterTableAction {
33191    #[inline]
33192    fn from(node: AlterConstraint) -> AlterTableAction {
33193        AlterTableAction::AlterConstraint(node)
33194    }
33195}
33196impl From<AttachPartition> for AlterTableAction {
33197    #[inline]
33198    fn from(node: AttachPartition) -> AlterTableAction {
33199        AlterTableAction::AttachPartition(node)
33200    }
33201}
33202impl From<ClusterOn> for AlterTableAction {
33203    #[inline]
33204    fn from(node: ClusterOn) -> AlterTableAction {
33205        AlterTableAction::ClusterOn(node)
33206    }
33207}
33208impl From<DetachPartition> for AlterTableAction {
33209    #[inline]
33210    fn from(node: DetachPartition) -> AlterTableAction {
33211        AlterTableAction::DetachPartition(node)
33212    }
33213}
33214impl From<DisableRls> for AlterTableAction {
33215    #[inline]
33216    fn from(node: DisableRls) -> AlterTableAction {
33217        AlterTableAction::DisableRls(node)
33218    }
33219}
33220impl From<DisableRule> for AlterTableAction {
33221    #[inline]
33222    fn from(node: DisableRule) -> AlterTableAction {
33223        AlterTableAction::DisableRule(node)
33224    }
33225}
33226impl From<DisableTrigger> for AlterTableAction {
33227    #[inline]
33228    fn from(node: DisableTrigger) -> AlterTableAction {
33229        AlterTableAction::DisableTrigger(node)
33230    }
33231}
33232impl From<DropColumn> for AlterTableAction {
33233    #[inline]
33234    fn from(node: DropColumn) -> AlterTableAction {
33235        AlterTableAction::DropColumn(node)
33236    }
33237}
33238impl From<DropConstraint> for AlterTableAction {
33239    #[inline]
33240    fn from(node: DropConstraint) -> AlterTableAction {
33241        AlterTableAction::DropConstraint(node)
33242    }
33243}
33244impl From<EnableAlwaysRule> for AlterTableAction {
33245    #[inline]
33246    fn from(node: EnableAlwaysRule) -> AlterTableAction {
33247        AlterTableAction::EnableAlwaysRule(node)
33248    }
33249}
33250impl From<EnableAlwaysTrigger> for AlterTableAction {
33251    #[inline]
33252    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
33253        AlterTableAction::EnableAlwaysTrigger(node)
33254    }
33255}
33256impl From<EnableReplicaRule> for AlterTableAction {
33257    #[inline]
33258    fn from(node: EnableReplicaRule) -> AlterTableAction {
33259        AlterTableAction::EnableReplicaRule(node)
33260    }
33261}
33262impl From<EnableReplicaTrigger> for AlterTableAction {
33263    #[inline]
33264    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
33265        AlterTableAction::EnableReplicaTrigger(node)
33266    }
33267}
33268impl From<EnableRls> for AlterTableAction {
33269    #[inline]
33270    fn from(node: EnableRls) -> AlterTableAction {
33271        AlterTableAction::EnableRls(node)
33272    }
33273}
33274impl From<EnableRule> for AlterTableAction {
33275    #[inline]
33276    fn from(node: EnableRule) -> AlterTableAction {
33277        AlterTableAction::EnableRule(node)
33278    }
33279}
33280impl From<EnableTrigger> for AlterTableAction {
33281    #[inline]
33282    fn from(node: EnableTrigger) -> AlterTableAction {
33283        AlterTableAction::EnableTrigger(node)
33284    }
33285}
33286impl From<ForceRls> for AlterTableAction {
33287    #[inline]
33288    fn from(node: ForceRls) -> AlterTableAction {
33289        AlterTableAction::ForceRls(node)
33290    }
33291}
33292impl From<InheritTable> for AlterTableAction {
33293    #[inline]
33294    fn from(node: InheritTable) -> AlterTableAction {
33295        AlterTableAction::InheritTable(node)
33296    }
33297}
33298impl From<MergePartitions> for AlterTableAction {
33299    #[inline]
33300    fn from(node: MergePartitions) -> AlterTableAction {
33301        AlterTableAction::MergePartitions(node)
33302    }
33303}
33304impl From<NoForceRls> for AlterTableAction {
33305    #[inline]
33306    fn from(node: NoForceRls) -> AlterTableAction {
33307        AlterTableAction::NoForceRls(node)
33308    }
33309}
33310impl From<NoInheritTable> for AlterTableAction {
33311    #[inline]
33312    fn from(node: NoInheritTable) -> AlterTableAction {
33313        AlterTableAction::NoInheritTable(node)
33314    }
33315}
33316impl From<NotOf> for AlterTableAction {
33317    #[inline]
33318    fn from(node: NotOf) -> AlterTableAction {
33319        AlterTableAction::NotOf(node)
33320    }
33321}
33322impl From<OfType> for AlterTableAction {
33323    #[inline]
33324    fn from(node: OfType) -> AlterTableAction {
33325        AlterTableAction::OfType(node)
33326    }
33327}
33328impl From<OptionItemList> for AlterTableAction {
33329    #[inline]
33330    fn from(node: OptionItemList) -> AlterTableAction {
33331        AlterTableAction::OptionItemList(node)
33332    }
33333}
33334impl From<OwnerTo> for AlterTableAction {
33335    #[inline]
33336    fn from(node: OwnerTo) -> AlterTableAction {
33337        AlterTableAction::OwnerTo(node)
33338    }
33339}
33340impl From<RenameColumn> for AlterTableAction {
33341    #[inline]
33342    fn from(node: RenameColumn) -> AlterTableAction {
33343        AlterTableAction::RenameColumn(node)
33344    }
33345}
33346impl From<RenameConstraint> for AlterTableAction {
33347    #[inline]
33348    fn from(node: RenameConstraint) -> AlterTableAction {
33349        AlterTableAction::RenameConstraint(node)
33350    }
33351}
33352impl From<RenameTo> for AlterTableAction {
33353    #[inline]
33354    fn from(node: RenameTo) -> AlterTableAction {
33355        AlterTableAction::RenameTo(node)
33356    }
33357}
33358impl From<ReplicaIdentity> for AlterTableAction {
33359    #[inline]
33360    fn from(node: ReplicaIdentity) -> AlterTableAction {
33361        AlterTableAction::ReplicaIdentity(node)
33362    }
33363}
33364impl From<ResetOptions> for AlterTableAction {
33365    #[inline]
33366    fn from(node: ResetOptions) -> AlterTableAction {
33367        AlterTableAction::ResetOptions(node)
33368    }
33369}
33370impl From<SetAccessMethod> for AlterTableAction {
33371    #[inline]
33372    fn from(node: SetAccessMethod) -> AlterTableAction {
33373        AlterTableAction::SetAccessMethod(node)
33374    }
33375}
33376impl From<SetLogged> for AlterTableAction {
33377    #[inline]
33378    fn from(node: SetLogged) -> AlterTableAction {
33379        AlterTableAction::SetLogged(node)
33380    }
33381}
33382impl From<SetOptions> for AlterTableAction {
33383    #[inline]
33384    fn from(node: SetOptions) -> AlterTableAction {
33385        AlterTableAction::SetOptions(node)
33386    }
33387}
33388impl From<SetSchema> for AlterTableAction {
33389    #[inline]
33390    fn from(node: SetSchema) -> AlterTableAction {
33391        AlterTableAction::SetSchema(node)
33392    }
33393}
33394impl From<SetTablespace> for AlterTableAction {
33395    #[inline]
33396    fn from(node: SetTablespace) -> AlterTableAction {
33397        AlterTableAction::SetTablespace(node)
33398    }
33399}
33400impl From<SetUnlogged> for AlterTableAction {
33401    #[inline]
33402    fn from(node: SetUnlogged) -> AlterTableAction {
33403        AlterTableAction::SetUnlogged(node)
33404    }
33405}
33406impl From<SetWithoutCluster> for AlterTableAction {
33407    #[inline]
33408    fn from(node: SetWithoutCluster) -> AlterTableAction {
33409        AlterTableAction::SetWithoutCluster(node)
33410    }
33411}
33412impl From<SetWithoutOids> for AlterTableAction {
33413    #[inline]
33414    fn from(node: SetWithoutOids) -> AlterTableAction {
33415        AlterTableAction::SetWithoutOids(node)
33416    }
33417}
33418impl From<SplitPartition> for AlterTableAction {
33419    #[inline]
33420    fn from(node: SplitPartition) -> AlterTableAction {
33421        AlterTableAction::SplitPartition(node)
33422    }
33423}
33424impl From<ValidateConstraint> for AlterTableAction {
33425    #[inline]
33426    fn from(node: ValidateConstraint) -> AlterTableAction {
33427        AlterTableAction::ValidateConstraint(node)
33428    }
33429}
33430impl AstNode for AlterTypeAction {
33431    #[inline]
33432    fn can_cast(kind: SyntaxKind) -> bool {
33433        matches!(
33434            kind,
33435            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
33436        )
33437    }
33438    #[inline]
33439    fn cast(syntax: SyntaxNode) -> Option<Self> {
33440        let res = match syntax.kind() {
33441            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
33442            SyntaxKind::ALTER_ATTRIBUTE => {
33443                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
33444            }
33445            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
33446            _ => {
33447                return None;
33448            }
33449        };
33450        Some(res)
33451    }
33452    #[inline]
33453    fn syntax(&self) -> &SyntaxNode {
33454        match self {
33455            AlterTypeAction::AddAttribute(it) => &it.syntax,
33456            AlterTypeAction::AlterAttribute(it) => &it.syntax,
33457            AlterTypeAction::DropAttribute(it) => &it.syntax,
33458        }
33459    }
33460}
33461impl From<AddAttribute> for AlterTypeAction {
33462    #[inline]
33463    fn from(node: AddAttribute) -> AlterTypeAction {
33464        AlterTypeAction::AddAttribute(node)
33465    }
33466}
33467impl From<AlterAttribute> for AlterTypeAction {
33468    #[inline]
33469    fn from(node: AlterAttribute) -> AlterTypeAction {
33470        AlterTypeAction::AlterAttribute(node)
33471    }
33472}
33473impl From<DropAttribute> for AlterTypeAction {
33474    #[inline]
33475    fn from(node: DropAttribute) -> AlterTypeAction {
33476        AlterTypeAction::DropAttribute(node)
33477    }
33478}
33479impl AstNode for BeginFuncOption {
33480    #[inline]
33481    fn can_cast(kind: SyntaxKind) -> bool {
33482        matches!(kind, SyntaxKind::RETURN_FUNC_OPTION)
33483    }
33484    #[inline]
33485    fn cast(syntax: SyntaxNode) -> Option<Self> {
33486        let res = match syntax.kind() {
33487            SyntaxKind::RETURN_FUNC_OPTION => {
33488                BeginFuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33489            }
33490            _ => {
33491                if let Some(result) = Stmt::cast(syntax) {
33492                    return Some(BeginFuncOption::Stmt(result));
33493                }
33494                return None;
33495            }
33496        };
33497        Some(res)
33498    }
33499    #[inline]
33500    fn syntax(&self) -> &SyntaxNode {
33501        match self {
33502            BeginFuncOption::ReturnFuncOption(it) => &it.syntax,
33503            BeginFuncOption::Stmt(it) => it.syntax(),
33504        }
33505    }
33506}
33507impl From<ReturnFuncOption> for BeginFuncOption {
33508    #[inline]
33509    fn from(node: ReturnFuncOption) -> BeginFuncOption {
33510        BeginFuncOption::ReturnFuncOption(node)
33511    }
33512}
33513impl AstNode for ColumnConstraint {
33514    #[inline]
33515    fn can_cast(kind: SyntaxKind) -> bool {
33516        matches!(
33517            kind,
33518            SyntaxKind::CHECK_CONSTRAINT
33519                | SyntaxKind::DEFAULT_CONSTRAINT
33520                | SyntaxKind::EXCLUDE_CONSTRAINT
33521                | SyntaxKind::NOT_NULL_CONSTRAINT
33522                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33523                | SyntaxKind::REFERENCES_CONSTRAINT
33524                | SyntaxKind::UNIQUE_CONSTRAINT
33525        )
33526    }
33527    #[inline]
33528    fn cast(syntax: SyntaxNode) -> Option<Self> {
33529        let res = match syntax.kind() {
33530            SyntaxKind::CHECK_CONSTRAINT => {
33531                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
33532            }
33533            SyntaxKind::DEFAULT_CONSTRAINT => {
33534                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
33535            }
33536            SyntaxKind::EXCLUDE_CONSTRAINT => {
33537                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
33538            }
33539            SyntaxKind::NOT_NULL_CONSTRAINT => {
33540                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
33541            }
33542            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33543                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33544            }
33545            SyntaxKind::REFERENCES_CONSTRAINT => {
33546                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
33547            }
33548            SyntaxKind::UNIQUE_CONSTRAINT => {
33549                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
33550            }
33551            _ => {
33552                return None;
33553            }
33554        };
33555        Some(res)
33556    }
33557    #[inline]
33558    fn syntax(&self) -> &SyntaxNode {
33559        match self {
33560            ColumnConstraint::CheckConstraint(it) => &it.syntax,
33561            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
33562            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
33563            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
33564            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
33565            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
33566            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
33567        }
33568    }
33569}
33570impl From<CheckConstraint> for ColumnConstraint {
33571    #[inline]
33572    fn from(node: CheckConstraint) -> ColumnConstraint {
33573        ColumnConstraint::CheckConstraint(node)
33574    }
33575}
33576impl From<DefaultConstraint> for ColumnConstraint {
33577    #[inline]
33578    fn from(node: DefaultConstraint) -> ColumnConstraint {
33579        ColumnConstraint::DefaultConstraint(node)
33580    }
33581}
33582impl From<ExcludeConstraint> for ColumnConstraint {
33583    #[inline]
33584    fn from(node: ExcludeConstraint) -> ColumnConstraint {
33585        ColumnConstraint::ExcludeConstraint(node)
33586    }
33587}
33588impl From<NotNullConstraint> for ColumnConstraint {
33589    #[inline]
33590    fn from(node: NotNullConstraint) -> ColumnConstraint {
33591        ColumnConstraint::NotNullConstraint(node)
33592    }
33593}
33594impl From<PrimaryKeyConstraint> for ColumnConstraint {
33595    #[inline]
33596    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
33597        ColumnConstraint::PrimaryKeyConstraint(node)
33598    }
33599}
33600impl From<ReferencesConstraint> for ColumnConstraint {
33601    #[inline]
33602    fn from(node: ReferencesConstraint) -> ColumnConstraint {
33603        ColumnConstraint::ReferencesConstraint(node)
33604    }
33605}
33606impl From<UniqueConstraint> for ColumnConstraint {
33607    #[inline]
33608    fn from(node: UniqueConstraint) -> ColumnConstraint {
33609        ColumnConstraint::UniqueConstraint(node)
33610    }
33611}
33612impl AstNode for ConfigValue {
33613    #[inline]
33614    fn can_cast(kind: SyntaxKind) -> bool {
33615        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
33616    }
33617    #[inline]
33618    fn cast(syntax: SyntaxNode) -> Option<Self> {
33619        let res = match syntax.kind() {
33620            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
33621            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
33622            _ => {
33623                return None;
33624            }
33625        };
33626        Some(res)
33627    }
33628    #[inline]
33629    fn syntax(&self) -> &SyntaxNode {
33630        match self {
33631            ConfigValue::Literal(it) => &it.syntax,
33632            ConfigValue::NameRef(it) => &it.syntax,
33633        }
33634    }
33635}
33636impl From<Literal> for ConfigValue {
33637    #[inline]
33638    fn from(node: Literal) -> ConfigValue {
33639        ConfigValue::Literal(node)
33640    }
33641}
33642impl From<NameRef> for ConfigValue {
33643    #[inline]
33644    fn from(node: NameRef) -> ConfigValue {
33645        ConfigValue::NameRef(node)
33646    }
33647}
33648impl AstNode for ConflictAction {
33649    #[inline]
33650    fn can_cast(kind: SyntaxKind) -> bool {
33651        matches!(
33652            kind,
33653            SyntaxKind::CONFLICT_DO_NOTHING
33654                | SyntaxKind::CONFLICT_DO_SELECT
33655                | SyntaxKind::CONFLICT_DO_UPDATE_SET
33656        )
33657    }
33658    #[inline]
33659    fn cast(syntax: SyntaxNode) -> Option<Self> {
33660        let res = match syntax.kind() {
33661            SyntaxKind::CONFLICT_DO_NOTHING => {
33662                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
33663            }
33664            SyntaxKind::CONFLICT_DO_SELECT => {
33665                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
33666            }
33667            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
33668                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
33669            }
33670            _ => {
33671                return None;
33672            }
33673        };
33674        Some(res)
33675    }
33676    #[inline]
33677    fn syntax(&self) -> &SyntaxNode {
33678        match self {
33679            ConflictAction::ConflictDoNothing(it) => &it.syntax,
33680            ConflictAction::ConflictDoSelect(it) => &it.syntax,
33681            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
33682        }
33683    }
33684}
33685impl From<ConflictDoNothing> for ConflictAction {
33686    #[inline]
33687    fn from(node: ConflictDoNothing) -> ConflictAction {
33688        ConflictAction::ConflictDoNothing(node)
33689    }
33690}
33691impl From<ConflictDoSelect> for ConflictAction {
33692    #[inline]
33693    fn from(node: ConflictDoSelect) -> ConflictAction {
33694        ConflictAction::ConflictDoSelect(node)
33695    }
33696}
33697impl From<ConflictDoUpdateSet> for ConflictAction {
33698    #[inline]
33699    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
33700        ConflictAction::ConflictDoUpdateSet(node)
33701    }
33702}
33703impl AstNode for ConflictTarget {
33704    #[inline]
33705    fn can_cast(kind: SyntaxKind) -> bool {
33706        matches!(
33707            kind,
33708            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
33709        )
33710    }
33711    #[inline]
33712    fn cast(syntax: SyntaxNode) -> Option<Self> {
33713        let res = match syntax.kind() {
33714            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
33715                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
33716            }
33717            SyntaxKind::CONFLICT_ON_INDEX => {
33718                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
33719            }
33720            _ => {
33721                return None;
33722            }
33723        };
33724        Some(res)
33725    }
33726    #[inline]
33727    fn syntax(&self) -> &SyntaxNode {
33728        match self {
33729            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
33730            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
33731        }
33732    }
33733}
33734impl From<ConflictOnConstraint> for ConflictTarget {
33735    #[inline]
33736    fn from(node: ConflictOnConstraint) -> ConflictTarget {
33737        ConflictTarget::ConflictOnConstraint(node)
33738    }
33739}
33740impl From<ConflictOnIndex> for ConflictTarget {
33741    #[inline]
33742    fn from(node: ConflictOnIndex) -> ConflictTarget {
33743        ConflictTarget::ConflictOnIndex(node)
33744    }
33745}
33746impl AstNode for Constraint {
33747    #[inline]
33748    fn can_cast(kind: SyntaxKind) -> bool {
33749        matches!(
33750            kind,
33751            SyntaxKind::CHECK_CONSTRAINT
33752                | SyntaxKind::DEFAULT_CONSTRAINT
33753                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
33754                | SyntaxKind::GENERATED_CONSTRAINT
33755                | SyntaxKind::NOT_NULL_CONSTRAINT
33756                | SyntaxKind::NULL_CONSTRAINT
33757                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33758                | SyntaxKind::REFERENCES_CONSTRAINT
33759                | SyntaxKind::UNIQUE_CONSTRAINT
33760        )
33761    }
33762    #[inline]
33763    fn cast(syntax: SyntaxNode) -> Option<Self> {
33764        let res = match syntax.kind() {
33765            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
33766            SyntaxKind::DEFAULT_CONSTRAINT => {
33767                Constraint::DefaultConstraint(DefaultConstraint { syntax })
33768            }
33769            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
33770                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
33771            }
33772            SyntaxKind::GENERATED_CONSTRAINT => {
33773                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
33774            }
33775            SyntaxKind::NOT_NULL_CONSTRAINT => {
33776                Constraint::NotNullConstraint(NotNullConstraint { syntax })
33777            }
33778            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
33779            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33780                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33781            }
33782            SyntaxKind::REFERENCES_CONSTRAINT => {
33783                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
33784            }
33785            SyntaxKind::UNIQUE_CONSTRAINT => {
33786                Constraint::UniqueConstraint(UniqueConstraint { syntax })
33787            }
33788            _ => {
33789                return None;
33790            }
33791        };
33792        Some(res)
33793    }
33794    #[inline]
33795    fn syntax(&self) -> &SyntaxNode {
33796        match self {
33797            Constraint::CheckConstraint(it) => &it.syntax,
33798            Constraint::DefaultConstraint(it) => &it.syntax,
33799            Constraint::ForeignKeyConstraint(it) => &it.syntax,
33800            Constraint::GeneratedConstraint(it) => &it.syntax,
33801            Constraint::NotNullConstraint(it) => &it.syntax,
33802            Constraint::NullConstraint(it) => &it.syntax,
33803            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
33804            Constraint::ReferencesConstraint(it) => &it.syntax,
33805            Constraint::UniqueConstraint(it) => &it.syntax,
33806        }
33807    }
33808}
33809impl From<CheckConstraint> for Constraint {
33810    #[inline]
33811    fn from(node: CheckConstraint) -> Constraint {
33812        Constraint::CheckConstraint(node)
33813    }
33814}
33815impl From<DefaultConstraint> for Constraint {
33816    #[inline]
33817    fn from(node: DefaultConstraint) -> Constraint {
33818        Constraint::DefaultConstraint(node)
33819    }
33820}
33821impl From<ForeignKeyConstraint> for Constraint {
33822    #[inline]
33823    fn from(node: ForeignKeyConstraint) -> Constraint {
33824        Constraint::ForeignKeyConstraint(node)
33825    }
33826}
33827impl From<GeneratedConstraint> for Constraint {
33828    #[inline]
33829    fn from(node: GeneratedConstraint) -> Constraint {
33830        Constraint::GeneratedConstraint(node)
33831    }
33832}
33833impl From<NotNullConstraint> for Constraint {
33834    #[inline]
33835    fn from(node: NotNullConstraint) -> Constraint {
33836        Constraint::NotNullConstraint(node)
33837    }
33838}
33839impl From<NullConstraint> for Constraint {
33840    #[inline]
33841    fn from(node: NullConstraint) -> Constraint {
33842        Constraint::NullConstraint(node)
33843    }
33844}
33845impl From<PrimaryKeyConstraint> for Constraint {
33846    #[inline]
33847    fn from(node: PrimaryKeyConstraint) -> Constraint {
33848        Constraint::PrimaryKeyConstraint(node)
33849    }
33850}
33851impl From<ReferencesConstraint> for Constraint {
33852    #[inline]
33853    fn from(node: ReferencesConstraint) -> Constraint {
33854        Constraint::ReferencesConstraint(node)
33855    }
33856}
33857impl From<UniqueConstraint> for Constraint {
33858    #[inline]
33859    fn from(node: UniqueConstraint) -> Constraint {
33860        Constraint::UniqueConstraint(node)
33861    }
33862}
33863impl AstNode for ElementTableLabelAndProperties {
33864    #[inline]
33865    fn can_cast(kind: SyntaxKind) -> bool {
33866        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
33867    }
33868    #[inline]
33869    fn cast(syntax: SyntaxNode) -> Option<Self> {
33870        let res = match syntax.kind() {
33871            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
33872                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
33873                    syntax,
33874                })
33875            }
33876            _ => {
33877                if let Some(result) = ElementTableProperties::cast(syntax) {
33878                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
33879                        result,
33880                    ));
33881                }
33882                return None;
33883            }
33884        };
33885        Some(res)
33886    }
33887    #[inline]
33888    fn syntax(&self) -> &SyntaxNode {
33889        match self {
33890            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
33891            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
33892        }
33893    }
33894}
33895impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
33896    #[inline]
33897    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
33898        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
33899    }
33900}
33901impl AstNode for ElementTableProperties {
33902    #[inline]
33903    fn can_cast(kind: SyntaxKind) -> bool {
33904        matches!(
33905            kind,
33906            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES
33907        )
33908    }
33909    #[inline]
33910    fn cast(syntax: SyntaxNode) -> Option<Self> {
33911        let res = match syntax.kind() {
33912            SyntaxKind::ALL_PROPERTIES => {
33913                ElementTableProperties::AllProperties(AllProperties { syntax })
33914            }
33915            SyntaxKind::NO_PROPERTIES => {
33916                ElementTableProperties::NoProperties(NoProperties { syntax })
33917            }
33918            SyntaxKind::PROPERTIES => ElementTableProperties::Properties(Properties { syntax }),
33919            _ => {
33920                return None;
33921            }
33922        };
33923        Some(res)
33924    }
33925    #[inline]
33926    fn syntax(&self) -> &SyntaxNode {
33927        match self {
33928            ElementTableProperties::AllProperties(it) => &it.syntax,
33929            ElementTableProperties::NoProperties(it) => &it.syntax,
33930            ElementTableProperties::Properties(it) => &it.syntax,
33931        }
33932    }
33933}
33934impl From<AllProperties> for ElementTableProperties {
33935    #[inline]
33936    fn from(node: AllProperties) -> ElementTableProperties {
33937        ElementTableProperties::AllProperties(node)
33938    }
33939}
33940impl From<NoProperties> for ElementTableProperties {
33941    #[inline]
33942    fn from(node: NoProperties) -> ElementTableProperties {
33943        ElementTableProperties::NoProperties(node)
33944    }
33945}
33946impl From<Properties> for ElementTableProperties {
33947    #[inline]
33948    fn from(node: Properties) -> ElementTableProperties {
33949        ElementTableProperties::Properties(node)
33950    }
33951}
33952impl AstNode for ExplainStmt {
33953    #[inline]
33954    fn can_cast(kind: SyntaxKind) -> bool {
33955        matches!(
33956            kind,
33957            SyntaxKind::COMPOUND_SELECT
33958                | SyntaxKind::CREATE_MATERIALIZED_VIEW
33959                | SyntaxKind::CREATE_TABLE_AS
33960                | SyntaxKind::DECLARE
33961                | SyntaxKind::DELETE
33962                | SyntaxKind::EXECUTE
33963                | SyntaxKind::INSERT
33964                | SyntaxKind::MERGE
33965                | SyntaxKind::PAREN_SELECT
33966                | SyntaxKind::SELECT
33967                | SyntaxKind::SELECT_INTO
33968                | SyntaxKind::TABLE
33969                | SyntaxKind::UPDATE
33970                | SyntaxKind::VALUES
33971        )
33972    }
33973    #[inline]
33974    fn cast(syntax: SyntaxNode) -> Option<Self> {
33975        let res = match syntax.kind() {
33976            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
33977            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
33978                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
33979            }
33980            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
33981            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
33982            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
33983            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
33984            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
33985            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
33986            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
33987            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
33988            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
33989            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
33990            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
33991            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
33992            _ => {
33993                return None;
33994            }
33995        };
33996        Some(res)
33997    }
33998    #[inline]
33999    fn syntax(&self) -> &SyntaxNode {
34000        match self {
34001            ExplainStmt::CompoundSelect(it) => &it.syntax,
34002            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
34003            ExplainStmt::CreateTableAs(it) => &it.syntax,
34004            ExplainStmt::Declare(it) => &it.syntax,
34005            ExplainStmt::Delete(it) => &it.syntax,
34006            ExplainStmt::Execute(it) => &it.syntax,
34007            ExplainStmt::Insert(it) => &it.syntax,
34008            ExplainStmt::Merge(it) => &it.syntax,
34009            ExplainStmt::ParenSelect(it) => &it.syntax,
34010            ExplainStmt::Select(it) => &it.syntax,
34011            ExplainStmt::SelectInto(it) => &it.syntax,
34012            ExplainStmt::Table(it) => &it.syntax,
34013            ExplainStmt::Update(it) => &it.syntax,
34014            ExplainStmt::Values(it) => &it.syntax,
34015        }
34016    }
34017}
34018impl From<CompoundSelect> for ExplainStmt {
34019    #[inline]
34020    fn from(node: CompoundSelect) -> ExplainStmt {
34021        ExplainStmt::CompoundSelect(node)
34022    }
34023}
34024impl From<CreateMaterializedView> for ExplainStmt {
34025    #[inline]
34026    fn from(node: CreateMaterializedView) -> ExplainStmt {
34027        ExplainStmt::CreateMaterializedView(node)
34028    }
34029}
34030impl From<CreateTableAs> for ExplainStmt {
34031    #[inline]
34032    fn from(node: CreateTableAs) -> ExplainStmt {
34033        ExplainStmt::CreateTableAs(node)
34034    }
34035}
34036impl From<Declare> for ExplainStmt {
34037    #[inline]
34038    fn from(node: Declare) -> ExplainStmt {
34039        ExplainStmt::Declare(node)
34040    }
34041}
34042impl From<Delete> for ExplainStmt {
34043    #[inline]
34044    fn from(node: Delete) -> ExplainStmt {
34045        ExplainStmt::Delete(node)
34046    }
34047}
34048impl From<Execute> for ExplainStmt {
34049    #[inline]
34050    fn from(node: Execute) -> ExplainStmt {
34051        ExplainStmt::Execute(node)
34052    }
34053}
34054impl From<Insert> for ExplainStmt {
34055    #[inline]
34056    fn from(node: Insert) -> ExplainStmt {
34057        ExplainStmt::Insert(node)
34058    }
34059}
34060impl From<Merge> for ExplainStmt {
34061    #[inline]
34062    fn from(node: Merge) -> ExplainStmt {
34063        ExplainStmt::Merge(node)
34064    }
34065}
34066impl From<ParenSelect> for ExplainStmt {
34067    #[inline]
34068    fn from(node: ParenSelect) -> ExplainStmt {
34069        ExplainStmt::ParenSelect(node)
34070    }
34071}
34072impl From<Select> for ExplainStmt {
34073    #[inline]
34074    fn from(node: Select) -> ExplainStmt {
34075        ExplainStmt::Select(node)
34076    }
34077}
34078impl From<SelectInto> for ExplainStmt {
34079    #[inline]
34080    fn from(node: SelectInto) -> ExplainStmt {
34081        ExplainStmt::SelectInto(node)
34082    }
34083}
34084impl From<Table> for ExplainStmt {
34085    #[inline]
34086    fn from(node: Table) -> ExplainStmt {
34087        ExplainStmt::Table(node)
34088    }
34089}
34090impl From<Update> for ExplainStmt {
34091    #[inline]
34092    fn from(node: Update) -> ExplainStmt {
34093        ExplainStmt::Update(node)
34094    }
34095}
34096impl From<Values> for ExplainStmt {
34097    #[inline]
34098    fn from(node: Values) -> ExplainStmt {
34099        ExplainStmt::Values(node)
34100    }
34101}
34102impl AstNode for Expr {
34103    #[inline]
34104    fn can_cast(kind: SyntaxKind) -> bool {
34105        matches!(
34106            kind,
34107            SyntaxKind::ARRAY_EXPR
34108                | SyntaxKind::BETWEEN_EXPR
34109                | SyntaxKind::BIN_EXPR
34110                | SyntaxKind::CALL_EXPR
34111                | SyntaxKind::CASE_EXPR
34112                | SyntaxKind::CAST_EXPR
34113                | SyntaxKind::FIELD_EXPR
34114                | SyntaxKind::INDEX_EXPR
34115                | SyntaxKind::LITERAL
34116                | SyntaxKind::NAME_REF
34117                | SyntaxKind::PAREN_EXPR
34118                | SyntaxKind::POSTFIX_EXPR
34119                | SyntaxKind::PREFIX_EXPR
34120                | SyntaxKind::SLICE_EXPR
34121                | SyntaxKind::TUPLE_EXPR
34122        )
34123    }
34124    #[inline]
34125    fn cast(syntax: SyntaxNode) -> Option<Self> {
34126        let res = match syntax.kind() {
34127            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
34128            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
34129            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
34130            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
34131            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
34132            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
34133            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
34134            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
34135            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
34136            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
34137            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
34138            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
34139            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
34140            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
34141            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
34142            _ => {
34143                return None;
34144            }
34145        };
34146        Some(res)
34147    }
34148    #[inline]
34149    fn syntax(&self) -> &SyntaxNode {
34150        match self {
34151            Expr::ArrayExpr(it) => &it.syntax,
34152            Expr::BetweenExpr(it) => &it.syntax,
34153            Expr::BinExpr(it) => &it.syntax,
34154            Expr::CallExpr(it) => &it.syntax,
34155            Expr::CaseExpr(it) => &it.syntax,
34156            Expr::CastExpr(it) => &it.syntax,
34157            Expr::FieldExpr(it) => &it.syntax,
34158            Expr::IndexExpr(it) => &it.syntax,
34159            Expr::Literal(it) => &it.syntax,
34160            Expr::NameRef(it) => &it.syntax,
34161            Expr::ParenExpr(it) => &it.syntax,
34162            Expr::PostfixExpr(it) => &it.syntax,
34163            Expr::PrefixExpr(it) => &it.syntax,
34164            Expr::SliceExpr(it) => &it.syntax,
34165            Expr::TupleExpr(it) => &it.syntax,
34166        }
34167    }
34168}
34169impl From<ArrayExpr> for Expr {
34170    #[inline]
34171    fn from(node: ArrayExpr) -> Expr {
34172        Expr::ArrayExpr(node)
34173    }
34174}
34175impl From<BetweenExpr> for Expr {
34176    #[inline]
34177    fn from(node: BetweenExpr) -> Expr {
34178        Expr::BetweenExpr(node)
34179    }
34180}
34181impl From<BinExpr> for Expr {
34182    #[inline]
34183    fn from(node: BinExpr) -> Expr {
34184        Expr::BinExpr(node)
34185    }
34186}
34187impl From<CallExpr> for Expr {
34188    #[inline]
34189    fn from(node: CallExpr) -> Expr {
34190        Expr::CallExpr(node)
34191    }
34192}
34193impl From<CaseExpr> for Expr {
34194    #[inline]
34195    fn from(node: CaseExpr) -> Expr {
34196        Expr::CaseExpr(node)
34197    }
34198}
34199impl From<CastExpr> for Expr {
34200    #[inline]
34201    fn from(node: CastExpr) -> Expr {
34202        Expr::CastExpr(node)
34203    }
34204}
34205impl From<FieldExpr> for Expr {
34206    #[inline]
34207    fn from(node: FieldExpr) -> Expr {
34208        Expr::FieldExpr(node)
34209    }
34210}
34211impl From<IndexExpr> for Expr {
34212    #[inline]
34213    fn from(node: IndexExpr) -> Expr {
34214        Expr::IndexExpr(node)
34215    }
34216}
34217impl From<Literal> for Expr {
34218    #[inline]
34219    fn from(node: Literal) -> Expr {
34220        Expr::Literal(node)
34221    }
34222}
34223impl From<NameRef> for Expr {
34224    #[inline]
34225    fn from(node: NameRef) -> Expr {
34226        Expr::NameRef(node)
34227    }
34228}
34229impl From<ParenExpr> for Expr {
34230    #[inline]
34231    fn from(node: ParenExpr) -> Expr {
34232        Expr::ParenExpr(node)
34233    }
34234}
34235impl From<PostfixExpr> for Expr {
34236    #[inline]
34237    fn from(node: PostfixExpr) -> Expr {
34238        Expr::PostfixExpr(node)
34239    }
34240}
34241impl From<PrefixExpr> for Expr {
34242    #[inline]
34243    fn from(node: PrefixExpr) -> Expr {
34244        Expr::PrefixExpr(node)
34245    }
34246}
34247impl From<SliceExpr> for Expr {
34248    #[inline]
34249    fn from(node: SliceExpr) -> Expr {
34250        Expr::SliceExpr(node)
34251    }
34252}
34253impl From<TupleExpr> for Expr {
34254    #[inline]
34255    fn from(node: TupleExpr) -> Expr {
34256        Expr::TupleExpr(node)
34257    }
34258}
34259impl AstNode for FuncOption {
34260    #[inline]
34261    fn can_cast(kind: SyntaxKind) -> bool {
34262        matches!(
34263            kind,
34264            SyntaxKind::AS_FUNC_OPTION
34265                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
34266                | SyntaxKind::COST_FUNC_OPTION
34267                | SyntaxKind::LANGUAGE_FUNC_OPTION
34268                | SyntaxKind::LEAKPROOF_FUNC_OPTION
34269                | SyntaxKind::PARALLEL_FUNC_OPTION
34270                | SyntaxKind::RESET_FUNC_OPTION
34271                | SyntaxKind::RETURN_FUNC_OPTION
34272                | SyntaxKind::ROWS_FUNC_OPTION
34273                | SyntaxKind::SECURITY_FUNC_OPTION
34274                | SyntaxKind::SET_FUNC_OPTION
34275                | SyntaxKind::STRICT_FUNC_OPTION
34276                | SyntaxKind::SUPPORT_FUNC_OPTION
34277                | SyntaxKind::TRANSFORM_FUNC_OPTION
34278                | SyntaxKind::VOLATILITY_FUNC_OPTION
34279                | SyntaxKind::WINDOW_FUNC_OPTION
34280        )
34281    }
34282    #[inline]
34283    fn cast(syntax: SyntaxNode) -> Option<Self> {
34284        let res = match syntax.kind() {
34285            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
34286            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
34287                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
34288            }
34289            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
34290            SyntaxKind::LANGUAGE_FUNC_OPTION => {
34291                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
34292            }
34293            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
34294                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
34295            }
34296            SyntaxKind::PARALLEL_FUNC_OPTION => {
34297                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
34298            }
34299            SyntaxKind::RESET_FUNC_OPTION => {
34300                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
34301            }
34302            SyntaxKind::RETURN_FUNC_OPTION => {
34303                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
34304            }
34305            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
34306            SyntaxKind::SECURITY_FUNC_OPTION => {
34307                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
34308            }
34309            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
34310            SyntaxKind::STRICT_FUNC_OPTION => {
34311                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
34312            }
34313            SyntaxKind::SUPPORT_FUNC_OPTION => {
34314                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
34315            }
34316            SyntaxKind::TRANSFORM_FUNC_OPTION => {
34317                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
34318            }
34319            SyntaxKind::VOLATILITY_FUNC_OPTION => {
34320                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
34321            }
34322            SyntaxKind::WINDOW_FUNC_OPTION => {
34323                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
34324            }
34325            _ => {
34326                return None;
34327            }
34328        };
34329        Some(res)
34330    }
34331    #[inline]
34332    fn syntax(&self) -> &SyntaxNode {
34333        match self {
34334            FuncOption::AsFuncOption(it) => &it.syntax,
34335            FuncOption::BeginFuncOptionList(it) => &it.syntax,
34336            FuncOption::CostFuncOption(it) => &it.syntax,
34337            FuncOption::LanguageFuncOption(it) => &it.syntax,
34338            FuncOption::LeakproofFuncOption(it) => &it.syntax,
34339            FuncOption::ParallelFuncOption(it) => &it.syntax,
34340            FuncOption::ResetFuncOption(it) => &it.syntax,
34341            FuncOption::ReturnFuncOption(it) => &it.syntax,
34342            FuncOption::RowsFuncOption(it) => &it.syntax,
34343            FuncOption::SecurityFuncOption(it) => &it.syntax,
34344            FuncOption::SetFuncOption(it) => &it.syntax,
34345            FuncOption::StrictFuncOption(it) => &it.syntax,
34346            FuncOption::SupportFuncOption(it) => &it.syntax,
34347            FuncOption::TransformFuncOption(it) => &it.syntax,
34348            FuncOption::VolatilityFuncOption(it) => &it.syntax,
34349            FuncOption::WindowFuncOption(it) => &it.syntax,
34350        }
34351    }
34352}
34353impl From<AsFuncOption> for FuncOption {
34354    #[inline]
34355    fn from(node: AsFuncOption) -> FuncOption {
34356        FuncOption::AsFuncOption(node)
34357    }
34358}
34359impl From<BeginFuncOptionList> for FuncOption {
34360    #[inline]
34361    fn from(node: BeginFuncOptionList) -> FuncOption {
34362        FuncOption::BeginFuncOptionList(node)
34363    }
34364}
34365impl From<CostFuncOption> for FuncOption {
34366    #[inline]
34367    fn from(node: CostFuncOption) -> FuncOption {
34368        FuncOption::CostFuncOption(node)
34369    }
34370}
34371impl From<LanguageFuncOption> for FuncOption {
34372    #[inline]
34373    fn from(node: LanguageFuncOption) -> FuncOption {
34374        FuncOption::LanguageFuncOption(node)
34375    }
34376}
34377impl From<LeakproofFuncOption> for FuncOption {
34378    #[inline]
34379    fn from(node: LeakproofFuncOption) -> FuncOption {
34380        FuncOption::LeakproofFuncOption(node)
34381    }
34382}
34383impl From<ParallelFuncOption> for FuncOption {
34384    #[inline]
34385    fn from(node: ParallelFuncOption) -> FuncOption {
34386        FuncOption::ParallelFuncOption(node)
34387    }
34388}
34389impl From<ResetFuncOption> for FuncOption {
34390    #[inline]
34391    fn from(node: ResetFuncOption) -> FuncOption {
34392        FuncOption::ResetFuncOption(node)
34393    }
34394}
34395impl From<ReturnFuncOption> for FuncOption {
34396    #[inline]
34397    fn from(node: ReturnFuncOption) -> FuncOption {
34398        FuncOption::ReturnFuncOption(node)
34399    }
34400}
34401impl From<RowsFuncOption> for FuncOption {
34402    #[inline]
34403    fn from(node: RowsFuncOption) -> FuncOption {
34404        FuncOption::RowsFuncOption(node)
34405    }
34406}
34407impl From<SecurityFuncOption> for FuncOption {
34408    #[inline]
34409    fn from(node: SecurityFuncOption) -> FuncOption {
34410        FuncOption::SecurityFuncOption(node)
34411    }
34412}
34413impl From<SetFuncOption> for FuncOption {
34414    #[inline]
34415    fn from(node: SetFuncOption) -> FuncOption {
34416        FuncOption::SetFuncOption(node)
34417    }
34418}
34419impl From<StrictFuncOption> for FuncOption {
34420    #[inline]
34421    fn from(node: StrictFuncOption) -> FuncOption {
34422        FuncOption::StrictFuncOption(node)
34423    }
34424}
34425impl From<SupportFuncOption> for FuncOption {
34426    #[inline]
34427    fn from(node: SupportFuncOption) -> FuncOption {
34428        FuncOption::SupportFuncOption(node)
34429    }
34430}
34431impl From<TransformFuncOption> for FuncOption {
34432    #[inline]
34433    fn from(node: TransformFuncOption) -> FuncOption {
34434        FuncOption::TransformFuncOption(node)
34435    }
34436}
34437impl From<VolatilityFuncOption> for FuncOption {
34438    #[inline]
34439    fn from(node: VolatilityFuncOption) -> FuncOption {
34440        FuncOption::VolatilityFuncOption(node)
34441    }
34442}
34443impl From<WindowFuncOption> for FuncOption {
34444    #[inline]
34445    fn from(node: WindowFuncOption) -> FuncOption {
34446        FuncOption::WindowFuncOption(node)
34447    }
34448}
34449impl AstNode for GroupBy {
34450    #[inline]
34451    fn can_cast(kind: SyntaxKind) -> bool {
34452        matches!(
34453            kind,
34454            SyntaxKind::GROUPING_CUBE
34455                | SyntaxKind::GROUPING_EXPR
34456                | SyntaxKind::GROUPING_ROLLUP
34457                | SyntaxKind::GROUPING_SETS
34458        )
34459    }
34460    #[inline]
34461    fn cast(syntax: SyntaxNode) -> Option<Self> {
34462        let res = match syntax.kind() {
34463            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
34464            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
34465            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
34466            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
34467            _ => {
34468                return None;
34469            }
34470        };
34471        Some(res)
34472    }
34473    #[inline]
34474    fn syntax(&self) -> &SyntaxNode {
34475        match self {
34476            GroupBy::GroupingCube(it) => &it.syntax,
34477            GroupBy::GroupingExpr(it) => &it.syntax,
34478            GroupBy::GroupingRollup(it) => &it.syntax,
34479            GroupBy::GroupingSets(it) => &it.syntax,
34480        }
34481    }
34482}
34483impl From<GroupingCube> for GroupBy {
34484    #[inline]
34485    fn from(node: GroupingCube) -> GroupBy {
34486        GroupBy::GroupingCube(node)
34487    }
34488}
34489impl From<GroupingExpr> for GroupBy {
34490    #[inline]
34491    fn from(node: GroupingExpr) -> GroupBy {
34492        GroupBy::GroupingExpr(node)
34493    }
34494}
34495impl From<GroupingRollup> for GroupBy {
34496    #[inline]
34497    fn from(node: GroupingRollup) -> GroupBy {
34498        GroupBy::GroupingRollup(node)
34499    }
34500}
34501impl From<GroupingSets> for GroupBy {
34502    #[inline]
34503    fn from(node: GroupingSets) -> GroupBy {
34504        GroupBy::GroupingSets(node)
34505    }
34506}
34507impl AstNode for JoinType {
34508    #[inline]
34509    fn can_cast(kind: SyntaxKind) -> bool {
34510        matches!(
34511            kind,
34512            SyntaxKind::JOIN_CROSS
34513                | SyntaxKind::JOIN_FULL
34514                | SyntaxKind::JOIN_INNER
34515                | SyntaxKind::JOIN_LEFT
34516                | SyntaxKind::JOIN_RIGHT
34517        )
34518    }
34519    #[inline]
34520    fn cast(syntax: SyntaxNode) -> Option<Self> {
34521        let res = match syntax.kind() {
34522            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
34523            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
34524            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
34525            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
34526            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
34527            _ => {
34528                return None;
34529            }
34530        };
34531        Some(res)
34532    }
34533    #[inline]
34534    fn syntax(&self) -> &SyntaxNode {
34535        match self {
34536            JoinType::JoinCross(it) => &it.syntax,
34537            JoinType::JoinFull(it) => &it.syntax,
34538            JoinType::JoinInner(it) => &it.syntax,
34539            JoinType::JoinLeft(it) => &it.syntax,
34540            JoinType::JoinRight(it) => &it.syntax,
34541        }
34542    }
34543}
34544impl From<JoinCross> for JoinType {
34545    #[inline]
34546    fn from(node: JoinCross) -> JoinType {
34547        JoinType::JoinCross(node)
34548    }
34549}
34550impl From<JoinFull> for JoinType {
34551    #[inline]
34552    fn from(node: JoinFull) -> JoinType {
34553        JoinType::JoinFull(node)
34554    }
34555}
34556impl From<JoinInner> for JoinType {
34557    #[inline]
34558    fn from(node: JoinInner) -> JoinType {
34559        JoinType::JoinInner(node)
34560    }
34561}
34562impl From<JoinLeft> for JoinType {
34563    #[inline]
34564    fn from(node: JoinLeft) -> JoinType {
34565        JoinType::JoinLeft(node)
34566    }
34567}
34568impl From<JoinRight> for JoinType {
34569    #[inline]
34570    fn from(node: JoinRight) -> JoinType {
34571        JoinType::JoinRight(node)
34572    }
34573}
34574impl AstNode for JsonBehavior {
34575    #[inline]
34576    fn can_cast(kind: SyntaxKind) -> bool {
34577        matches!(
34578            kind,
34579            SyntaxKind::JSON_BEHAVIOR_DEFAULT
34580                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
34581                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
34582                | SyntaxKind::JSON_BEHAVIOR_ERROR
34583                | SyntaxKind::JSON_BEHAVIOR_FALSE
34584                | SyntaxKind::JSON_BEHAVIOR_NULL
34585                | SyntaxKind::JSON_BEHAVIOR_TRUE
34586                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
34587        )
34588    }
34589    #[inline]
34590    fn cast(syntax: SyntaxNode) -> Option<Self> {
34591        let res = match syntax.kind() {
34592            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
34593                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
34594            }
34595            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
34596                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
34597            }
34598            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
34599                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
34600            }
34601            SyntaxKind::JSON_BEHAVIOR_ERROR => {
34602                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
34603            }
34604            SyntaxKind::JSON_BEHAVIOR_FALSE => {
34605                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
34606            }
34607            SyntaxKind::JSON_BEHAVIOR_NULL => {
34608                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
34609            }
34610            SyntaxKind::JSON_BEHAVIOR_TRUE => {
34611                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
34612            }
34613            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
34614                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
34615            }
34616            _ => {
34617                return None;
34618            }
34619        };
34620        Some(res)
34621    }
34622    #[inline]
34623    fn syntax(&self) -> &SyntaxNode {
34624        match self {
34625            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
34626            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
34627            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
34628            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
34629            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
34630            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
34631            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
34632            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
34633        }
34634    }
34635}
34636impl From<JsonBehaviorDefault> for JsonBehavior {
34637    #[inline]
34638    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
34639        JsonBehavior::JsonBehaviorDefault(node)
34640    }
34641}
34642impl From<JsonBehaviorEmptyArray> for JsonBehavior {
34643    #[inline]
34644    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
34645        JsonBehavior::JsonBehaviorEmptyArray(node)
34646    }
34647}
34648impl From<JsonBehaviorEmptyObject> for JsonBehavior {
34649    #[inline]
34650    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
34651        JsonBehavior::JsonBehaviorEmptyObject(node)
34652    }
34653}
34654impl From<JsonBehaviorError> for JsonBehavior {
34655    #[inline]
34656    fn from(node: JsonBehaviorError) -> JsonBehavior {
34657        JsonBehavior::JsonBehaviorError(node)
34658    }
34659}
34660impl From<JsonBehaviorFalse> for JsonBehavior {
34661    #[inline]
34662    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
34663        JsonBehavior::JsonBehaviorFalse(node)
34664    }
34665}
34666impl From<JsonBehaviorNull> for JsonBehavior {
34667    #[inline]
34668    fn from(node: JsonBehaviorNull) -> JsonBehavior {
34669        JsonBehavior::JsonBehaviorNull(node)
34670    }
34671}
34672impl From<JsonBehaviorTrue> for JsonBehavior {
34673    #[inline]
34674    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
34675        JsonBehavior::JsonBehaviorTrue(node)
34676    }
34677}
34678impl From<JsonBehaviorUnknown> for JsonBehavior {
34679    #[inline]
34680    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
34681        JsonBehavior::JsonBehaviorUnknown(node)
34682    }
34683}
34684impl AstNode for MatchType {
34685    #[inline]
34686    fn can_cast(kind: SyntaxKind) -> bool {
34687        matches!(
34688            kind,
34689            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
34690        )
34691    }
34692    #[inline]
34693    fn cast(syntax: SyntaxNode) -> Option<Self> {
34694        let res = match syntax.kind() {
34695            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
34696            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
34697            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
34698            _ => {
34699                return None;
34700            }
34701        };
34702        Some(res)
34703    }
34704    #[inline]
34705    fn syntax(&self) -> &SyntaxNode {
34706        match self {
34707            MatchType::MatchFull(it) => &it.syntax,
34708            MatchType::MatchPartial(it) => &it.syntax,
34709            MatchType::MatchSimple(it) => &it.syntax,
34710        }
34711    }
34712}
34713impl From<MatchFull> for MatchType {
34714    #[inline]
34715    fn from(node: MatchFull) -> MatchType {
34716        MatchType::MatchFull(node)
34717    }
34718}
34719impl From<MatchPartial> for MatchType {
34720    #[inline]
34721    fn from(node: MatchPartial) -> MatchType {
34722        MatchType::MatchPartial(node)
34723    }
34724}
34725impl From<MatchSimple> for MatchType {
34726    #[inline]
34727    fn from(node: MatchSimple) -> MatchType {
34728        MatchType::MatchSimple(node)
34729    }
34730}
34731impl AstNode for MergeAction {
34732    #[inline]
34733    fn can_cast(kind: SyntaxKind) -> bool {
34734        matches!(
34735            kind,
34736            SyntaxKind::MERGE_DELETE
34737                | SyntaxKind::MERGE_DO_NOTHING
34738                | SyntaxKind::MERGE_INSERT
34739                | SyntaxKind::MERGE_UPDATE
34740        )
34741    }
34742    #[inline]
34743    fn cast(syntax: SyntaxNode) -> Option<Self> {
34744        let res = match syntax.kind() {
34745            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
34746            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
34747            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
34748            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
34749            _ => {
34750                return None;
34751            }
34752        };
34753        Some(res)
34754    }
34755    #[inline]
34756    fn syntax(&self) -> &SyntaxNode {
34757        match self {
34758            MergeAction::MergeDelete(it) => &it.syntax,
34759            MergeAction::MergeDoNothing(it) => &it.syntax,
34760            MergeAction::MergeInsert(it) => &it.syntax,
34761            MergeAction::MergeUpdate(it) => &it.syntax,
34762        }
34763    }
34764}
34765impl From<MergeDelete> for MergeAction {
34766    #[inline]
34767    fn from(node: MergeDelete) -> MergeAction {
34768        MergeAction::MergeDelete(node)
34769    }
34770}
34771impl From<MergeDoNothing> for MergeAction {
34772    #[inline]
34773    fn from(node: MergeDoNothing) -> MergeAction {
34774        MergeAction::MergeDoNothing(node)
34775    }
34776}
34777impl From<MergeInsert> for MergeAction {
34778    #[inline]
34779    fn from(node: MergeInsert) -> MergeAction {
34780        MergeAction::MergeInsert(node)
34781    }
34782}
34783impl From<MergeUpdate> for MergeAction {
34784    #[inline]
34785    fn from(node: MergeUpdate) -> MergeAction {
34786        MergeAction::MergeUpdate(node)
34787    }
34788}
34789impl AstNode for MergeWhenClause {
34790    #[inline]
34791    fn can_cast(kind: SyntaxKind) -> bool {
34792        matches!(
34793            kind,
34794            SyntaxKind::MERGE_WHEN_MATCHED
34795                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
34796                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
34797        )
34798    }
34799    #[inline]
34800    fn cast(syntax: SyntaxNode) -> Option<Self> {
34801        let res = match syntax.kind() {
34802            SyntaxKind::MERGE_WHEN_MATCHED => {
34803                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
34804            }
34805            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
34806                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
34807            }
34808            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
34809                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
34810            }
34811            _ => {
34812                return None;
34813            }
34814        };
34815        Some(res)
34816    }
34817    #[inline]
34818    fn syntax(&self) -> &SyntaxNode {
34819        match self {
34820            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
34821            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
34822            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
34823        }
34824    }
34825}
34826impl From<MergeWhenMatched> for MergeWhenClause {
34827    #[inline]
34828    fn from(node: MergeWhenMatched) -> MergeWhenClause {
34829        MergeWhenClause::MergeWhenMatched(node)
34830    }
34831}
34832impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
34833    #[inline]
34834    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
34835        MergeWhenClause::MergeWhenNotMatchedSource(node)
34836    }
34837}
34838impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
34839    #[inline]
34840    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
34841        MergeWhenClause::MergeWhenNotMatchedTarget(node)
34842    }
34843}
34844impl AstNode for OnCommitAction {
34845    #[inline]
34846    fn can_cast(kind: SyntaxKind) -> bool {
34847        matches!(
34848            kind,
34849            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
34850        )
34851    }
34852    #[inline]
34853    fn cast(syntax: SyntaxNode) -> Option<Self> {
34854        let res = match syntax.kind() {
34855            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
34856            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
34857            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
34858            _ => {
34859                return None;
34860            }
34861        };
34862        Some(res)
34863    }
34864    #[inline]
34865    fn syntax(&self) -> &SyntaxNode {
34866        match self {
34867            OnCommitAction::DeleteRows(it) => &it.syntax,
34868            OnCommitAction::Drop(it) => &it.syntax,
34869            OnCommitAction::PreserveRows(it) => &it.syntax,
34870        }
34871    }
34872}
34873impl From<DeleteRows> for OnCommitAction {
34874    #[inline]
34875    fn from(node: DeleteRows) -> OnCommitAction {
34876        OnCommitAction::DeleteRows(node)
34877    }
34878}
34879impl From<Drop> for OnCommitAction {
34880    #[inline]
34881    fn from(node: Drop) -> OnCommitAction {
34882        OnCommitAction::Drop(node)
34883    }
34884}
34885impl From<PreserveRows> for OnCommitAction {
34886    #[inline]
34887    fn from(node: PreserveRows) -> OnCommitAction {
34888        OnCommitAction::PreserveRows(node)
34889    }
34890}
34891impl AstNode for ParamMode {
34892    #[inline]
34893    fn can_cast(kind: SyntaxKind) -> bool {
34894        matches!(
34895            kind,
34896            SyntaxKind::PARAM_IN
34897                | SyntaxKind::PARAM_IN_OUT
34898                | SyntaxKind::PARAM_OUT
34899                | SyntaxKind::PARAM_VARIADIC
34900        )
34901    }
34902    #[inline]
34903    fn cast(syntax: SyntaxNode) -> Option<Self> {
34904        let res = match syntax.kind() {
34905            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
34906            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
34907            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
34908            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
34909            _ => {
34910                return None;
34911            }
34912        };
34913        Some(res)
34914    }
34915    #[inline]
34916    fn syntax(&self) -> &SyntaxNode {
34917        match self {
34918            ParamMode::ParamIn(it) => &it.syntax,
34919            ParamMode::ParamInOut(it) => &it.syntax,
34920            ParamMode::ParamOut(it) => &it.syntax,
34921            ParamMode::ParamVariadic(it) => &it.syntax,
34922        }
34923    }
34924}
34925impl From<ParamIn> for ParamMode {
34926    #[inline]
34927    fn from(node: ParamIn) -> ParamMode {
34928        ParamMode::ParamIn(node)
34929    }
34930}
34931impl From<ParamInOut> for ParamMode {
34932    #[inline]
34933    fn from(node: ParamInOut) -> ParamMode {
34934        ParamMode::ParamInOut(node)
34935    }
34936}
34937impl From<ParamOut> for ParamMode {
34938    #[inline]
34939    fn from(node: ParamOut) -> ParamMode {
34940        ParamMode::ParamOut(node)
34941    }
34942}
34943impl From<ParamVariadic> for ParamMode {
34944    #[inline]
34945    fn from(node: ParamVariadic) -> ParamMode {
34946        ParamMode::ParamVariadic(node)
34947    }
34948}
34949impl AstNode for PartitionType {
34950    #[inline]
34951    fn can_cast(kind: SyntaxKind) -> bool {
34952        matches!(
34953            kind,
34954            SyntaxKind::PARTITION_DEFAULT
34955                | SyntaxKind::PARTITION_FOR_VALUES_FROM
34956                | SyntaxKind::PARTITION_FOR_VALUES_IN
34957                | SyntaxKind::PARTITION_FOR_VALUES_WITH
34958        )
34959    }
34960    #[inline]
34961    fn cast(syntax: SyntaxNode) -> Option<Self> {
34962        let res = match syntax.kind() {
34963            SyntaxKind::PARTITION_DEFAULT => {
34964                PartitionType::PartitionDefault(PartitionDefault { syntax })
34965            }
34966            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
34967                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
34968            }
34969            SyntaxKind::PARTITION_FOR_VALUES_IN => {
34970                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
34971            }
34972            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
34973                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
34974            }
34975            _ => {
34976                return None;
34977            }
34978        };
34979        Some(res)
34980    }
34981    #[inline]
34982    fn syntax(&self) -> &SyntaxNode {
34983        match self {
34984            PartitionType::PartitionDefault(it) => &it.syntax,
34985            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
34986            PartitionType::PartitionForValuesIn(it) => &it.syntax,
34987            PartitionType::PartitionForValuesWith(it) => &it.syntax,
34988        }
34989    }
34990}
34991impl From<PartitionDefault> for PartitionType {
34992    #[inline]
34993    fn from(node: PartitionDefault) -> PartitionType {
34994        PartitionType::PartitionDefault(node)
34995    }
34996}
34997impl From<PartitionForValuesFrom> for PartitionType {
34998    #[inline]
34999    fn from(node: PartitionForValuesFrom) -> PartitionType {
35000        PartitionType::PartitionForValuesFrom(node)
35001    }
35002}
35003impl From<PartitionForValuesIn> for PartitionType {
35004    #[inline]
35005    fn from(node: PartitionForValuesIn) -> PartitionType {
35006        PartitionType::PartitionForValuesIn(node)
35007    }
35008}
35009impl From<PartitionForValuesWith> for PartitionType {
35010    #[inline]
35011    fn from(node: PartitionForValuesWith) -> PartitionType {
35012        PartitionType::PartitionForValuesWith(node)
35013    }
35014}
35015impl AstNode for PathPrimary {
35016    #[inline]
35017    fn can_cast(kind: SyntaxKind) -> bool {
35018        matches!(
35019            kind,
35020            SyntaxKind::EDGE_ANY
35021                | SyntaxKind::EDGE_LEFT
35022                | SyntaxKind::EDGE_RIGHT
35023                | SyntaxKind::PAREN_GRAPH_PATTERN
35024                | SyntaxKind::VERTEX_PATTERN
35025        )
35026    }
35027    #[inline]
35028    fn cast(syntax: SyntaxNode) -> Option<Self> {
35029        let res = match syntax.kind() {
35030            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
35031            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
35032            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
35033            SyntaxKind::PAREN_GRAPH_PATTERN => {
35034                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
35035            }
35036            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
35037            _ => {
35038                return None;
35039            }
35040        };
35041        Some(res)
35042    }
35043    #[inline]
35044    fn syntax(&self) -> &SyntaxNode {
35045        match self {
35046            PathPrimary::EdgeAny(it) => &it.syntax,
35047            PathPrimary::EdgeLeft(it) => &it.syntax,
35048            PathPrimary::EdgeRight(it) => &it.syntax,
35049            PathPrimary::ParenGraphPattern(it) => &it.syntax,
35050            PathPrimary::VertexPattern(it) => &it.syntax,
35051        }
35052    }
35053}
35054impl From<EdgeAny> for PathPrimary {
35055    #[inline]
35056    fn from(node: EdgeAny) -> PathPrimary {
35057        PathPrimary::EdgeAny(node)
35058    }
35059}
35060impl From<EdgeLeft> for PathPrimary {
35061    #[inline]
35062    fn from(node: EdgeLeft) -> PathPrimary {
35063        PathPrimary::EdgeLeft(node)
35064    }
35065}
35066impl From<EdgeRight> for PathPrimary {
35067    #[inline]
35068    fn from(node: EdgeRight) -> PathPrimary {
35069        PathPrimary::EdgeRight(node)
35070    }
35071}
35072impl From<ParenGraphPattern> for PathPrimary {
35073    #[inline]
35074    fn from(node: ParenGraphPattern) -> PathPrimary {
35075        PathPrimary::ParenGraphPattern(node)
35076    }
35077}
35078impl From<VertexPattern> for PathPrimary {
35079    #[inline]
35080    fn from(node: VertexPattern) -> PathPrimary {
35081        PathPrimary::VertexPattern(node)
35082    }
35083}
35084impl AstNode for Persistence {
35085    #[inline]
35086    fn can_cast(kind: SyntaxKind) -> bool {
35087        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
35088    }
35089    #[inline]
35090    fn cast(syntax: SyntaxNode) -> Option<Self> {
35091        let res = match syntax.kind() {
35092            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
35093            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
35094            _ => {
35095                return None;
35096            }
35097        };
35098        Some(res)
35099    }
35100    #[inline]
35101    fn syntax(&self) -> &SyntaxNode {
35102        match self {
35103            Persistence::Temp(it) => &it.syntax,
35104            Persistence::Unlogged(it) => &it.syntax,
35105        }
35106    }
35107}
35108impl From<Temp> for Persistence {
35109    #[inline]
35110    fn from(node: Temp) -> Persistence {
35111        Persistence::Temp(node)
35112    }
35113}
35114impl From<Unlogged> for Persistence {
35115    #[inline]
35116    fn from(node: Unlogged) -> Persistence {
35117        Persistence::Unlogged(node)
35118    }
35119}
35120impl AstNode for PreparableStmt {
35121    #[inline]
35122    fn can_cast(kind: SyntaxKind) -> bool {
35123        matches!(
35124            kind,
35125            SyntaxKind::COMPOUND_SELECT
35126                | SyntaxKind::DELETE
35127                | SyntaxKind::INSERT
35128                | SyntaxKind::MERGE
35129                | SyntaxKind::SELECT
35130                | SyntaxKind::SELECT_INTO
35131                | SyntaxKind::TABLE
35132                | SyntaxKind::UPDATE
35133                | SyntaxKind::VALUES
35134        )
35135    }
35136    #[inline]
35137    fn cast(syntax: SyntaxNode) -> Option<Self> {
35138        let res = match syntax.kind() {
35139            SyntaxKind::COMPOUND_SELECT => {
35140                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
35141            }
35142            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
35143            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
35144            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
35145            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
35146            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
35147            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
35148            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
35149            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
35150            _ => {
35151                return None;
35152            }
35153        };
35154        Some(res)
35155    }
35156    #[inline]
35157    fn syntax(&self) -> &SyntaxNode {
35158        match self {
35159            PreparableStmt::CompoundSelect(it) => &it.syntax,
35160            PreparableStmt::Delete(it) => &it.syntax,
35161            PreparableStmt::Insert(it) => &it.syntax,
35162            PreparableStmt::Merge(it) => &it.syntax,
35163            PreparableStmt::Select(it) => &it.syntax,
35164            PreparableStmt::SelectInto(it) => &it.syntax,
35165            PreparableStmt::Table(it) => &it.syntax,
35166            PreparableStmt::Update(it) => &it.syntax,
35167            PreparableStmt::Values(it) => &it.syntax,
35168        }
35169    }
35170}
35171impl From<CompoundSelect> for PreparableStmt {
35172    #[inline]
35173    fn from(node: CompoundSelect) -> PreparableStmt {
35174        PreparableStmt::CompoundSelect(node)
35175    }
35176}
35177impl From<Delete> for PreparableStmt {
35178    #[inline]
35179    fn from(node: Delete) -> PreparableStmt {
35180        PreparableStmt::Delete(node)
35181    }
35182}
35183impl From<Insert> for PreparableStmt {
35184    #[inline]
35185    fn from(node: Insert) -> PreparableStmt {
35186        PreparableStmt::Insert(node)
35187    }
35188}
35189impl From<Merge> for PreparableStmt {
35190    #[inline]
35191    fn from(node: Merge) -> PreparableStmt {
35192        PreparableStmt::Merge(node)
35193    }
35194}
35195impl From<Select> for PreparableStmt {
35196    #[inline]
35197    fn from(node: Select) -> PreparableStmt {
35198        PreparableStmt::Select(node)
35199    }
35200}
35201impl From<SelectInto> for PreparableStmt {
35202    #[inline]
35203    fn from(node: SelectInto) -> PreparableStmt {
35204        PreparableStmt::SelectInto(node)
35205    }
35206}
35207impl From<Table> for PreparableStmt {
35208    #[inline]
35209    fn from(node: Table) -> PreparableStmt {
35210        PreparableStmt::Table(node)
35211    }
35212}
35213impl From<Update> for PreparableStmt {
35214    #[inline]
35215    fn from(node: Update) -> PreparableStmt {
35216        PreparableStmt::Update(node)
35217    }
35218}
35219impl From<Values> for PreparableStmt {
35220    #[inline]
35221    fn from(node: Values) -> PreparableStmt {
35222        PreparableStmt::Values(node)
35223    }
35224}
35225impl AstNode for RefAction {
35226    #[inline]
35227    fn can_cast(kind: SyntaxKind) -> bool {
35228        matches!(
35229            kind,
35230            SyntaxKind::CASCADE
35231                | SyntaxKind::NO_ACTION
35232                | SyntaxKind::RESTRICT
35233                | SyntaxKind::SET_DEFAULT_COLUMNS
35234                | SyntaxKind::SET_NULL_COLUMNS
35235        )
35236    }
35237    #[inline]
35238    fn cast(syntax: SyntaxNode) -> Option<Self> {
35239        let res = match syntax.kind() {
35240            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
35241            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
35242            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
35243            SyntaxKind::SET_DEFAULT_COLUMNS => {
35244                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
35245            }
35246            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
35247            _ => {
35248                return None;
35249            }
35250        };
35251        Some(res)
35252    }
35253    #[inline]
35254    fn syntax(&self) -> &SyntaxNode {
35255        match self {
35256            RefAction::Cascade(it) => &it.syntax,
35257            RefAction::NoAction(it) => &it.syntax,
35258            RefAction::Restrict(it) => &it.syntax,
35259            RefAction::SetDefaultColumns(it) => &it.syntax,
35260            RefAction::SetNullColumns(it) => &it.syntax,
35261        }
35262    }
35263}
35264impl From<Cascade> for RefAction {
35265    #[inline]
35266    fn from(node: Cascade) -> RefAction {
35267        RefAction::Cascade(node)
35268    }
35269}
35270impl From<NoAction> for RefAction {
35271    #[inline]
35272    fn from(node: NoAction) -> RefAction {
35273        RefAction::NoAction(node)
35274    }
35275}
35276impl From<Restrict> for RefAction {
35277    #[inline]
35278    fn from(node: Restrict) -> RefAction {
35279        RefAction::Restrict(node)
35280    }
35281}
35282impl From<SetDefaultColumns> for RefAction {
35283    #[inline]
35284    fn from(node: SetDefaultColumns) -> RefAction {
35285        RefAction::SetDefaultColumns(node)
35286    }
35287}
35288impl From<SetNullColumns> for RefAction {
35289    #[inline]
35290    fn from(node: SetNullColumns) -> RefAction {
35291        RefAction::SetNullColumns(node)
35292    }
35293}
35294impl AstNode for RuleAction {
35295    #[inline]
35296    fn can_cast(kind: SyntaxKind) -> bool {
35297        matches!(kind, SyntaxKind::NOTHING | SyntaxKind::RULE_STMT_LIST)
35298    }
35299    #[inline]
35300    fn cast(syntax: SyntaxNode) -> Option<Self> {
35301        let res = match syntax.kind() {
35302            SyntaxKind::NOTHING => RuleAction::Nothing(Nothing { syntax }),
35303            SyntaxKind::RULE_STMT_LIST => RuleAction::RuleStmtList(RuleStmtList { syntax }),
35304            _ => {
35305                if let Some(result) = RuleStmt::cast(syntax) {
35306                    return Some(RuleAction::RuleStmt(result));
35307                }
35308                return None;
35309            }
35310        };
35311        Some(res)
35312    }
35313    #[inline]
35314    fn syntax(&self) -> &SyntaxNode {
35315        match self {
35316            RuleAction::Nothing(it) => &it.syntax,
35317            RuleAction::RuleStmtList(it) => &it.syntax,
35318            RuleAction::RuleStmt(it) => it.syntax(),
35319        }
35320    }
35321}
35322impl From<Nothing> for RuleAction {
35323    #[inline]
35324    fn from(node: Nothing) -> RuleAction {
35325        RuleAction::Nothing(node)
35326    }
35327}
35328impl From<RuleStmtList> for RuleAction {
35329    #[inline]
35330    fn from(node: RuleStmtList) -> RuleAction {
35331        RuleAction::RuleStmtList(node)
35332    }
35333}
35334impl AstNode for RuleStmt {
35335    #[inline]
35336    fn can_cast(kind: SyntaxKind) -> bool {
35337        matches!(
35338            kind,
35339            SyntaxKind::DELETE | SyntaxKind::INSERT | SyntaxKind::NOTIFY | SyntaxKind::UPDATE
35340        )
35341    }
35342    #[inline]
35343    fn cast(syntax: SyntaxNode) -> Option<Self> {
35344        let res = match syntax.kind() {
35345            SyntaxKind::DELETE => RuleStmt::Delete(Delete { syntax }),
35346            SyntaxKind::INSERT => RuleStmt::Insert(Insert { syntax }),
35347            SyntaxKind::NOTIFY => RuleStmt::Notify(Notify { syntax }),
35348            SyntaxKind::UPDATE => RuleStmt::Update(Update { syntax }),
35349            _ => {
35350                if let Some(result) = SelectVariant::cast(syntax) {
35351                    return Some(RuleStmt::SelectVariant(result));
35352                }
35353                return None;
35354            }
35355        };
35356        Some(res)
35357    }
35358    #[inline]
35359    fn syntax(&self) -> &SyntaxNode {
35360        match self {
35361            RuleStmt::Delete(it) => &it.syntax,
35362            RuleStmt::Insert(it) => &it.syntax,
35363            RuleStmt::Notify(it) => &it.syntax,
35364            RuleStmt::Update(it) => &it.syntax,
35365            RuleStmt::SelectVariant(it) => it.syntax(),
35366        }
35367    }
35368}
35369impl From<Delete> for RuleStmt {
35370    #[inline]
35371    fn from(node: Delete) -> RuleStmt {
35372        RuleStmt::Delete(node)
35373    }
35374}
35375impl From<Insert> for RuleStmt {
35376    #[inline]
35377    fn from(node: Insert) -> RuleStmt {
35378        RuleStmt::Insert(node)
35379    }
35380}
35381impl From<Notify> for RuleStmt {
35382    #[inline]
35383    fn from(node: Notify) -> RuleStmt {
35384        RuleStmt::Notify(node)
35385    }
35386}
35387impl From<Update> for RuleStmt {
35388    #[inline]
35389    fn from(node: Update) -> RuleStmt {
35390        RuleStmt::Update(node)
35391    }
35392}
35393impl AstNode for SchemaElement {
35394    #[inline]
35395    fn can_cast(kind: SyntaxKind) -> bool {
35396        matches!(
35397            kind,
35398            SyntaxKind::CREATE_INDEX
35399                | SyntaxKind::CREATE_SEQUENCE
35400                | SyntaxKind::CREATE_TABLE
35401                | SyntaxKind::CREATE_TRIGGER
35402                | SyntaxKind::CREATE_VIEW
35403                | SyntaxKind::GRANT
35404        )
35405    }
35406    #[inline]
35407    fn cast(syntax: SyntaxNode) -> Option<Self> {
35408        let res = match syntax.kind() {
35409            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
35410            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
35411            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
35412            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
35413            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
35414            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
35415            _ => {
35416                return None;
35417            }
35418        };
35419        Some(res)
35420    }
35421    #[inline]
35422    fn syntax(&self) -> &SyntaxNode {
35423        match self {
35424            SchemaElement::CreateIndex(it) => &it.syntax,
35425            SchemaElement::CreateSequence(it) => &it.syntax,
35426            SchemaElement::CreateTable(it) => &it.syntax,
35427            SchemaElement::CreateTrigger(it) => &it.syntax,
35428            SchemaElement::CreateView(it) => &it.syntax,
35429            SchemaElement::Grant(it) => &it.syntax,
35430        }
35431    }
35432}
35433impl From<CreateIndex> for SchemaElement {
35434    #[inline]
35435    fn from(node: CreateIndex) -> SchemaElement {
35436        SchemaElement::CreateIndex(node)
35437    }
35438}
35439impl From<CreateSequence> for SchemaElement {
35440    #[inline]
35441    fn from(node: CreateSequence) -> SchemaElement {
35442        SchemaElement::CreateSequence(node)
35443    }
35444}
35445impl From<CreateTable> for SchemaElement {
35446    #[inline]
35447    fn from(node: CreateTable) -> SchemaElement {
35448        SchemaElement::CreateTable(node)
35449    }
35450}
35451impl From<CreateTrigger> for SchemaElement {
35452    #[inline]
35453    fn from(node: CreateTrigger) -> SchemaElement {
35454        SchemaElement::CreateTrigger(node)
35455    }
35456}
35457impl From<CreateView> for SchemaElement {
35458    #[inline]
35459    fn from(node: CreateView) -> SchemaElement {
35460        SchemaElement::CreateView(node)
35461    }
35462}
35463impl From<Grant> for SchemaElement {
35464    #[inline]
35465    fn from(node: Grant) -> SchemaElement {
35466        SchemaElement::Grant(node)
35467    }
35468}
35469impl AstNode for SelectVariant {
35470    #[inline]
35471    fn can_cast(kind: SyntaxKind) -> bool {
35472        matches!(
35473            kind,
35474            SyntaxKind::COMPOUND_SELECT
35475                | SyntaxKind::PAREN_SELECT
35476                | SyntaxKind::SELECT
35477                | SyntaxKind::SELECT_INTO
35478                | SyntaxKind::TABLE
35479                | SyntaxKind::VALUES
35480        )
35481    }
35482    #[inline]
35483    fn cast(syntax: SyntaxNode) -> Option<Self> {
35484        let res = match syntax.kind() {
35485            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
35486            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
35487            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
35488            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
35489            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
35490            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
35491            _ => {
35492                return None;
35493            }
35494        };
35495        Some(res)
35496    }
35497    #[inline]
35498    fn syntax(&self) -> &SyntaxNode {
35499        match self {
35500            SelectVariant::CompoundSelect(it) => &it.syntax,
35501            SelectVariant::ParenSelect(it) => &it.syntax,
35502            SelectVariant::Select(it) => &it.syntax,
35503            SelectVariant::SelectInto(it) => &it.syntax,
35504            SelectVariant::Table(it) => &it.syntax,
35505            SelectVariant::Values(it) => &it.syntax,
35506        }
35507    }
35508}
35509impl From<CompoundSelect> for SelectVariant {
35510    #[inline]
35511    fn from(node: CompoundSelect) -> SelectVariant {
35512        SelectVariant::CompoundSelect(node)
35513    }
35514}
35515impl From<ParenSelect> for SelectVariant {
35516    #[inline]
35517    fn from(node: ParenSelect) -> SelectVariant {
35518        SelectVariant::ParenSelect(node)
35519    }
35520}
35521impl From<Select> for SelectVariant {
35522    #[inline]
35523    fn from(node: Select) -> SelectVariant {
35524        SelectVariant::Select(node)
35525    }
35526}
35527impl From<SelectInto> for SelectVariant {
35528    #[inline]
35529    fn from(node: SelectInto) -> SelectVariant {
35530        SelectVariant::SelectInto(node)
35531    }
35532}
35533impl From<Table> for SelectVariant {
35534    #[inline]
35535    fn from(node: Table) -> SelectVariant {
35536        SelectVariant::Table(node)
35537    }
35538}
35539impl From<Values> for SelectVariant {
35540    #[inline]
35541    fn from(node: Values) -> SelectVariant {
35542        SelectVariant::Values(node)
35543    }
35544}
35545impl AstNode for SetColumn {
35546    #[inline]
35547    fn can_cast(kind: SyntaxKind) -> bool {
35548        matches!(
35549            kind,
35550            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
35551        )
35552    }
35553    #[inline]
35554    fn cast(syntax: SyntaxNode) -> Option<Self> {
35555        let res = match syntax.kind() {
35556            SyntaxKind::SET_MULTIPLE_COLUMNS => {
35557                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
35558            }
35559            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
35560            _ => {
35561                return None;
35562            }
35563        };
35564        Some(res)
35565    }
35566    #[inline]
35567    fn syntax(&self) -> &SyntaxNode {
35568        match self {
35569            SetColumn::SetMultipleColumns(it) => &it.syntax,
35570            SetColumn::SetSingleColumn(it) => &it.syntax,
35571        }
35572    }
35573}
35574impl From<SetMultipleColumns> for SetColumn {
35575    #[inline]
35576    fn from(node: SetMultipleColumns) -> SetColumn {
35577        SetColumn::SetMultipleColumns(node)
35578    }
35579}
35580impl From<SetSingleColumn> for SetColumn {
35581    #[inline]
35582    fn from(node: SetSingleColumn) -> SetColumn {
35583        SetColumn::SetSingleColumn(node)
35584    }
35585}
35586impl AstNode for Stmt {
35587    #[inline]
35588    fn can_cast(kind: SyntaxKind) -> bool {
35589        matches!(
35590            kind,
35591            SyntaxKind::ALTER_AGGREGATE
35592                | SyntaxKind::ALTER_COLLATION
35593                | SyntaxKind::ALTER_CONVERSION
35594                | SyntaxKind::ALTER_DATABASE
35595                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
35596                | SyntaxKind::ALTER_DOMAIN
35597                | SyntaxKind::ALTER_EVENT_TRIGGER
35598                | SyntaxKind::ALTER_EXTENSION
35599                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
35600                | SyntaxKind::ALTER_FOREIGN_TABLE
35601                | SyntaxKind::ALTER_FUNCTION
35602                | SyntaxKind::ALTER_GROUP
35603                | SyntaxKind::ALTER_INDEX
35604                | SyntaxKind::ALTER_LANGUAGE
35605                | SyntaxKind::ALTER_LARGE_OBJECT
35606                | SyntaxKind::ALTER_MATERIALIZED_VIEW
35607                | SyntaxKind::ALTER_OPERATOR
35608                | SyntaxKind::ALTER_OPERATOR_CLASS
35609                | SyntaxKind::ALTER_OPERATOR_FAMILY
35610                | SyntaxKind::ALTER_POLICY
35611                | SyntaxKind::ALTER_PROCEDURE
35612                | SyntaxKind::ALTER_PROPERTY_GRAPH
35613                | SyntaxKind::ALTER_PUBLICATION
35614                | SyntaxKind::ALTER_ROLE
35615                | SyntaxKind::ALTER_ROUTINE
35616                | SyntaxKind::ALTER_RULE
35617                | SyntaxKind::ALTER_SCHEMA
35618                | SyntaxKind::ALTER_SEQUENCE
35619                | SyntaxKind::ALTER_SERVER
35620                | SyntaxKind::ALTER_STATISTICS
35621                | SyntaxKind::ALTER_SUBSCRIPTION
35622                | SyntaxKind::ALTER_SYSTEM
35623                | SyntaxKind::ALTER_TABLE
35624                | SyntaxKind::ALTER_TABLESPACE
35625                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
35626                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
35627                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
35628                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
35629                | SyntaxKind::ALTER_TRIGGER
35630                | SyntaxKind::ALTER_TYPE
35631                | SyntaxKind::ALTER_USER
35632                | SyntaxKind::ALTER_USER_MAPPING
35633                | SyntaxKind::ALTER_VIEW
35634                | SyntaxKind::ANALYZE
35635                | SyntaxKind::BEGIN
35636                | SyntaxKind::CALL
35637                | SyntaxKind::CHECKPOINT
35638                | SyntaxKind::CLOSE
35639                | SyntaxKind::CLUSTER
35640                | SyntaxKind::COMMENT_ON
35641                | SyntaxKind::COMMIT
35642                | SyntaxKind::COPY
35643                | SyntaxKind::CREATE_ACCESS_METHOD
35644                | SyntaxKind::CREATE_AGGREGATE
35645                | SyntaxKind::CREATE_CAST
35646                | SyntaxKind::CREATE_COLLATION
35647                | SyntaxKind::CREATE_CONVERSION
35648                | SyntaxKind::CREATE_DATABASE
35649                | SyntaxKind::CREATE_DOMAIN
35650                | SyntaxKind::CREATE_EVENT_TRIGGER
35651                | SyntaxKind::CREATE_EXTENSION
35652                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
35653                | SyntaxKind::CREATE_FOREIGN_TABLE
35654                | SyntaxKind::CREATE_FUNCTION
35655                | SyntaxKind::CREATE_GROUP
35656                | SyntaxKind::CREATE_INDEX
35657                | SyntaxKind::CREATE_LANGUAGE
35658                | SyntaxKind::CREATE_MATERIALIZED_VIEW
35659                | SyntaxKind::CREATE_OPERATOR
35660                | SyntaxKind::CREATE_OPERATOR_CLASS
35661                | SyntaxKind::CREATE_OPERATOR_FAMILY
35662                | SyntaxKind::CREATE_POLICY
35663                | SyntaxKind::CREATE_PROCEDURE
35664                | SyntaxKind::CREATE_PROPERTY_GRAPH
35665                | SyntaxKind::CREATE_PUBLICATION
35666                | SyntaxKind::CREATE_ROLE
35667                | SyntaxKind::CREATE_RULE
35668                | SyntaxKind::CREATE_SCHEMA
35669                | SyntaxKind::CREATE_SEQUENCE
35670                | SyntaxKind::CREATE_SERVER
35671                | SyntaxKind::CREATE_STATISTICS
35672                | SyntaxKind::CREATE_SUBSCRIPTION
35673                | SyntaxKind::CREATE_TABLE
35674                | SyntaxKind::CREATE_TABLE_AS
35675                | SyntaxKind::CREATE_TABLESPACE
35676                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
35677                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
35678                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
35679                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
35680                | SyntaxKind::CREATE_TRANSFORM
35681                | SyntaxKind::CREATE_TRIGGER
35682                | SyntaxKind::CREATE_TYPE
35683                | SyntaxKind::CREATE_USER
35684                | SyntaxKind::CREATE_USER_MAPPING
35685                | SyntaxKind::CREATE_VIEW
35686                | SyntaxKind::DEALLOCATE
35687                | SyntaxKind::DECLARE
35688                | SyntaxKind::DELETE
35689                | SyntaxKind::DISCARD
35690                | SyntaxKind::DO
35691                | SyntaxKind::DROP_ACCESS_METHOD
35692                | SyntaxKind::DROP_AGGREGATE
35693                | SyntaxKind::DROP_CAST
35694                | SyntaxKind::DROP_COLLATION
35695                | SyntaxKind::DROP_CONVERSION
35696                | SyntaxKind::DROP_DATABASE
35697                | SyntaxKind::DROP_DOMAIN
35698                | SyntaxKind::DROP_EVENT_TRIGGER
35699                | SyntaxKind::DROP_EXTENSION
35700                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
35701                | SyntaxKind::DROP_FOREIGN_TABLE
35702                | SyntaxKind::DROP_FUNCTION
35703                | SyntaxKind::DROP_GROUP
35704                | SyntaxKind::DROP_INDEX
35705                | SyntaxKind::DROP_LANGUAGE
35706                | SyntaxKind::DROP_MATERIALIZED_VIEW
35707                | SyntaxKind::DROP_OPERATOR
35708                | SyntaxKind::DROP_OPERATOR_CLASS
35709                | SyntaxKind::DROP_OPERATOR_FAMILY
35710                | SyntaxKind::DROP_OWNED
35711                | SyntaxKind::DROP_POLICY
35712                | SyntaxKind::DROP_PROCEDURE
35713                | SyntaxKind::DROP_PROPERTY_GRAPH
35714                | SyntaxKind::DROP_PUBLICATION
35715                | SyntaxKind::DROP_ROLE
35716                | SyntaxKind::DROP_ROUTINE
35717                | SyntaxKind::DROP_RULE
35718                | SyntaxKind::DROP_SCHEMA
35719                | SyntaxKind::DROP_SEQUENCE
35720                | SyntaxKind::DROP_SERVER
35721                | SyntaxKind::DROP_STATISTICS
35722                | SyntaxKind::DROP_SUBSCRIPTION
35723                | SyntaxKind::DROP_TABLE
35724                | SyntaxKind::DROP_TABLESPACE
35725                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
35726                | SyntaxKind::DROP_TEXT_SEARCH_DICT
35727                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
35728                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
35729                | SyntaxKind::DROP_TRANSFORM
35730                | SyntaxKind::DROP_TRIGGER
35731                | SyntaxKind::DROP_TYPE
35732                | SyntaxKind::DROP_USER
35733                | SyntaxKind::DROP_USER_MAPPING
35734                | SyntaxKind::DROP_VIEW
35735                | SyntaxKind::EMPTY_STMT
35736                | SyntaxKind::EXECUTE
35737                | SyntaxKind::EXPLAIN
35738                | SyntaxKind::FETCH
35739                | SyntaxKind::GRANT
35740                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
35741                | SyntaxKind::INSERT
35742                | SyntaxKind::LISTEN
35743                | SyntaxKind::LOAD
35744                | SyntaxKind::LOCK
35745                | SyntaxKind::MERGE
35746                | SyntaxKind::MOVE
35747                | SyntaxKind::NOTIFY
35748                | SyntaxKind::PAREN_SELECT
35749                | SyntaxKind::PREPARE
35750                | SyntaxKind::PREPARE_TRANSACTION
35751                | SyntaxKind::REASSIGN
35752                | SyntaxKind::REFRESH
35753                | SyntaxKind::REINDEX
35754                | SyntaxKind::RELEASE_SAVEPOINT
35755                | SyntaxKind::REPACK
35756                | SyntaxKind::RESET
35757                | SyntaxKind::RESET_SESSION_AUTH
35758                | SyntaxKind::REVOKE
35759                | SyntaxKind::ROLLBACK
35760                | SyntaxKind::SAVEPOINT
35761                | SyntaxKind::SECURITY_LABEL
35762                | SyntaxKind::SELECT
35763                | SyntaxKind::SELECT_INTO
35764                | SyntaxKind::SET
35765                | SyntaxKind::SET_CONSTRAINTS
35766                | SyntaxKind::SET_ROLE
35767                | SyntaxKind::SET_SESSION_AUTH
35768                | SyntaxKind::SET_TRANSACTION
35769                | SyntaxKind::SHOW
35770                | SyntaxKind::TABLE
35771                | SyntaxKind::TRUNCATE
35772                | SyntaxKind::UNLISTEN
35773                | SyntaxKind::UPDATE
35774                | SyntaxKind::VACUUM
35775                | SyntaxKind::VALUES
35776        )
35777    }
35778    #[inline]
35779    fn cast(syntax: SyntaxNode) -> Option<Self> {
35780        let res = match syntax.kind() {
35781            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
35782            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
35783            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
35784            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
35785            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
35786                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
35787            }
35788            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
35789            SyntaxKind::ALTER_EVENT_TRIGGER => {
35790                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
35791            }
35792            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
35793            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
35794                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
35795            }
35796            SyntaxKind::ALTER_FOREIGN_TABLE => {
35797                Stmt::AlterForeignTable(AlterForeignTable { syntax })
35798            }
35799            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
35800            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
35801            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
35802            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
35803            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
35804            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
35805                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
35806            }
35807            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
35808            SyntaxKind::ALTER_OPERATOR_CLASS => {
35809                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
35810            }
35811            SyntaxKind::ALTER_OPERATOR_FAMILY => {
35812                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
35813            }
35814            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
35815            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
35816            SyntaxKind::ALTER_PROPERTY_GRAPH => {
35817                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
35818            }
35819            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
35820            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
35821            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
35822            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
35823            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
35824            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
35825            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
35826            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
35827            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
35828            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
35829            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
35830            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
35831            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
35832                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
35833            }
35834            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
35835                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
35836            }
35837            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
35838                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
35839            }
35840            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
35841                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
35842            }
35843            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
35844            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
35845            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
35846            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
35847            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
35848            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
35849            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
35850            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
35851            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
35852            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
35853            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
35854            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
35855            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
35856            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
35857            SyntaxKind::CREATE_ACCESS_METHOD => {
35858                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
35859            }
35860            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
35861            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
35862            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
35863            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
35864            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
35865            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
35866            SyntaxKind::CREATE_EVENT_TRIGGER => {
35867                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
35868            }
35869            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
35870            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
35871                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
35872            }
35873            SyntaxKind::CREATE_FOREIGN_TABLE => {
35874                Stmt::CreateForeignTable(CreateForeignTable { syntax })
35875            }
35876            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
35877            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
35878            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
35879            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
35880            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
35881                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
35882            }
35883            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
35884            SyntaxKind::CREATE_OPERATOR_CLASS => {
35885                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
35886            }
35887            SyntaxKind::CREATE_OPERATOR_FAMILY => {
35888                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
35889            }
35890            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
35891            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
35892            SyntaxKind::CREATE_PROPERTY_GRAPH => {
35893                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
35894            }
35895            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
35896            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
35897            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
35898            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
35899            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
35900            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
35901            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
35902            SyntaxKind::CREATE_SUBSCRIPTION => {
35903                Stmt::CreateSubscription(CreateSubscription { syntax })
35904            }
35905            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
35906            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
35907            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
35908            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
35909                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
35910            }
35911            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
35912                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
35913            }
35914            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
35915                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
35916            }
35917            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
35918                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
35919            }
35920            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
35921            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
35922            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
35923            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
35924            SyntaxKind::CREATE_USER_MAPPING => {
35925                Stmt::CreateUserMapping(CreateUserMapping { syntax })
35926            }
35927            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
35928            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
35929            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
35930            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
35931            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
35932            SyntaxKind::DO => Stmt::Do(Do { syntax }),
35933            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
35934            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
35935            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
35936            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
35937            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
35938            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
35939            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
35940            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
35941            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
35942            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
35943                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
35944            }
35945            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
35946            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
35947            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
35948            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
35949            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
35950            SyntaxKind::DROP_MATERIALIZED_VIEW => {
35951                Stmt::DropMaterializedView(DropMaterializedView { syntax })
35952            }
35953            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
35954            SyntaxKind::DROP_OPERATOR_CLASS => {
35955                Stmt::DropOperatorClass(DropOperatorClass { syntax })
35956            }
35957            SyntaxKind::DROP_OPERATOR_FAMILY => {
35958                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
35959            }
35960            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
35961            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
35962            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
35963            SyntaxKind::DROP_PROPERTY_GRAPH => {
35964                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
35965            }
35966            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
35967            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
35968            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
35969            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
35970            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
35971            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
35972            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
35973            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
35974            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
35975            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
35976            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
35977            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
35978                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
35979            }
35980            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
35981                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
35982            }
35983            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
35984                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
35985            }
35986            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
35987                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
35988            }
35989            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
35990            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
35991            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
35992            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
35993            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
35994            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
35995            SyntaxKind::EMPTY_STMT => Stmt::EmptyStmt(EmptyStmt { syntax }),
35996            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
35997            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
35998            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
35999            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
36000            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
36001                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
36002            }
36003            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
36004            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
36005            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
36006            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
36007            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
36008            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
36009            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
36010            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
36011            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
36012            SyntaxKind::PREPARE_TRANSACTION => {
36013                Stmt::PrepareTransaction(PrepareTransaction { syntax })
36014            }
36015            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
36016            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
36017            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
36018            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
36019            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
36020            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
36021            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
36022            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
36023            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
36024            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
36025            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
36026            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
36027            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
36028            SyntaxKind::SET => Stmt::Set(Set { syntax }),
36029            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
36030            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
36031            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
36032            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
36033            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
36034            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
36035            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
36036            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
36037            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
36038            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
36039            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
36040            _ => {
36041                return None;
36042            }
36043        };
36044        Some(res)
36045    }
36046    #[inline]
36047    fn syntax(&self) -> &SyntaxNode {
36048        match self {
36049            Stmt::AlterAggregate(it) => &it.syntax,
36050            Stmt::AlterCollation(it) => &it.syntax,
36051            Stmt::AlterConversion(it) => &it.syntax,
36052            Stmt::AlterDatabase(it) => &it.syntax,
36053            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
36054            Stmt::AlterDomain(it) => &it.syntax,
36055            Stmt::AlterEventTrigger(it) => &it.syntax,
36056            Stmt::AlterExtension(it) => &it.syntax,
36057            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
36058            Stmt::AlterForeignTable(it) => &it.syntax,
36059            Stmt::AlterFunction(it) => &it.syntax,
36060            Stmt::AlterGroup(it) => &it.syntax,
36061            Stmt::AlterIndex(it) => &it.syntax,
36062            Stmt::AlterLanguage(it) => &it.syntax,
36063            Stmt::AlterLargeObject(it) => &it.syntax,
36064            Stmt::AlterMaterializedView(it) => &it.syntax,
36065            Stmt::AlterOperator(it) => &it.syntax,
36066            Stmt::AlterOperatorClass(it) => &it.syntax,
36067            Stmt::AlterOperatorFamily(it) => &it.syntax,
36068            Stmt::AlterPolicy(it) => &it.syntax,
36069            Stmt::AlterProcedure(it) => &it.syntax,
36070            Stmt::AlterPropertyGraph(it) => &it.syntax,
36071            Stmt::AlterPublication(it) => &it.syntax,
36072            Stmt::AlterRole(it) => &it.syntax,
36073            Stmt::AlterRoutine(it) => &it.syntax,
36074            Stmt::AlterRule(it) => &it.syntax,
36075            Stmt::AlterSchema(it) => &it.syntax,
36076            Stmt::AlterSequence(it) => &it.syntax,
36077            Stmt::AlterServer(it) => &it.syntax,
36078            Stmt::AlterStatistics(it) => &it.syntax,
36079            Stmt::AlterSubscription(it) => &it.syntax,
36080            Stmt::AlterSystem(it) => &it.syntax,
36081            Stmt::AlterTable(it) => &it.syntax,
36082            Stmt::AlterTablespace(it) => &it.syntax,
36083            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
36084            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
36085            Stmt::AlterTextSearchParser(it) => &it.syntax,
36086            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
36087            Stmt::AlterTrigger(it) => &it.syntax,
36088            Stmt::AlterType(it) => &it.syntax,
36089            Stmt::AlterUser(it) => &it.syntax,
36090            Stmt::AlterUserMapping(it) => &it.syntax,
36091            Stmt::AlterView(it) => &it.syntax,
36092            Stmt::Analyze(it) => &it.syntax,
36093            Stmt::Begin(it) => &it.syntax,
36094            Stmt::Call(it) => &it.syntax,
36095            Stmt::Checkpoint(it) => &it.syntax,
36096            Stmt::Close(it) => &it.syntax,
36097            Stmt::Cluster(it) => &it.syntax,
36098            Stmt::CommentOn(it) => &it.syntax,
36099            Stmt::Commit(it) => &it.syntax,
36100            Stmt::Copy(it) => &it.syntax,
36101            Stmt::CreateAccessMethod(it) => &it.syntax,
36102            Stmt::CreateAggregate(it) => &it.syntax,
36103            Stmt::CreateCast(it) => &it.syntax,
36104            Stmt::CreateCollation(it) => &it.syntax,
36105            Stmt::CreateConversion(it) => &it.syntax,
36106            Stmt::CreateDatabase(it) => &it.syntax,
36107            Stmt::CreateDomain(it) => &it.syntax,
36108            Stmt::CreateEventTrigger(it) => &it.syntax,
36109            Stmt::CreateExtension(it) => &it.syntax,
36110            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
36111            Stmt::CreateForeignTable(it) => &it.syntax,
36112            Stmt::CreateFunction(it) => &it.syntax,
36113            Stmt::CreateGroup(it) => &it.syntax,
36114            Stmt::CreateIndex(it) => &it.syntax,
36115            Stmt::CreateLanguage(it) => &it.syntax,
36116            Stmt::CreateMaterializedView(it) => &it.syntax,
36117            Stmt::CreateOperator(it) => &it.syntax,
36118            Stmt::CreateOperatorClass(it) => &it.syntax,
36119            Stmt::CreateOperatorFamily(it) => &it.syntax,
36120            Stmt::CreatePolicy(it) => &it.syntax,
36121            Stmt::CreateProcedure(it) => &it.syntax,
36122            Stmt::CreatePropertyGraph(it) => &it.syntax,
36123            Stmt::CreatePublication(it) => &it.syntax,
36124            Stmt::CreateRole(it) => &it.syntax,
36125            Stmt::CreateRule(it) => &it.syntax,
36126            Stmt::CreateSchema(it) => &it.syntax,
36127            Stmt::CreateSequence(it) => &it.syntax,
36128            Stmt::CreateServer(it) => &it.syntax,
36129            Stmt::CreateStatistics(it) => &it.syntax,
36130            Stmt::CreateSubscription(it) => &it.syntax,
36131            Stmt::CreateTable(it) => &it.syntax,
36132            Stmt::CreateTableAs(it) => &it.syntax,
36133            Stmt::CreateTablespace(it) => &it.syntax,
36134            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
36135            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
36136            Stmt::CreateTextSearchParser(it) => &it.syntax,
36137            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
36138            Stmt::CreateTransform(it) => &it.syntax,
36139            Stmt::CreateTrigger(it) => &it.syntax,
36140            Stmt::CreateType(it) => &it.syntax,
36141            Stmt::CreateUser(it) => &it.syntax,
36142            Stmt::CreateUserMapping(it) => &it.syntax,
36143            Stmt::CreateView(it) => &it.syntax,
36144            Stmt::Deallocate(it) => &it.syntax,
36145            Stmt::Declare(it) => &it.syntax,
36146            Stmt::Delete(it) => &it.syntax,
36147            Stmt::Discard(it) => &it.syntax,
36148            Stmt::Do(it) => &it.syntax,
36149            Stmt::DropAccessMethod(it) => &it.syntax,
36150            Stmt::DropAggregate(it) => &it.syntax,
36151            Stmt::DropCast(it) => &it.syntax,
36152            Stmt::DropCollation(it) => &it.syntax,
36153            Stmt::DropConversion(it) => &it.syntax,
36154            Stmt::DropDatabase(it) => &it.syntax,
36155            Stmt::DropDomain(it) => &it.syntax,
36156            Stmt::DropEventTrigger(it) => &it.syntax,
36157            Stmt::DropExtension(it) => &it.syntax,
36158            Stmt::DropForeignDataWrapper(it) => &it.syntax,
36159            Stmt::DropForeignTable(it) => &it.syntax,
36160            Stmt::DropFunction(it) => &it.syntax,
36161            Stmt::DropGroup(it) => &it.syntax,
36162            Stmt::DropIndex(it) => &it.syntax,
36163            Stmt::DropLanguage(it) => &it.syntax,
36164            Stmt::DropMaterializedView(it) => &it.syntax,
36165            Stmt::DropOperator(it) => &it.syntax,
36166            Stmt::DropOperatorClass(it) => &it.syntax,
36167            Stmt::DropOperatorFamily(it) => &it.syntax,
36168            Stmt::DropOwned(it) => &it.syntax,
36169            Stmt::DropPolicy(it) => &it.syntax,
36170            Stmt::DropProcedure(it) => &it.syntax,
36171            Stmt::DropPropertyGraph(it) => &it.syntax,
36172            Stmt::DropPublication(it) => &it.syntax,
36173            Stmt::DropRole(it) => &it.syntax,
36174            Stmt::DropRoutine(it) => &it.syntax,
36175            Stmt::DropRule(it) => &it.syntax,
36176            Stmt::DropSchema(it) => &it.syntax,
36177            Stmt::DropSequence(it) => &it.syntax,
36178            Stmt::DropServer(it) => &it.syntax,
36179            Stmt::DropStatistics(it) => &it.syntax,
36180            Stmt::DropSubscription(it) => &it.syntax,
36181            Stmt::DropTable(it) => &it.syntax,
36182            Stmt::DropTablespace(it) => &it.syntax,
36183            Stmt::DropTextSearchConfig(it) => &it.syntax,
36184            Stmt::DropTextSearchDict(it) => &it.syntax,
36185            Stmt::DropTextSearchParser(it) => &it.syntax,
36186            Stmt::DropTextSearchTemplate(it) => &it.syntax,
36187            Stmt::DropTransform(it) => &it.syntax,
36188            Stmt::DropTrigger(it) => &it.syntax,
36189            Stmt::DropType(it) => &it.syntax,
36190            Stmt::DropUser(it) => &it.syntax,
36191            Stmt::DropUserMapping(it) => &it.syntax,
36192            Stmt::DropView(it) => &it.syntax,
36193            Stmt::EmptyStmt(it) => &it.syntax,
36194            Stmt::Execute(it) => &it.syntax,
36195            Stmt::Explain(it) => &it.syntax,
36196            Stmt::Fetch(it) => &it.syntax,
36197            Stmt::Grant(it) => &it.syntax,
36198            Stmt::ImportForeignSchema(it) => &it.syntax,
36199            Stmt::Insert(it) => &it.syntax,
36200            Stmt::Listen(it) => &it.syntax,
36201            Stmt::Load(it) => &it.syntax,
36202            Stmt::Lock(it) => &it.syntax,
36203            Stmt::Merge(it) => &it.syntax,
36204            Stmt::Move(it) => &it.syntax,
36205            Stmt::Notify(it) => &it.syntax,
36206            Stmt::ParenSelect(it) => &it.syntax,
36207            Stmt::Prepare(it) => &it.syntax,
36208            Stmt::PrepareTransaction(it) => &it.syntax,
36209            Stmt::Reassign(it) => &it.syntax,
36210            Stmt::Refresh(it) => &it.syntax,
36211            Stmt::Reindex(it) => &it.syntax,
36212            Stmt::ReleaseSavepoint(it) => &it.syntax,
36213            Stmt::Repack(it) => &it.syntax,
36214            Stmt::Reset(it) => &it.syntax,
36215            Stmt::ResetSessionAuth(it) => &it.syntax,
36216            Stmt::Revoke(it) => &it.syntax,
36217            Stmt::Rollback(it) => &it.syntax,
36218            Stmt::Savepoint(it) => &it.syntax,
36219            Stmt::SecurityLabel(it) => &it.syntax,
36220            Stmt::Select(it) => &it.syntax,
36221            Stmt::SelectInto(it) => &it.syntax,
36222            Stmt::Set(it) => &it.syntax,
36223            Stmt::SetConstraints(it) => &it.syntax,
36224            Stmt::SetRole(it) => &it.syntax,
36225            Stmt::SetSessionAuth(it) => &it.syntax,
36226            Stmt::SetTransaction(it) => &it.syntax,
36227            Stmt::Show(it) => &it.syntax,
36228            Stmt::Table(it) => &it.syntax,
36229            Stmt::Truncate(it) => &it.syntax,
36230            Stmt::Unlisten(it) => &it.syntax,
36231            Stmt::Update(it) => &it.syntax,
36232            Stmt::Vacuum(it) => &it.syntax,
36233            Stmt::Values(it) => &it.syntax,
36234        }
36235    }
36236}
36237impl From<AlterAggregate> for Stmt {
36238    #[inline]
36239    fn from(node: AlterAggregate) -> Stmt {
36240        Stmt::AlterAggregate(node)
36241    }
36242}
36243impl From<AlterCollation> for Stmt {
36244    #[inline]
36245    fn from(node: AlterCollation) -> Stmt {
36246        Stmt::AlterCollation(node)
36247    }
36248}
36249impl From<AlterConversion> for Stmt {
36250    #[inline]
36251    fn from(node: AlterConversion) -> Stmt {
36252        Stmt::AlterConversion(node)
36253    }
36254}
36255impl From<AlterDatabase> for Stmt {
36256    #[inline]
36257    fn from(node: AlterDatabase) -> Stmt {
36258        Stmt::AlterDatabase(node)
36259    }
36260}
36261impl From<AlterDefaultPrivileges> for Stmt {
36262    #[inline]
36263    fn from(node: AlterDefaultPrivileges) -> Stmt {
36264        Stmt::AlterDefaultPrivileges(node)
36265    }
36266}
36267impl From<AlterDomain> for Stmt {
36268    #[inline]
36269    fn from(node: AlterDomain) -> Stmt {
36270        Stmt::AlterDomain(node)
36271    }
36272}
36273impl From<AlterEventTrigger> for Stmt {
36274    #[inline]
36275    fn from(node: AlterEventTrigger) -> Stmt {
36276        Stmt::AlterEventTrigger(node)
36277    }
36278}
36279impl From<AlterExtension> for Stmt {
36280    #[inline]
36281    fn from(node: AlterExtension) -> Stmt {
36282        Stmt::AlterExtension(node)
36283    }
36284}
36285impl From<AlterForeignDataWrapper> for Stmt {
36286    #[inline]
36287    fn from(node: AlterForeignDataWrapper) -> Stmt {
36288        Stmt::AlterForeignDataWrapper(node)
36289    }
36290}
36291impl From<AlterForeignTable> for Stmt {
36292    #[inline]
36293    fn from(node: AlterForeignTable) -> Stmt {
36294        Stmt::AlterForeignTable(node)
36295    }
36296}
36297impl From<AlterFunction> for Stmt {
36298    #[inline]
36299    fn from(node: AlterFunction) -> Stmt {
36300        Stmt::AlterFunction(node)
36301    }
36302}
36303impl From<AlterGroup> for Stmt {
36304    #[inline]
36305    fn from(node: AlterGroup) -> Stmt {
36306        Stmt::AlterGroup(node)
36307    }
36308}
36309impl From<AlterIndex> for Stmt {
36310    #[inline]
36311    fn from(node: AlterIndex) -> Stmt {
36312        Stmt::AlterIndex(node)
36313    }
36314}
36315impl From<AlterLanguage> for Stmt {
36316    #[inline]
36317    fn from(node: AlterLanguage) -> Stmt {
36318        Stmt::AlterLanguage(node)
36319    }
36320}
36321impl From<AlterLargeObject> for Stmt {
36322    #[inline]
36323    fn from(node: AlterLargeObject) -> Stmt {
36324        Stmt::AlterLargeObject(node)
36325    }
36326}
36327impl From<AlterMaterializedView> for Stmt {
36328    #[inline]
36329    fn from(node: AlterMaterializedView) -> Stmt {
36330        Stmt::AlterMaterializedView(node)
36331    }
36332}
36333impl From<AlterOperator> for Stmt {
36334    #[inline]
36335    fn from(node: AlterOperator) -> Stmt {
36336        Stmt::AlterOperator(node)
36337    }
36338}
36339impl From<AlterOperatorClass> for Stmt {
36340    #[inline]
36341    fn from(node: AlterOperatorClass) -> Stmt {
36342        Stmt::AlterOperatorClass(node)
36343    }
36344}
36345impl From<AlterOperatorFamily> for Stmt {
36346    #[inline]
36347    fn from(node: AlterOperatorFamily) -> Stmt {
36348        Stmt::AlterOperatorFamily(node)
36349    }
36350}
36351impl From<AlterPolicy> for Stmt {
36352    #[inline]
36353    fn from(node: AlterPolicy) -> Stmt {
36354        Stmt::AlterPolicy(node)
36355    }
36356}
36357impl From<AlterProcedure> for Stmt {
36358    #[inline]
36359    fn from(node: AlterProcedure) -> Stmt {
36360        Stmt::AlterProcedure(node)
36361    }
36362}
36363impl From<AlterPropertyGraph> for Stmt {
36364    #[inline]
36365    fn from(node: AlterPropertyGraph) -> Stmt {
36366        Stmt::AlterPropertyGraph(node)
36367    }
36368}
36369impl From<AlterPublication> for Stmt {
36370    #[inline]
36371    fn from(node: AlterPublication) -> Stmt {
36372        Stmt::AlterPublication(node)
36373    }
36374}
36375impl From<AlterRole> for Stmt {
36376    #[inline]
36377    fn from(node: AlterRole) -> Stmt {
36378        Stmt::AlterRole(node)
36379    }
36380}
36381impl From<AlterRoutine> for Stmt {
36382    #[inline]
36383    fn from(node: AlterRoutine) -> Stmt {
36384        Stmt::AlterRoutine(node)
36385    }
36386}
36387impl From<AlterRule> for Stmt {
36388    #[inline]
36389    fn from(node: AlterRule) -> Stmt {
36390        Stmt::AlterRule(node)
36391    }
36392}
36393impl From<AlterSchema> for Stmt {
36394    #[inline]
36395    fn from(node: AlterSchema) -> Stmt {
36396        Stmt::AlterSchema(node)
36397    }
36398}
36399impl From<AlterSequence> for Stmt {
36400    #[inline]
36401    fn from(node: AlterSequence) -> Stmt {
36402        Stmt::AlterSequence(node)
36403    }
36404}
36405impl From<AlterServer> for Stmt {
36406    #[inline]
36407    fn from(node: AlterServer) -> Stmt {
36408        Stmt::AlterServer(node)
36409    }
36410}
36411impl From<AlterStatistics> for Stmt {
36412    #[inline]
36413    fn from(node: AlterStatistics) -> Stmt {
36414        Stmt::AlterStatistics(node)
36415    }
36416}
36417impl From<AlterSubscription> for Stmt {
36418    #[inline]
36419    fn from(node: AlterSubscription) -> Stmt {
36420        Stmt::AlterSubscription(node)
36421    }
36422}
36423impl From<AlterSystem> for Stmt {
36424    #[inline]
36425    fn from(node: AlterSystem) -> Stmt {
36426        Stmt::AlterSystem(node)
36427    }
36428}
36429impl From<AlterTable> for Stmt {
36430    #[inline]
36431    fn from(node: AlterTable) -> Stmt {
36432        Stmt::AlterTable(node)
36433    }
36434}
36435impl From<AlterTablespace> for Stmt {
36436    #[inline]
36437    fn from(node: AlterTablespace) -> Stmt {
36438        Stmt::AlterTablespace(node)
36439    }
36440}
36441impl From<AlterTextSearchConfiguration> for Stmt {
36442    #[inline]
36443    fn from(node: AlterTextSearchConfiguration) -> Stmt {
36444        Stmt::AlterTextSearchConfiguration(node)
36445    }
36446}
36447impl From<AlterTextSearchDictionary> for Stmt {
36448    #[inline]
36449    fn from(node: AlterTextSearchDictionary) -> Stmt {
36450        Stmt::AlterTextSearchDictionary(node)
36451    }
36452}
36453impl From<AlterTextSearchParser> for Stmt {
36454    #[inline]
36455    fn from(node: AlterTextSearchParser) -> Stmt {
36456        Stmt::AlterTextSearchParser(node)
36457    }
36458}
36459impl From<AlterTextSearchTemplate> for Stmt {
36460    #[inline]
36461    fn from(node: AlterTextSearchTemplate) -> Stmt {
36462        Stmt::AlterTextSearchTemplate(node)
36463    }
36464}
36465impl From<AlterTrigger> for Stmt {
36466    #[inline]
36467    fn from(node: AlterTrigger) -> Stmt {
36468        Stmt::AlterTrigger(node)
36469    }
36470}
36471impl From<AlterType> for Stmt {
36472    #[inline]
36473    fn from(node: AlterType) -> Stmt {
36474        Stmt::AlterType(node)
36475    }
36476}
36477impl From<AlterUser> for Stmt {
36478    #[inline]
36479    fn from(node: AlterUser) -> Stmt {
36480        Stmt::AlterUser(node)
36481    }
36482}
36483impl From<AlterUserMapping> for Stmt {
36484    #[inline]
36485    fn from(node: AlterUserMapping) -> Stmt {
36486        Stmt::AlterUserMapping(node)
36487    }
36488}
36489impl From<AlterView> for Stmt {
36490    #[inline]
36491    fn from(node: AlterView) -> Stmt {
36492        Stmt::AlterView(node)
36493    }
36494}
36495impl From<Analyze> for Stmt {
36496    #[inline]
36497    fn from(node: Analyze) -> Stmt {
36498        Stmt::Analyze(node)
36499    }
36500}
36501impl From<Begin> for Stmt {
36502    #[inline]
36503    fn from(node: Begin) -> Stmt {
36504        Stmt::Begin(node)
36505    }
36506}
36507impl From<Call> for Stmt {
36508    #[inline]
36509    fn from(node: Call) -> Stmt {
36510        Stmt::Call(node)
36511    }
36512}
36513impl From<Checkpoint> for Stmt {
36514    #[inline]
36515    fn from(node: Checkpoint) -> Stmt {
36516        Stmt::Checkpoint(node)
36517    }
36518}
36519impl From<Close> for Stmt {
36520    #[inline]
36521    fn from(node: Close) -> Stmt {
36522        Stmt::Close(node)
36523    }
36524}
36525impl From<Cluster> for Stmt {
36526    #[inline]
36527    fn from(node: Cluster) -> Stmt {
36528        Stmt::Cluster(node)
36529    }
36530}
36531impl From<CommentOn> for Stmt {
36532    #[inline]
36533    fn from(node: CommentOn) -> Stmt {
36534        Stmt::CommentOn(node)
36535    }
36536}
36537impl From<Commit> for Stmt {
36538    #[inline]
36539    fn from(node: Commit) -> Stmt {
36540        Stmt::Commit(node)
36541    }
36542}
36543impl From<Copy> for Stmt {
36544    #[inline]
36545    fn from(node: Copy) -> Stmt {
36546        Stmt::Copy(node)
36547    }
36548}
36549impl From<CreateAccessMethod> for Stmt {
36550    #[inline]
36551    fn from(node: CreateAccessMethod) -> Stmt {
36552        Stmt::CreateAccessMethod(node)
36553    }
36554}
36555impl From<CreateAggregate> for Stmt {
36556    #[inline]
36557    fn from(node: CreateAggregate) -> Stmt {
36558        Stmt::CreateAggregate(node)
36559    }
36560}
36561impl From<CreateCast> for Stmt {
36562    #[inline]
36563    fn from(node: CreateCast) -> Stmt {
36564        Stmt::CreateCast(node)
36565    }
36566}
36567impl From<CreateCollation> for Stmt {
36568    #[inline]
36569    fn from(node: CreateCollation) -> Stmt {
36570        Stmt::CreateCollation(node)
36571    }
36572}
36573impl From<CreateConversion> for Stmt {
36574    #[inline]
36575    fn from(node: CreateConversion) -> Stmt {
36576        Stmt::CreateConversion(node)
36577    }
36578}
36579impl From<CreateDatabase> for Stmt {
36580    #[inline]
36581    fn from(node: CreateDatabase) -> Stmt {
36582        Stmt::CreateDatabase(node)
36583    }
36584}
36585impl From<CreateDomain> for Stmt {
36586    #[inline]
36587    fn from(node: CreateDomain) -> Stmt {
36588        Stmt::CreateDomain(node)
36589    }
36590}
36591impl From<CreateEventTrigger> for Stmt {
36592    #[inline]
36593    fn from(node: CreateEventTrigger) -> Stmt {
36594        Stmt::CreateEventTrigger(node)
36595    }
36596}
36597impl From<CreateExtension> for Stmt {
36598    #[inline]
36599    fn from(node: CreateExtension) -> Stmt {
36600        Stmt::CreateExtension(node)
36601    }
36602}
36603impl From<CreateForeignDataWrapper> for Stmt {
36604    #[inline]
36605    fn from(node: CreateForeignDataWrapper) -> Stmt {
36606        Stmt::CreateForeignDataWrapper(node)
36607    }
36608}
36609impl From<CreateForeignTable> for Stmt {
36610    #[inline]
36611    fn from(node: CreateForeignTable) -> Stmt {
36612        Stmt::CreateForeignTable(node)
36613    }
36614}
36615impl From<CreateFunction> for Stmt {
36616    #[inline]
36617    fn from(node: CreateFunction) -> Stmt {
36618        Stmt::CreateFunction(node)
36619    }
36620}
36621impl From<CreateGroup> for Stmt {
36622    #[inline]
36623    fn from(node: CreateGroup) -> Stmt {
36624        Stmt::CreateGroup(node)
36625    }
36626}
36627impl From<CreateIndex> for Stmt {
36628    #[inline]
36629    fn from(node: CreateIndex) -> Stmt {
36630        Stmt::CreateIndex(node)
36631    }
36632}
36633impl From<CreateLanguage> for Stmt {
36634    #[inline]
36635    fn from(node: CreateLanguage) -> Stmt {
36636        Stmt::CreateLanguage(node)
36637    }
36638}
36639impl From<CreateMaterializedView> for Stmt {
36640    #[inline]
36641    fn from(node: CreateMaterializedView) -> Stmt {
36642        Stmt::CreateMaterializedView(node)
36643    }
36644}
36645impl From<CreateOperator> for Stmt {
36646    #[inline]
36647    fn from(node: CreateOperator) -> Stmt {
36648        Stmt::CreateOperator(node)
36649    }
36650}
36651impl From<CreateOperatorClass> for Stmt {
36652    #[inline]
36653    fn from(node: CreateOperatorClass) -> Stmt {
36654        Stmt::CreateOperatorClass(node)
36655    }
36656}
36657impl From<CreateOperatorFamily> for Stmt {
36658    #[inline]
36659    fn from(node: CreateOperatorFamily) -> Stmt {
36660        Stmt::CreateOperatorFamily(node)
36661    }
36662}
36663impl From<CreatePolicy> for Stmt {
36664    #[inline]
36665    fn from(node: CreatePolicy) -> Stmt {
36666        Stmt::CreatePolicy(node)
36667    }
36668}
36669impl From<CreateProcedure> for Stmt {
36670    #[inline]
36671    fn from(node: CreateProcedure) -> Stmt {
36672        Stmt::CreateProcedure(node)
36673    }
36674}
36675impl From<CreatePropertyGraph> for Stmt {
36676    #[inline]
36677    fn from(node: CreatePropertyGraph) -> Stmt {
36678        Stmt::CreatePropertyGraph(node)
36679    }
36680}
36681impl From<CreatePublication> for Stmt {
36682    #[inline]
36683    fn from(node: CreatePublication) -> Stmt {
36684        Stmt::CreatePublication(node)
36685    }
36686}
36687impl From<CreateRole> for Stmt {
36688    #[inline]
36689    fn from(node: CreateRole) -> Stmt {
36690        Stmt::CreateRole(node)
36691    }
36692}
36693impl From<CreateRule> for Stmt {
36694    #[inline]
36695    fn from(node: CreateRule) -> Stmt {
36696        Stmt::CreateRule(node)
36697    }
36698}
36699impl From<CreateSchema> for Stmt {
36700    #[inline]
36701    fn from(node: CreateSchema) -> Stmt {
36702        Stmt::CreateSchema(node)
36703    }
36704}
36705impl From<CreateSequence> for Stmt {
36706    #[inline]
36707    fn from(node: CreateSequence) -> Stmt {
36708        Stmt::CreateSequence(node)
36709    }
36710}
36711impl From<CreateServer> for Stmt {
36712    #[inline]
36713    fn from(node: CreateServer) -> Stmt {
36714        Stmt::CreateServer(node)
36715    }
36716}
36717impl From<CreateStatistics> for Stmt {
36718    #[inline]
36719    fn from(node: CreateStatistics) -> Stmt {
36720        Stmt::CreateStatistics(node)
36721    }
36722}
36723impl From<CreateSubscription> for Stmt {
36724    #[inline]
36725    fn from(node: CreateSubscription) -> Stmt {
36726        Stmt::CreateSubscription(node)
36727    }
36728}
36729impl From<CreateTable> for Stmt {
36730    #[inline]
36731    fn from(node: CreateTable) -> Stmt {
36732        Stmt::CreateTable(node)
36733    }
36734}
36735impl From<CreateTableAs> for Stmt {
36736    #[inline]
36737    fn from(node: CreateTableAs) -> Stmt {
36738        Stmt::CreateTableAs(node)
36739    }
36740}
36741impl From<CreateTablespace> for Stmt {
36742    #[inline]
36743    fn from(node: CreateTablespace) -> Stmt {
36744        Stmt::CreateTablespace(node)
36745    }
36746}
36747impl From<CreateTextSearchConfiguration> for Stmt {
36748    #[inline]
36749    fn from(node: CreateTextSearchConfiguration) -> Stmt {
36750        Stmt::CreateTextSearchConfiguration(node)
36751    }
36752}
36753impl From<CreateTextSearchDictionary> for Stmt {
36754    #[inline]
36755    fn from(node: CreateTextSearchDictionary) -> Stmt {
36756        Stmt::CreateTextSearchDictionary(node)
36757    }
36758}
36759impl From<CreateTextSearchParser> for Stmt {
36760    #[inline]
36761    fn from(node: CreateTextSearchParser) -> Stmt {
36762        Stmt::CreateTextSearchParser(node)
36763    }
36764}
36765impl From<CreateTextSearchTemplate> for Stmt {
36766    #[inline]
36767    fn from(node: CreateTextSearchTemplate) -> Stmt {
36768        Stmt::CreateTextSearchTemplate(node)
36769    }
36770}
36771impl From<CreateTransform> for Stmt {
36772    #[inline]
36773    fn from(node: CreateTransform) -> Stmt {
36774        Stmt::CreateTransform(node)
36775    }
36776}
36777impl From<CreateTrigger> for Stmt {
36778    #[inline]
36779    fn from(node: CreateTrigger) -> Stmt {
36780        Stmt::CreateTrigger(node)
36781    }
36782}
36783impl From<CreateType> for Stmt {
36784    #[inline]
36785    fn from(node: CreateType) -> Stmt {
36786        Stmt::CreateType(node)
36787    }
36788}
36789impl From<CreateUser> for Stmt {
36790    #[inline]
36791    fn from(node: CreateUser) -> Stmt {
36792        Stmt::CreateUser(node)
36793    }
36794}
36795impl From<CreateUserMapping> for Stmt {
36796    #[inline]
36797    fn from(node: CreateUserMapping) -> Stmt {
36798        Stmt::CreateUserMapping(node)
36799    }
36800}
36801impl From<CreateView> for Stmt {
36802    #[inline]
36803    fn from(node: CreateView) -> Stmt {
36804        Stmt::CreateView(node)
36805    }
36806}
36807impl From<Deallocate> for Stmt {
36808    #[inline]
36809    fn from(node: Deallocate) -> Stmt {
36810        Stmt::Deallocate(node)
36811    }
36812}
36813impl From<Declare> for Stmt {
36814    #[inline]
36815    fn from(node: Declare) -> Stmt {
36816        Stmt::Declare(node)
36817    }
36818}
36819impl From<Delete> for Stmt {
36820    #[inline]
36821    fn from(node: Delete) -> Stmt {
36822        Stmt::Delete(node)
36823    }
36824}
36825impl From<Discard> for Stmt {
36826    #[inline]
36827    fn from(node: Discard) -> Stmt {
36828        Stmt::Discard(node)
36829    }
36830}
36831impl From<Do> for Stmt {
36832    #[inline]
36833    fn from(node: Do) -> Stmt {
36834        Stmt::Do(node)
36835    }
36836}
36837impl From<DropAccessMethod> for Stmt {
36838    #[inline]
36839    fn from(node: DropAccessMethod) -> Stmt {
36840        Stmt::DropAccessMethod(node)
36841    }
36842}
36843impl From<DropAggregate> for Stmt {
36844    #[inline]
36845    fn from(node: DropAggregate) -> Stmt {
36846        Stmt::DropAggregate(node)
36847    }
36848}
36849impl From<DropCast> for Stmt {
36850    #[inline]
36851    fn from(node: DropCast) -> Stmt {
36852        Stmt::DropCast(node)
36853    }
36854}
36855impl From<DropCollation> for Stmt {
36856    #[inline]
36857    fn from(node: DropCollation) -> Stmt {
36858        Stmt::DropCollation(node)
36859    }
36860}
36861impl From<DropConversion> for Stmt {
36862    #[inline]
36863    fn from(node: DropConversion) -> Stmt {
36864        Stmt::DropConversion(node)
36865    }
36866}
36867impl From<DropDatabase> for Stmt {
36868    #[inline]
36869    fn from(node: DropDatabase) -> Stmt {
36870        Stmt::DropDatabase(node)
36871    }
36872}
36873impl From<DropDomain> for Stmt {
36874    #[inline]
36875    fn from(node: DropDomain) -> Stmt {
36876        Stmt::DropDomain(node)
36877    }
36878}
36879impl From<DropEventTrigger> for Stmt {
36880    #[inline]
36881    fn from(node: DropEventTrigger) -> Stmt {
36882        Stmt::DropEventTrigger(node)
36883    }
36884}
36885impl From<DropExtension> for Stmt {
36886    #[inline]
36887    fn from(node: DropExtension) -> Stmt {
36888        Stmt::DropExtension(node)
36889    }
36890}
36891impl From<DropForeignDataWrapper> for Stmt {
36892    #[inline]
36893    fn from(node: DropForeignDataWrapper) -> Stmt {
36894        Stmt::DropForeignDataWrapper(node)
36895    }
36896}
36897impl From<DropForeignTable> for Stmt {
36898    #[inline]
36899    fn from(node: DropForeignTable) -> Stmt {
36900        Stmt::DropForeignTable(node)
36901    }
36902}
36903impl From<DropFunction> for Stmt {
36904    #[inline]
36905    fn from(node: DropFunction) -> Stmt {
36906        Stmt::DropFunction(node)
36907    }
36908}
36909impl From<DropGroup> for Stmt {
36910    #[inline]
36911    fn from(node: DropGroup) -> Stmt {
36912        Stmt::DropGroup(node)
36913    }
36914}
36915impl From<DropIndex> for Stmt {
36916    #[inline]
36917    fn from(node: DropIndex) -> Stmt {
36918        Stmt::DropIndex(node)
36919    }
36920}
36921impl From<DropLanguage> for Stmt {
36922    #[inline]
36923    fn from(node: DropLanguage) -> Stmt {
36924        Stmt::DropLanguage(node)
36925    }
36926}
36927impl From<DropMaterializedView> for Stmt {
36928    #[inline]
36929    fn from(node: DropMaterializedView) -> Stmt {
36930        Stmt::DropMaterializedView(node)
36931    }
36932}
36933impl From<DropOperator> for Stmt {
36934    #[inline]
36935    fn from(node: DropOperator) -> Stmt {
36936        Stmt::DropOperator(node)
36937    }
36938}
36939impl From<DropOperatorClass> for Stmt {
36940    #[inline]
36941    fn from(node: DropOperatorClass) -> Stmt {
36942        Stmt::DropOperatorClass(node)
36943    }
36944}
36945impl From<DropOperatorFamily> for Stmt {
36946    #[inline]
36947    fn from(node: DropOperatorFamily) -> Stmt {
36948        Stmt::DropOperatorFamily(node)
36949    }
36950}
36951impl From<DropOwned> for Stmt {
36952    #[inline]
36953    fn from(node: DropOwned) -> Stmt {
36954        Stmt::DropOwned(node)
36955    }
36956}
36957impl From<DropPolicy> for Stmt {
36958    #[inline]
36959    fn from(node: DropPolicy) -> Stmt {
36960        Stmt::DropPolicy(node)
36961    }
36962}
36963impl From<DropProcedure> for Stmt {
36964    #[inline]
36965    fn from(node: DropProcedure) -> Stmt {
36966        Stmt::DropProcedure(node)
36967    }
36968}
36969impl From<DropPropertyGraph> for Stmt {
36970    #[inline]
36971    fn from(node: DropPropertyGraph) -> Stmt {
36972        Stmt::DropPropertyGraph(node)
36973    }
36974}
36975impl From<DropPublication> for Stmt {
36976    #[inline]
36977    fn from(node: DropPublication) -> Stmt {
36978        Stmt::DropPublication(node)
36979    }
36980}
36981impl From<DropRole> for Stmt {
36982    #[inline]
36983    fn from(node: DropRole) -> Stmt {
36984        Stmt::DropRole(node)
36985    }
36986}
36987impl From<DropRoutine> for Stmt {
36988    #[inline]
36989    fn from(node: DropRoutine) -> Stmt {
36990        Stmt::DropRoutine(node)
36991    }
36992}
36993impl From<DropRule> for Stmt {
36994    #[inline]
36995    fn from(node: DropRule) -> Stmt {
36996        Stmt::DropRule(node)
36997    }
36998}
36999impl From<DropSchema> for Stmt {
37000    #[inline]
37001    fn from(node: DropSchema) -> Stmt {
37002        Stmt::DropSchema(node)
37003    }
37004}
37005impl From<DropSequence> for Stmt {
37006    #[inline]
37007    fn from(node: DropSequence) -> Stmt {
37008        Stmt::DropSequence(node)
37009    }
37010}
37011impl From<DropServer> for Stmt {
37012    #[inline]
37013    fn from(node: DropServer) -> Stmt {
37014        Stmt::DropServer(node)
37015    }
37016}
37017impl From<DropStatistics> for Stmt {
37018    #[inline]
37019    fn from(node: DropStatistics) -> Stmt {
37020        Stmt::DropStatistics(node)
37021    }
37022}
37023impl From<DropSubscription> for Stmt {
37024    #[inline]
37025    fn from(node: DropSubscription) -> Stmt {
37026        Stmt::DropSubscription(node)
37027    }
37028}
37029impl From<DropTable> for Stmt {
37030    #[inline]
37031    fn from(node: DropTable) -> Stmt {
37032        Stmt::DropTable(node)
37033    }
37034}
37035impl From<DropTablespace> for Stmt {
37036    #[inline]
37037    fn from(node: DropTablespace) -> Stmt {
37038        Stmt::DropTablespace(node)
37039    }
37040}
37041impl From<DropTextSearchConfig> for Stmt {
37042    #[inline]
37043    fn from(node: DropTextSearchConfig) -> Stmt {
37044        Stmt::DropTextSearchConfig(node)
37045    }
37046}
37047impl From<DropTextSearchDict> for Stmt {
37048    #[inline]
37049    fn from(node: DropTextSearchDict) -> Stmt {
37050        Stmt::DropTextSearchDict(node)
37051    }
37052}
37053impl From<DropTextSearchParser> for Stmt {
37054    #[inline]
37055    fn from(node: DropTextSearchParser) -> Stmt {
37056        Stmt::DropTextSearchParser(node)
37057    }
37058}
37059impl From<DropTextSearchTemplate> for Stmt {
37060    #[inline]
37061    fn from(node: DropTextSearchTemplate) -> Stmt {
37062        Stmt::DropTextSearchTemplate(node)
37063    }
37064}
37065impl From<DropTransform> for Stmt {
37066    #[inline]
37067    fn from(node: DropTransform) -> Stmt {
37068        Stmt::DropTransform(node)
37069    }
37070}
37071impl From<DropTrigger> for Stmt {
37072    #[inline]
37073    fn from(node: DropTrigger) -> Stmt {
37074        Stmt::DropTrigger(node)
37075    }
37076}
37077impl From<DropType> for Stmt {
37078    #[inline]
37079    fn from(node: DropType) -> Stmt {
37080        Stmt::DropType(node)
37081    }
37082}
37083impl From<DropUser> for Stmt {
37084    #[inline]
37085    fn from(node: DropUser) -> Stmt {
37086        Stmt::DropUser(node)
37087    }
37088}
37089impl From<DropUserMapping> for Stmt {
37090    #[inline]
37091    fn from(node: DropUserMapping) -> Stmt {
37092        Stmt::DropUserMapping(node)
37093    }
37094}
37095impl From<DropView> for Stmt {
37096    #[inline]
37097    fn from(node: DropView) -> Stmt {
37098        Stmt::DropView(node)
37099    }
37100}
37101impl From<EmptyStmt> for Stmt {
37102    #[inline]
37103    fn from(node: EmptyStmt) -> Stmt {
37104        Stmt::EmptyStmt(node)
37105    }
37106}
37107impl From<Execute> for Stmt {
37108    #[inline]
37109    fn from(node: Execute) -> Stmt {
37110        Stmt::Execute(node)
37111    }
37112}
37113impl From<Explain> for Stmt {
37114    #[inline]
37115    fn from(node: Explain) -> Stmt {
37116        Stmt::Explain(node)
37117    }
37118}
37119impl From<Fetch> for Stmt {
37120    #[inline]
37121    fn from(node: Fetch) -> Stmt {
37122        Stmt::Fetch(node)
37123    }
37124}
37125impl From<Grant> for Stmt {
37126    #[inline]
37127    fn from(node: Grant) -> Stmt {
37128        Stmt::Grant(node)
37129    }
37130}
37131impl From<ImportForeignSchema> for Stmt {
37132    #[inline]
37133    fn from(node: ImportForeignSchema) -> Stmt {
37134        Stmt::ImportForeignSchema(node)
37135    }
37136}
37137impl From<Insert> for Stmt {
37138    #[inline]
37139    fn from(node: Insert) -> Stmt {
37140        Stmt::Insert(node)
37141    }
37142}
37143impl From<Listen> for Stmt {
37144    #[inline]
37145    fn from(node: Listen) -> Stmt {
37146        Stmt::Listen(node)
37147    }
37148}
37149impl From<Load> for Stmt {
37150    #[inline]
37151    fn from(node: Load) -> Stmt {
37152        Stmt::Load(node)
37153    }
37154}
37155impl From<Lock> for Stmt {
37156    #[inline]
37157    fn from(node: Lock) -> Stmt {
37158        Stmt::Lock(node)
37159    }
37160}
37161impl From<Merge> for Stmt {
37162    #[inline]
37163    fn from(node: Merge) -> Stmt {
37164        Stmt::Merge(node)
37165    }
37166}
37167impl From<Move> for Stmt {
37168    #[inline]
37169    fn from(node: Move) -> Stmt {
37170        Stmt::Move(node)
37171    }
37172}
37173impl From<Notify> for Stmt {
37174    #[inline]
37175    fn from(node: Notify) -> Stmt {
37176        Stmt::Notify(node)
37177    }
37178}
37179impl From<ParenSelect> for Stmt {
37180    #[inline]
37181    fn from(node: ParenSelect) -> Stmt {
37182        Stmt::ParenSelect(node)
37183    }
37184}
37185impl From<Prepare> for Stmt {
37186    #[inline]
37187    fn from(node: Prepare) -> Stmt {
37188        Stmt::Prepare(node)
37189    }
37190}
37191impl From<PrepareTransaction> for Stmt {
37192    #[inline]
37193    fn from(node: PrepareTransaction) -> Stmt {
37194        Stmt::PrepareTransaction(node)
37195    }
37196}
37197impl From<Reassign> for Stmt {
37198    #[inline]
37199    fn from(node: Reassign) -> Stmt {
37200        Stmt::Reassign(node)
37201    }
37202}
37203impl From<Refresh> for Stmt {
37204    #[inline]
37205    fn from(node: Refresh) -> Stmt {
37206        Stmt::Refresh(node)
37207    }
37208}
37209impl From<Reindex> for Stmt {
37210    #[inline]
37211    fn from(node: Reindex) -> Stmt {
37212        Stmt::Reindex(node)
37213    }
37214}
37215impl From<ReleaseSavepoint> for Stmt {
37216    #[inline]
37217    fn from(node: ReleaseSavepoint) -> Stmt {
37218        Stmt::ReleaseSavepoint(node)
37219    }
37220}
37221impl From<Repack> for Stmt {
37222    #[inline]
37223    fn from(node: Repack) -> Stmt {
37224        Stmt::Repack(node)
37225    }
37226}
37227impl From<Reset> for Stmt {
37228    #[inline]
37229    fn from(node: Reset) -> Stmt {
37230        Stmt::Reset(node)
37231    }
37232}
37233impl From<ResetSessionAuth> for Stmt {
37234    #[inline]
37235    fn from(node: ResetSessionAuth) -> Stmt {
37236        Stmt::ResetSessionAuth(node)
37237    }
37238}
37239impl From<Revoke> for Stmt {
37240    #[inline]
37241    fn from(node: Revoke) -> Stmt {
37242        Stmt::Revoke(node)
37243    }
37244}
37245impl From<Rollback> for Stmt {
37246    #[inline]
37247    fn from(node: Rollback) -> Stmt {
37248        Stmt::Rollback(node)
37249    }
37250}
37251impl From<Savepoint> for Stmt {
37252    #[inline]
37253    fn from(node: Savepoint) -> Stmt {
37254        Stmt::Savepoint(node)
37255    }
37256}
37257impl From<SecurityLabel> for Stmt {
37258    #[inline]
37259    fn from(node: SecurityLabel) -> Stmt {
37260        Stmt::SecurityLabel(node)
37261    }
37262}
37263impl From<Select> for Stmt {
37264    #[inline]
37265    fn from(node: Select) -> Stmt {
37266        Stmt::Select(node)
37267    }
37268}
37269impl From<SelectInto> for Stmt {
37270    #[inline]
37271    fn from(node: SelectInto) -> Stmt {
37272        Stmt::SelectInto(node)
37273    }
37274}
37275impl From<Set> for Stmt {
37276    #[inline]
37277    fn from(node: Set) -> Stmt {
37278        Stmt::Set(node)
37279    }
37280}
37281impl From<SetConstraints> for Stmt {
37282    #[inline]
37283    fn from(node: SetConstraints) -> Stmt {
37284        Stmt::SetConstraints(node)
37285    }
37286}
37287impl From<SetRole> for Stmt {
37288    #[inline]
37289    fn from(node: SetRole) -> Stmt {
37290        Stmt::SetRole(node)
37291    }
37292}
37293impl From<SetSessionAuth> for Stmt {
37294    #[inline]
37295    fn from(node: SetSessionAuth) -> Stmt {
37296        Stmt::SetSessionAuth(node)
37297    }
37298}
37299impl From<SetTransaction> for Stmt {
37300    #[inline]
37301    fn from(node: SetTransaction) -> Stmt {
37302        Stmt::SetTransaction(node)
37303    }
37304}
37305impl From<Show> for Stmt {
37306    #[inline]
37307    fn from(node: Show) -> Stmt {
37308        Stmt::Show(node)
37309    }
37310}
37311impl From<Table> for Stmt {
37312    #[inline]
37313    fn from(node: Table) -> Stmt {
37314        Stmt::Table(node)
37315    }
37316}
37317impl From<Truncate> for Stmt {
37318    #[inline]
37319    fn from(node: Truncate) -> Stmt {
37320        Stmt::Truncate(node)
37321    }
37322}
37323impl From<Unlisten> for Stmt {
37324    #[inline]
37325    fn from(node: Unlisten) -> Stmt {
37326        Stmt::Unlisten(node)
37327    }
37328}
37329impl From<Update> for Stmt {
37330    #[inline]
37331    fn from(node: Update) -> Stmt {
37332        Stmt::Update(node)
37333    }
37334}
37335impl From<Vacuum> for Stmt {
37336    #[inline]
37337    fn from(node: Vacuum) -> Stmt {
37338        Stmt::Vacuum(node)
37339    }
37340}
37341impl From<Values> for Stmt {
37342    #[inline]
37343    fn from(node: Values) -> Stmt {
37344        Stmt::Values(node)
37345    }
37346}
37347impl AstNode for TableArg {
37348    #[inline]
37349    fn can_cast(kind: SyntaxKind) -> bool {
37350        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
37351    }
37352    #[inline]
37353    fn cast(syntax: SyntaxNode) -> Option<Self> {
37354        let res = match syntax.kind() {
37355            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
37356            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
37357            _ => {
37358                if let Some(result) = TableConstraint::cast(syntax) {
37359                    return Some(TableArg::TableConstraint(result));
37360                }
37361                return None;
37362            }
37363        };
37364        Some(res)
37365    }
37366    #[inline]
37367    fn syntax(&self) -> &SyntaxNode {
37368        match self {
37369            TableArg::Column(it) => &it.syntax,
37370            TableArg::LikeClause(it) => &it.syntax,
37371            TableArg::TableConstraint(it) => it.syntax(),
37372        }
37373    }
37374}
37375impl From<Column> for TableArg {
37376    #[inline]
37377    fn from(node: Column) -> TableArg {
37378        TableArg::Column(node)
37379    }
37380}
37381impl From<LikeClause> for TableArg {
37382    #[inline]
37383    fn from(node: LikeClause) -> TableArg {
37384        TableArg::LikeClause(node)
37385    }
37386}
37387impl AstNode for TableConstraint {
37388    #[inline]
37389    fn can_cast(kind: SyntaxKind) -> bool {
37390        matches!(
37391            kind,
37392            SyntaxKind::CHECK_CONSTRAINT
37393                | SyntaxKind::EXCLUDE_CONSTRAINT
37394                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
37395                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
37396                | SyntaxKind::UNIQUE_CONSTRAINT
37397        )
37398    }
37399    #[inline]
37400    fn cast(syntax: SyntaxNode) -> Option<Self> {
37401        let res = match syntax.kind() {
37402            SyntaxKind::CHECK_CONSTRAINT => {
37403                TableConstraint::CheckConstraint(CheckConstraint { syntax })
37404            }
37405            SyntaxKind::EXCLUDE_CONSTRAINT => {
37406                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
37407            }
37408            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
37409                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
37410            }
37411            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
37412                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
37413            }
37414            SyntaxKind::UNIQUE_CONSTRAINT => {
37415                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
37416            }
37417            _ => {
37418                return None;
37419            }
37420        };
37421        Some(res)
37422    }
37423    #[inline]
37424    fn syntax(&self) -> &SyntaxNode {
37425        match self {
37426            TableConstraint::CheckConstraint(it) => &it.syntax,
37427            TableConstraint::ExcludeConstraint(it) => &it.syntax,
37428            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
37429            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
37430            TableConstraint::UniqueConstraint(it) => &it.syntax,
37431        }
37432    }
37433}
37434impl From<CheckConstraint> for TableConstraint {
37435    #[inline]
37436    fn from(node: CheckConstraint) -> TableConstraint {
37437        TableConstraint::CheckConstraint(node)
37438    }
37439}
37440impl From<ExcludeConstraint> for TableConstraint {
37441    #[inline]
37442    fn from(node: ExcludeConstraint) -> TableConstraint {
37443        TableConstraint::ExcludeConstraint(node)
37444    }
37445}
37446impl From<ForeignKeyConstraint> for TableConstraint {
37447    #[inline]
37448    fn from(node: ForeignKeyConstraint) -> TableConstraint {
37449        TableConstraint::ForeignKeyConstraint(node)
37450    }
37451}
37452impl From<PrimaryKeyConstraint> for TableConstraint {
37453    #[inline]
37454    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
37455        TableConstraint::PrimaryKeyConstraint(node)
37456    }
37457}
37458impl From<UniqueConstraint> for TableConstraint {
37459    #[inline]
37460    fn from(node: UniqueConstraint) -> TableConstraint {
37461        TableConstraint::UniqueConstraint(node)
37462    }
37463}
37464impl AstNode for Timezone {
37465    #[inline]
37466    fn can_cast(kind: SyntaxKind) -> bool {
37467        matches!(
37468            kind,
37469            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
37470        )
37471    }
37472    #[inline]
37473    fn cast(syntax: SyntaxNode) -> Option<Self> {
37474        let res = match syntax.kind() {
37475            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
37476            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
37477            _ => {
37478                return None;
37479            }
37480        };
37481        Some(res)
37482    }
37483    #[inline]
37484    fn syntax(&self) -> &SyntaxNode {
37485        match self {
37486            Timezone::WithTimezone(it) => &it.syntax,
37487            Timezone::WithoutTimezone(it) => &it.syntax,
37488        }
37489    }
37490}
37491impl From<WithTimezone> for Timezone {
37492    #[inline]
37493    fn from(node: WithTimezone) -> Timezone {
37494        Timezone::WithTimezone(node)
37495    }
37496}
37497impl From<WithoutTimezone> for Timezone {
37498    #[inline]
37499    fn from(node: WithoutTimezone) -> Timezone {
37500        Timezone::WithoutTimezone(node)
37501    }
37502}
37503impl AstNode for TransactionMode {
37504    #[inline]
37505    fn can_cast(kind: SyntaxKind) -> bool {
37506        matches!(
37507            kind,
37508            SyntaxKind::DEFERRABLE
37509                | SyntaxKind::NOT_DEFERRABLE
37510                | SyntaxKind::READ_COMMITTED
37511                | SyntaxKind::READ_ONLY
37512                | SyntaxKind::READ_UNCOMMITTED
37513                | SyntaxKind::READ_WRITE
37514                | SyntaxKind::REPEATABLE_READ
37515                | SyntaxKind::SERIALIZABLE
37516        )
37517    }
37518    #[inline]
37519    fn cast(syntax: SyntaxNode) -> Option<Self> {
37520        let res = match syntax.kind() {
37521            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
37522            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
37523            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
37524            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
37525            SyntaxKind::READ_UNCOMMITTED => {
37526                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
37527            }
37528            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
37529            SyntaxKind::REPEATABLE_READ => {
37530                TransactionMode::RepeatableRead(RepeatableRead { syntax })
37531            }
37532            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
37533            _ => {
37534                return None;
37535            }
37536        };
37537        Some(res)
37538    }
37539    #[inline]
37540    fn syntax(&self) -> &SyntaxNode {
37541        match self {
37542            TransactionMode::Deferrable(it) => &it.syntax,
37543            TransactionMode::NotDeferrable(it) => &it.syntax,
37544            TransactionMode::ReadCommitted(it) => &it.syntax,
37545            TransactionMode::ReadOnly(it) => &it.syntax,
37546            TransactionMode::ReadUncommitted(it) => &it.syntax,
37547            TransactionMode::ReadWrite(it) => &it.syntax,
37548            TransactionMode::RepeatableRead(it) => &it.syntax,
37549            TransactionMode::Serializable(it) => &it.syntax,
37550        }
37551    }
37552}
37553impl From<Deferrable> for TransactionMode {
37554    #[inline]
37555    fn from(node: Deferrable) -> TransactionMode {
37556        TransactionMode::Deferrable(node)
37557    }
37558}
37559impl From<NotDeferrable> for TransactionMode {
37560    #[inline]
37561    fn from(node: NotDeferrable) -> TransactionMode {
37562        TransactionMode::NotDeferrable(node)
37563    }
37564}
37565impl From<ReadCommitted> for TransactionMode {
37566    #[inline]
37567    fn from(node: ReadCommitted) -> TransactionMode {
37568        TransactionMode::ReadCommitted(node)
37569    }
37570}
37571impl From<ReadOnly> for TransactionMode {
37572    #[inline]
37573    fn from(node: ReadOnly) -> TransactionMode {
37574        TransactionMode::ReadOnly(node)
37575    }
37576}
37577impl From<ReadUncommitted> for TransactionMode {
37578    #[inline]
37579    fn from(node: ReadUncommitted) -> TransactionMode {
37580        TransactionMode::ReadUncommitted(node)
37581    }
37582}
37583impl From<ReadWrite> for TransactionMode {
37584    #[inline]
37585    fn from(node: ReadWrite) -> TransactionMode {
37586        TransactionMode::ReadWrite(node)
37587    }
37588}
37589impl From<RepeatableRead> for TransactionMode {
37590    #[inline]
37591    fn from(node: RepeatableRead) -> TransactionMode {
37592        TransactionMode::RepeatableRead(node)
37593    }
37594}
37595impl From<Serializable> for TransactionMode {
37596    #[inline]
37597    fn from(node: Serializable) -> TransactionMode {
37598        TransactionMode::Serializable(node)
37599    }
37600}
37601impl AstNode for Type {
37602    #[inline]
37603    fn can_cast(kind: SyntaxKind) -> bool {
37604        matches!(
37605            kind,
37606            SyntaxKind::ARRAY_TYPE
37607                | SyntaxKind::BIT_TYPE
37608                | SyntaxKind::CHAR_TYPE
37609                | SyntaxKind::DOUBLE_TYPE
37610                | SyntaxKind::EXPR_TYPE
37611                | SyntaxKind::INTERVAL_TYPE
37612                | SyntaxKind::PATH_TYPE
37613                | SyntaxKind::PERCENT_TYPE
37614                | SyntaxKind::TIME_TYPE
37615        )
37616    }
37617    #[inline]
37618    fn cast(syntax: SyntaxNode) -> Option<Self> {
37619        let res = match syntax.kind() {
37620            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
37621            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
37622            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
37623            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
37624            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
37625            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
37626            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
37627            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
37628            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
37629            _ => {
37630                return None;
37631            }
37632        };
37633        Some(res)
37634    }
37635    #[inline]
37636    fn syntax(&self) -> &SyntaxNode {
37637        match self {
37638            Type::ArrayType(it) => &it.syntax,
37639            Type::BitType(it) => &it.syntax,
37640            Type::CharType(it) => &it.syntax,
37641            Type::DoubleType(it) => &it.syntax,
37642            Type::ExprType(it) => &it.syntax,
37643            Type::IntervalType(it) => &it.syntax,
37644            Type::PathType(it) => &it.syntax,
37645            Type::PercentType(it) => &it.syntax,
37646            Type::TimeType(it) => &it.syntax,
37647        }
37648    }
37649}
37650impl From<ArrayType> for Type {
37651    #[inline]
37652    fn from(node: ArrayType) -> Type {
37653        Type::ArrayType(node)
37654    }
37655}
37656impl From<BitType> for Type {
37657    #[inline]
37658    fn from(node: BitType) -> Type {
37659        Type::BitType(node)
37660    }
37661}
37662impl From<CharType> for Type {
37663    #[inline]
37664    fn from(node: CharType) -> Type {
37665        Type::CharType(node)
37666    }
37667}
37668impl From<DoubleType> for Type {
37669    #[inline]
37670    fn from(node: DoubleType) -> Type {
37671        Type::DoubleType(node)
37672    }
37673}
37674impl From<ExprType> for Type {
37675    #[inline]
37676    fn from(node: ExprType) -> Type {
37677        Type::ExprType(node)
37678    }
37679}
37680impl From<IntervalType> for Type {
37681    #[inline]
37682    fn from(node: IntervalType) -> Type {
37683        Type::IntervalType(node)
37684    }
37685}
37686impl From<PathType> for Type {
37687    #[inline]
37688    fn from(node: PathType) -> Type {
37689        Type::PathType(node)
37690    }
37691}
37692impl From<PercentType> for Type {
37693    #[inline]
37694    fn from(node: PercentType) -> Type {
37695        Type::PercentType(node)
37696    }
37697}
37698impl From<TimeType> for Type {
37699    #[inline]
37700    fn from(node: TimeType) -> Type {
37701        Type::TimeType(node)
37702    }
37703}
37704impl AstNode for ValuePosition {
37705    #[inline]
37706    fn can_cast(kind: SyntaxKind) -> bool {
37707        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
37708    }
37709    #[inline]
37710    fn cast(syntax: SyntaxNode) -> Option<Self> {
37711        let res = match syntax.kind() {
37712            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
37713            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
37714            _ => {
37715                return None;
37716            }
37717        };
37718        Some(res)
37719    }
37720    #[inline]
37721    fn syntax(&self) -> &SyntaxNode {
37722        match self {
37723            ValuePosition::AfterValue(it) => &it.syntax,
37724            ValuePosition::BeforeValue(it) => &it.syntax,
37725        }
37726    }
37727}
37728impl From<AfterValue> for ValuePosition {
37729    #[inline]
37730    fn from(node: AfterValue) -> ValuePosition {
37731        ValuePosition::AfterValue(node)
37732    }
37733}
37734impl From<BeforeValue> for ValuePosition {
37735    #[inline]
37736    fn from(node: BeforeValue) -> ValuePosition {
37737        ValuePosition::BeforeValue(node)
37738    }
37739}
37740impl AstNode for WithQuery {
37741    #[inline]
37742    fn can_cast(kind: SyntaxKind) -> bool {
37743        matches!(
37744            kind,
37745            SyntaxKind::COMPOUND_SELECT
37746                | SyntaxKind::DELETE
37747                | SyntaxKind::INSERT
37748                | SyntaxKind::MERGE
37749                | SyntaxKind::PAREN_SELECT
37750                | SyntaxKind::SELECT
37751                | SyntaxKind::TABLE
37752                | SyntaxKind::UPDATE
37753                | SyntaxKind::VALUES
37754        )
37755    }
37756    #[inline]
37757    fn cast(syntax: SyntaxNode) -> Option<Self> {
37758        let res = match syntax.kind() {
37759            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
37760            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
37761            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
37762            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
37763            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
37764            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
37765            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
37766            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
37767            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
37768            _ => {
37769                return None;
37770            }
37771        };
37772        Some(res)
37773    }
37774    #[inline]
37775    fn syntax(&self) -> &SyntaxNode {
37776        match self {
37777            WithQuery::CompoundSelect(it) => &it.syntax,
37778            WithQuery::Delete(it) => &it.syntax,
37779            WithQuery::Insert(it) => &it.syntax,
37780            WithQuery::Merge(it) => &it.syntax,
37781            WithQuery::ParenSelect(it) => &it.syntax,
37782            WithQuery::Select(it) => &it.syntax,
37783            WithQuery::Table(it) => &it.syntax,
37784            WithQuery::Update(it) => &it.syntax,
37785            WithQuery::Values(it) => &it.syntax,
37786        }
37787    }
37788}
37789impl From<CompoundSelect> for WithQuery {
37790    #[inline]
37791    fn from(node: CompoundSelect) -> WithQuery {
37792        WithQuery::CompoundSelect(node)
37793    }
37794}
37795impl From<Delete> for WithQuery {
37796    #[inline]
37797    fn from(node: Delete) -> WithQuery {
37798        WithQuery::Delete(node)
37799    }
37800}
37801impl From<Insert> for WithQuery {
37802    #[inline]
37803    fn from(node: Insert) -> WithQuery {
37804        WithQuery::Insert(node)
37805    }
37806}
37807impl From<Merge> for WithQuery {
37808    #[inline]
37809    fn from(node: Merge) -> WithQuery {
37810        WithQuery::Merge(node)
37811    }
37812}
37813impl From<ParenSelect> for WithQuery {
37814    #[inline]
37815    fn from(node: ParenSelect) -> WithQuery {
37816        WithQuery::ParenSelect(node)
37817    }
37818}
37819impl From<Select> for WithQuery {
37820    #[inline]
37821    fn from(node: Select) -> WithQuery {
37822        WithQuery::Select(node)
37823    }
37824}
37825impl From<Table> for WithQuery {
37826    #[inline]
37827    fn from(node: Table) -> WithQuery {
37828        WithQuery::Table(node)
37829    }
37830}
37831impl From<Update> for WithQuery {
37832    #[inline]
37833    fn from(node: Update) -> WithQuery {
37834        WithQuery::Update(node)
37835    }
37836}
37837impl From<Values> for WithQuery {
37838    #[inline]
37839    fn from(node: Values) -> WithQuery {
37840        WithQuery::Values(node)
37841    }
37842}